Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ チャレンジ:メソッド | Structs & Enumerators
C#オブジェクト指向構造

bookチャレンジ:メソッド

メニューを表示するにはスワイプしてください

このコードには、Cypher という構造体が含まれており、これは基本的に シーザー暗号 の一種を表しています。

Note
ノート

シーザー暗号は、各文字をアルファベットや ASCII characters の中で一定の数だけずらすことで、メッセージを判読できなくするテキストエンコーディング手法です。例えば、"HelloWorld" の各文字を ASCII テーブルに従って 7 文字分ずらすと、"Olssv^vysk" になります。これは、各文字が一定のステップだけ離れた別の文字に置き換えられる秘密のコードのようなものです。メッセージやテキストを簡単に隠す方法として考えることができます。

シーザー暗号については、Wikipedia ページで読むことができますが、この練習問題を解くためには必須ではありません。

コードを読み、空欄を埋めて正しく動作するようにしてください。最終的なプログラムの仕様は以下の通りです。

  1. setText メソッドは、渡されたテキストをエンコードされたテキストに変換し、フィールド text に格納します。このメソッドは string という1つの text 引数を受け取り、値を返しません。
  2. rawTexttext フィールドの内容を返します。このメソッドは引数を取りません。
  3. decodedTexttext フィールドの内容をデコードし、その結果を返します。このメソッドも引数を取りません。
index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using 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()); } }
  1. 構造体のフィールドを参照する際は、this キーワードを使用するのが良い習慣です。
  2. メソッドが値を返さない場合は、戻り値として void キーワードを使用します。
index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using 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に質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  7
some-alt