Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Metodi | Struct e Enumeratori
C# Oltre le Basi

bookSfida: Metodi

Il codice contiene una struct chiamata Cypher che rappresenta fondamentalmente una sorta di cifrario di Cesare.

Note
Nota

Il cifrario di Cesare è un metodo di codifica del testo che rende i messaggi illeggibili spostando ogni lettera di un numero fisso di posizioni nell'alfabeto o nei caratteri ASCII. Ad esempio, spostando ogni carattere di "HelloWorld" di 7 posizioni secondo la tabella ASCII, si ottiene "Olssv^vysk." È come un codice segreto in cui ogni lettera viene sostituita da un'altra lettera a una certa distanza. Puoi considerarlo un modo semplice per nascondere messaggi o testo.

Puoi leggere del cifrario di Cesare sulla sua pagina Wikipedia, tuttavia non è necessario per risolvere questo esercizio.

Leggere il codice e completare gli spazi vuoti per assicurarsi che funzioni correttamente. Il programma finale dovrebbe essere il seguente:

  1. Il metodo setText converte il testo passato in testo codificato e lo memorizza nel campo text. Questo metodo accetta un argomento di tipo string chiamato text e non restituisce alcun valore;
  2. rawText restituisce il contenuto del campo text. Questo metodo non accetta argomenti;
  3. decodedText decodifica il contenuto del campo text e restituisce il risultato. Anche questo metodo non accetta argomenti.
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. È buona pratica utilizzare la parola chiave this ogni volta che si fa riferimento ai campi della struct.
  2. Si utilizza la parola chiave void come valore di ritorno nel caso in cui il metodo non restituisca alcun valore.
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()); } }
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookSfida: Metodi

Scorri per mostrare il menu

Il codice contiene una struct chiamata Cypher che rappresenta fondamentalmente una sorta di cifrario di Cesare.

Note
Nota

Il cifrario di Cesare è un metodo di codifica del testo che rende i messaggi illeggibili spostando ogni lettera di un numero fisso di posizioni nell'alfabeto o nei caratteri ASCII. Ad esempio, spostando ogni carattere di "HelloWorld" di 7 posizioni secondo la tabella ASCII, si ottiene "Olssv^vysk." È come un codice segreto in cui ogni lettera viene sostituita da un'altra lettera a una certa distanza. Puoi considerarlo un modo semplice per nascondere messaggi o testo.

Puoi leggere del cifrario di Cesare sulla sua pagina Wikipedia, tuttavia non è necessario per risolvere questo esercizio.

Leggere il codice e completare gli spazi vuoti per assicurarsi che funzioni correttamente. Il programma finale dovrebbe essere il seguente:

  1. Il metodo setText converte il testo passato in testo codificato e lo memorizza nel campo text. Questo metodo accetta un argomento di tipo string chiamato text e non restituisce alcun valore;
  2. rawText restituisce il contenuto del campo text. Questo metodo non accetta argomenti;
  3. decodedText decodifica il contenuto del campo text e restituisce il risultato. Anche questo metodo non accetta argomenti.
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. È buona pratica utilizzare la parola chiave this ogni volta che si fa riferimento ai campi della struct.
  2. Si utilizza la parola chiave void come valore di ritorno nel caso in cui il metodo non restituisca alcun valore.
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()); } }
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 7
some-alt