Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 2.49 KB

File metadata and controls

70 lines (51 loc) · 2.49 KB

Problema

11 - Escreve um programa que solicite ao utilizador uma string e a volte a mostrar no ecrã de forma invertida (isto é, de trás para a frente).

Soluções

Solução 1

// Declarar varáveis
string str;

// Pedir ao user a frase
Console.WriteLine("Escreva uma frase para inverte-la:");

// Variável recebe input da frase
str = Console.ReadLine();

// Ciclo FOR que percorre do último até ao primeiro caractere
for (int i = str.Length - 1; i >= 0; i--)
{
    // Output de todos os caracteres numa só linha
    Console.Write(str[i]);
}
Console.WriteLine();    // Linha separada por nova linha

Na linha 11 do código for (int i = str.Length - 1; i >= 0; i--), o valor da variável i inicia-se com o tamanho da string fornecida pelo utilizador subtraído por 1. Como a string deve ser invertida, essa variável irá ser decrementada até 0.

Isso porque, a linha seguinte que encontra-se dentro do loop, trata a string como um array de carateres exibindo-os individualmente na ordem inversa. Ora, como é de conhecimento, a numeração dos índices dos arrays iniciam-se sempre por zero: Por exemplo, na palavra "Linguagem", o caráter "L" corresponde ao índice 0, o caráter "i" corresponde ao índice 1, e assim por diante.

Dessa forma, o índice do último caráter que, na inversão, deve ser o primeiro a ser exibido, irá corresponder ao tamanho da string subtraído por 1. No exemplo referido, a palavra "Linguagem" possui o tamanho de 9 carateres. Quando tratada como um array, o último caráter (a letra "m") será o elemento de índice 8.

Assim, o loop for irá percorrer de forma decrescente todos os carateres da string, a iniciar pelo último até ao primeiro (índice 0), em respeito à condição de que a variável i seja maior ou igual à 0.

Por Lucas Viana

Solução 2

Nota do docente: Embora esta solução esteja tecnicamente correta, não é a solução pretendida nesta fase, pois ainda não discutimos as funções/métodos usadas na mesma.

// Variável (s).
string s = Console.ReadLine(); // Lê o input do utilizador.

// Variável (arr).
char[] arr = s.ToCharArray(); // Converte o string para um array de carateres.

Array.Reverse(arr); // Reverte o array (arr) utilizando a função 'Reverse'.

Console.WriteLine(arr); // Escreve o resultado invertido.