Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Métodos | Structs e Enumeradores
C# Além do Básico

bookDesafio: Métodos

O código contém uma struct chamada Cypher, que basicamente representa um tipo de cifra de César.

Note
Nota

A cifra de César é um método de codificação de texto que torna as mensagens ilegíveis ao deslocar cada letra por um número fixo de posições no alfabeto ou em caracteres ASCII. Por exemplo, ao deslocar cada caractere em "HelloWorld" por 7 posições conforme a tabela ASCII, resulta em "Olssv^vysk." É como um código secreto onde cada letra é substituída por outra letra um certo número de passos adiante. Pode ser considerado uma forma simples de ocultar mensagens ou textos.

Você pode ler sobre a cifra de César em sua página da Wikipédia, porém, isso não é necessário para resolver este exercício prático.

Leia o código e preencha as lacunas para garantir que ele funcione corretamente. O programa final deve ser o seguinte:

  1. O método setText converte o texto passado em texto codificado e o armazena no campo text. Este método recebe um argumento string chamado text, e o método não retorna nenhum valor;
  2. rawText retorna o conteúdo do campo text. Este método não recebe argumentos;
  3. decodedText decodifica o conteúdo do campo text e retorna o resultado. Este método também não recebe argumentos.
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. É uma boa prática utilizar a palavra-chave this sempre que estiver se referindo aos campos da struct.
  2. Use a palavra-chave void como valor de retorno caso o método não retorne nenhum valor.
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()); } }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 2.04

bookDesafio: Métodos

Deslize para mostrar o menu

O código contém uma struct chamada Cypher, que basicamente representa um tipo de cifra de César.

Note
Nota

A cifra de César é um método de codificação de texto que torna as mensagens ilegíveis ao deslocar cada letra por um número fixo de posições no alfabeto ou em caracteres ASCII. Por exemplo, ao deslocar cada caractere em "HelloWorld" por 7 posições conforme a tabela ASCII, resulta em "Olssv^vysk." É como um código secreto onde cada letra é substituída por outra letra um certo número de passos adiante. Pode ser considerado uma forma simples de ocultar mensagens ou textos.

Você pode ler sobre a cifra de César em sua página da Wikipédia, porém, isso não é necessário para resolver este exercício prático.

Leia o código e preencha as lacunas para garantir que ele funcione corretamente. O programa final deve ser o seguinte:

  1. O método setText converte o texto passado em texto codificado e o armazena no campo text. Este método recebe um argumento string chamado text, e o método não retorna nenhum valor;
  2. rawText retorna o conteúdo do campo text. Este método não recebe argumentos;
  3. decodedText decodifica o conteúdo do campo text e retorna o resultado. Este método também não recebe argumentos.
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. É uma boa prática utilizar a palavra-chave this sempre que estiver se referindo aos campos da struct.
  2. Use a palavra-chave void como valor de retorno caso o método não retorne nenhum valor.
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()); } }
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7
some-alt