From 17de5116d5490ffe003c12b15f965e69ec23369f Mon Sep 17 00:00:00 2001 From: Ronaldo Silva Date: Sat, 3 Aug 2024 22:10:01 -0300 Subject: [PATCH] Desafio03 (#1062) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Proposta de Solução desafio-02. * Efetuadas correções sugeridas * Removendo op-desafios.sln * Proposta de solução do exercício 03 em csharp. * Corrigidos erros de Trailing Spaces * Adicionado instruções de como executar o teste. * Correção do nome do arquivo * Correção do desafio 03 * Alterado entrada da aplicação para que o usuário possa efetuar testes variados por input de parâmetros. --- .../csharp/palindromos/Palindromo.cs | 56 +++++++++++++++++++ .../ronaldofas/csharp/palindromos/Program.cs | 23 ++++++++ .../csharp/palindromos/palindromos.csproj | 8 +++ 3 files changed, 87 insertions(+) create mode 100644 desafio-03/ronaldofas/csharp/palindromos/Palindromo.cs create mode 100644 desafio-03/ronaldofas/csharp/palindromos/Program.cs create mode 100644 desafio-03/ronaldofas/csharp/palindromos/palindromos.csproj diff --git a/desafio-03/ronaldofas/csharp/palindromos/Palindromo.cs b/desafio-03/ronaldofas/csharp/palindromos/Palindromo.cs new file mode 100644 index 00000000..3ce0bccd --- /dev/null +++ b/desafio-03/ronaldofas/csharp/palindromos/Palindromo.cs @@ -0,0 +1,56 @@ +using System; + +namespace palindromos; + +public class Palindromo +{ + public Palindromo() { } + + public bool EhPalindromo(ulong numero){ + // Converte o número para uma string. + string numeroStr = numero.ToString(); + + // Inverte a string. + char[] charArray = numeroStr.ToCharArray(); + Array.Reverse(charArray); + string numeroInvertidoStr = new string(charArray); + + // Compara a string original com a string invertida. + return numeroStr.Equals(numeroInvertidoStr); + } + + public List PalindromosEntre(string inicio, string fim) + { + ValidarParametros(inicio); + ValidarParametros(fim); + + List resultado = new List(); + + for (ulong i = UInt64.Parse(inicio); i <= UInt64.Parse(fim); i++) + { + if (EhPalindromo(i)) + { + resultado.Add(i); + } + } + + return resultado; + } + + private static void ValidarParametros(string numero) + { + try + { + var conversao = UInt64.Parse(numero); + } catch (OverflowException) + { + throw new OverflowException("Valor maior ou menor que o permitido"); + } catch (ArgumentNullException) + { + throw new ArgumentNullException("Valor não pode ser nulo"); + } catch (FormatException) + { + throw new FormatException("Valor inválido"); + } + } +} diff --git a/desafio-03/ronaldofas/csharp/palindromos/Program.cs b/desafio-03/ronaldofas/csharp/palindromos/Program.cs new file mode 100644 index 00000000..9693d1fa --- /dev/null +++ b/desafio-03/ronaldofas/csharp/palindromos/Program.cs @@ -0,0 +1,23 @@ +using System; + +namespace palindromos; + +class Program +{ + public static void Main(string[] args) + { + Palindromo palindromo = new Palindromo(); + + Console.WriteLine("Informe o número inicial para validação dos palíndromos: "); + string inicio = Console.ReadLine(); + Console.WriteLine("Informe o número final para validação dos palíndromos: "); + string fim = Console.ReadLine(); + + Console.WriteLine("\nNumeros palíndromos entre " + inicio + " e " + fim + ": "); + foreach (ulong item in palindromo.PalindromosEntre(inicio, fim)) + { + Console.WriteLine(item); + } + + } +} \ No newline at end of file diff --git a/desafio-03/ronaldofas/csharp/palindromos/palindromos.csproj b/desafio-03/ronaldofas/csharp/palindromos/palindromos.csproj new file mode 100644 index 00000000..c76b054e --- /dev/null +++ b/desafio-03/ronaldofas/csharp/palindromos/palindromos.csproj @@ -0,0 +1,8 @@ + + + Exe + net8.0 + enable + enable + + \ No newline at end of file