チャレンジ:メソッド
メニューを表示するにはスワイプしてください
このコードには、Cypher という構造体が含まれており、これは基本的に シーザー暗号 の一種を表しています。
ノート
シーザー暗号は、各文字をアルファベットや ASCII characters の中で一定の数だけずらすことで、メッセージを判読できなくするテキストエンコーディング手法です。例えば、"HelloWorld" の各文字を ASCII テーブルに従って 7 文字分ずらすと、"Olssv^vysk" になります。これは、各文字が一定のステップだけ離れた別の文字に置き換えられる秘密のコードのようなものです。メッセージやテキストを簡単に隠す方法として考えることができます。
シーザー暗号については、Wikipedia ページで読むことができますが、この練習問題を解くためには必須ではありません。
コードを読み、空欄を埋めて正しく動作するようにしてください。最終的なプログラムの仕様は以下の通りです。
setTextメソッドは、渡されたテキストをエンコードされたテキストに変換し、フィールドtextに格納します。このメソッドはstringという1つのtext引数を受け取り、値を返しません。rawTextはtextフィールドの内容を返します。このメソッドは引数を取りません。decodedTextはtextフィールドの内容をデコードし、その結果を返します。このメソッドも引数を取りません。
index.cs
1234567891011121314151617181920212223242526272829303132333435363738394041424344using System; struct Cypher { public string text; ___ { string encodedText = ""; foreach(char chr in text) encodedText += (char) (chr + 7); ___ = encodedText; } public string rawText() { ___ } ___ { string decodedText = ""; foreach (char chr in this.text) decodedText += (char)(chr - 7); ___ } } class ConsoleApp { static void Main(string[] args) { Cypher text1 = new Cypher(); text1.setText("This is an example sentence."); Console.WriteLine(text1.rawText()); Console.WriteLine(text1.decodedText()); } }
- 構造体のフィールドを参照する際は、
thisキーワードを使用するのが良い習慣です。 - メソッドが値を返さない場合は、戻り値として
voidキーワードを使用します。
index.cs
1234567891011121314151617181920212223242526272829303132333435363738394041424344using System; struct Cypher { public string text; public void setText(string text) { string encodedText = ""; foreach (char chr in text) encodedText += (char)(chr + 7); this.text = encodedText; } public string rawText() { return this.text; } public string decodedText() { string decodedText = ""; foreach (char chr in this.text) decodedText += (char)(chr - 7); return decodedText; } } class ConsoleApp { static void Main(string[] args) { Cypher text1 = new Cypher(); text1.setText("This is an example sentence."); Console.WriteLine(text1.rawText()); Console.WriteLine(text1.decodedText()); } }
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 7
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 7