Udfordring: Metoder
Koden indeholder en struct kaldet Cypher, som grundlæggende repræsenterer en form for Caesar-chiffer.
Caesar-chifferet er en metode til tekstkodning, der gør beskeder ulæselige ved at flytte hvert bogstav et fast antal positioner i alfabetet eller ASCII-tegn. For eksempel, hvis hvert tegn i "HelloWorld" flyttes 7 positioner ifølge ASCII-tabellen, bliver det til "Olssv^vysk." Det fungerer som en hemmelig kode, hvor hvert bogstav erstattes af et andet bogstav et bestemt antal trin væk. Det kan betragtes som en simpel måde at skjule beskeder eller tekst på.
Du kan læse om Caesar-chiffer på dets Wikipedia-side, men det er ikke nødvendigt for at løse denne øvelse.
Læs koden og udfyld de tomme felter for at sikre, at den fungerer korrekt. Sådan skal det endelige program være:
setText-metoden konverterer den overførte tekst til kodet tekst og gemmer den i feltettext. Denne metode tager étstring-argument kaldettext, og metoden returnerer ingen værdi;rawTextreturnerer indholdet af feltettext. Denne metode tager ingen argumenter;decodedTextdekoder indholdet af feltettextog returnerer resultatet. Denne metode tager heller ingen argumenter.
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()); } }
- Det er god praksis at bruge
this-nøgleordet, når du henviser til strukturfelter. - Du bruger nøgleordet
voidsom returværdi, hvis metoden ikke returnerer nogen værdi.
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()); } }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.04
Udfordring: Metoder
Stryg for at vise menuen
Koden indeholder en struct kaldet Cypher, som grundlæggende repræsenterer en form for Caesar-chiffer.
Caesar-chifferet er en metode til tekstkodning, der gør beskeder ulæselige ved at flytte hvert bogstav et fast antal positioner i alfabetet eller ASCII-tegn. For eksempel, hvis hvert tegn i "HelloWorld" flyttes 7 positioner ifølge ASCII-tabellen, bliver det til "Olssv^vysk." Det fungerer som en hemmelig kode, hvor hvert bogstav erstattes af et andet bogstav et bestemt antal trin væk. Det kan betragtes som en simpel måde at skjule beskeder eller tekst på.
Du kan læse om Caesar-chiffer på dets Wikipedia-side, men det er ikke nødvendigt for at løse denne øvelse.
Læs koden og udfyld de tomme felter for at sikre, at den fungerer korrekt. Sådan skal det endelige program være:
setText-metoden konverterer den overførte tekst til kodet tekst og gemmer den i feltettext. Denne metode tager étstring-argument kaldettext, og metoden returnerer ingen værdi;rawTextreturnerer indholdet af feltettext. Denne metode tager ingen argumenter;decodedTextdekoder indholdet af feltettextog returnerer resultatet. Denne metode tager heller ingen argumenter.
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()); } }
- Det er god praksis at bruge
this-nøgleordet, når du henviser til strukturfelter. - Du bruger nøgleordet
voidsom returværdi, hvis metoden ikke returnerer nogen værdi.
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()); } }
Tak for dine kommentarer!