Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Metodit | Rakenteet ja Enumeraattorit
C# Perusteiden Jälkeen

bookHaaste: Metodit

Koodi sisältää rakenteen nimeltä Cypher, joka käytännössä edustaa eräänlaista Caesarin salausta.

Note
Huomio

Caesarin salaus on tekstin koodausmenetelmä, joka tekee viesteistä lukukelvottomia siirtämällä jokaista kirjainta tietyn määrän paikkoja aakkosissa tai ASCII-merkeissä. Esimerkiksi siirtämällä jokaista merkkiä sanassa "HelloWorld" seitsemän paikkaa ASCII-taulukon mukaan, saadaan "Olssv^vysk." Kyseessä on eräänlainen salakoodi, jossa jokainen kirjain korvataan toisella kirjaimella tietyn askeleen päässä. Voit ajatella sitä yksinkertaisena tapana piilottaa viestejä tai tekstiä.

Voit lukea Caesarin salauksesta sen Wikipedia-sivulta, mutta se ei ole välttämätöntä tämän harjoitustehtävän ratkaisemiseksi.

Lue koodi ja täydennä puuttuvat kohdat varmistaaksesi, että se toimii oikein. Alla on esitetty, miten lopullisen ohjelman tulisi toimia:

  1. setText-metodi muuntaa annetun tekstin koodatuksi tekstiksi ja tallentaa sen kenttään text. Tämä metodi ottaa yhden string-tyyppisen argumentin nimeltä text, eikä metodi palauta arvoa;
  2. rawText palauttaa kentän text sisällön. Tämä metodi ei ota argumentteja;
  3. decodedText purkaa kentän text sisällön ja palauttaa tuloksen. Tämä metodi ei myöskään ota argumentteja.
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. On hyvä käytäntö käyttää this-avainsanaa aina, kun viitataan rakenteen kenttiin.
  2. Käytä void-avainsanaa palautustyyppinä, jos metodi ei palauta arvoa.
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()); } }
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you show me the code that needs to be filled in?

What are the blanks that need to be completed in the code?

Can you explain how the encoding and decoding should work in this context?

Awesome!

Completion rate improved to 2.04

bookHaaste: Metodit

Pyyhkäise näyttääksesi valikon

Koodi sisältää rakenteen nimeltä Cypher, joka käytännössä edustaa eräänlaista Caesarin salausta.

Note
Huomio

Caesarin salaus on tekstin koodausmenetelmä, joka tekee viesteistä lukukelvottomia siirtämällä jokaista kirjainta tietyn määrän paikkoja aakkosissa tai ASCII-merkeissä. Esimerkiksi siirtämällä jokaista merkkiä sanassa "HelloWorld" seitsemän paikkaa ASCII-taulukon mukaan, saadaan "Olssv^vysk." Kyseessä on eräänlainen salakoodi, jossa jokainen kirjain korvataan toisella kirjaimella tietyn askeleen päässä. Voit ajatella sitä yksinkertaisena tapana piilottaa viestejä tai tekstiä.

Voit lukea Caesarin salauksesta sen Wikipedia-sivulta, mutta se ei ole välttämätöntä tämän harjoitustehtävän ratkaisemiseksi.

Lue koodi ja täydennä puuttuvat kohdat varmistaaksesi, että se toimii oikein. Alla on esitetty, miten lopullisen ohjelman tulisi toimia:

  1. setText-metodi muuntaa annetun tekstin koodatuksi tekstiksi ja tallentaa sen kenttään text. Tämä metodi ottaa yhden string-tyyppisen argumentin nimeltä text, eikä metodi palauta arvoa;
  2. rawText palauttaa kentän text sisällön. Tämä metodi ei ota argumentteja;
  3. decodedText purkaa kentän text sisällön ja palauttaa tuloksen. Tämä metodi ei myöskään ota argumentteja.
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. On hyvä käytäntö käyttää this-avainsanaa aina, kun viitataan rakenteen kenttiin.
  2. Käytä void-avainsanaa palautustyyppinä, jos metodi ei palauta arvoa.
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()); } }
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7
some-alt