C# - Resolvendo 10 problemas de matemática em uma aplicação Console com Menu - I


 No artigo de hoje eu vou mostrar como criar uma aplicação console com um menu de opções para resolver 10 problemas matemáticos básicos usando a linguagem C#.


Nem sempre a aparência é o mais importante e neste artigo eu vou mostrar como você pode criar uma aplicação do tipo Console Application com um menu de opções onde iremos resolver 10 problemas de matemática bem simples.

 

Você saber criar um menu de opções em uma aplicação Console ?

 

Sabe como tratar a seleção do usuário, executar a opção e retornar ao menu ?

 

Pois neste artigo eu vou mostrar como você pode realizar essas tarefas.

 

Os métodos da classe Console usados no exemplo são:

 

O console é uma janela do sistema operacional em que os usuários interagem com o sistema operacional ou com um aplicativo de console baseado em texto para inserir a entrada de texto no teclado do computador, e à leitura de saída de texto de terminal do computador.

 

WriteLine : O método Console.Writeline escreve a linha atual para a saída padrão, no caso o Console

 

A linha padrão terminador é uma cadeia de caracteres cujo valor é um retorno de carro seguido por uma alimentação de linha ('\r \n' no C#, ou por vbCrLf no Visual Basic)

 

Write : O método Console.Writeline escreve a linha atual para a saída padrão;

 

ReadLine : Lê a próxima linha de caracteres da entrada padrão (Console)

 

ReadKey ; Obtém o próximo caractere ou tecla de função pressionada pelo usuário;

Recursos usados:

Criando o projeto no Visual Studio 2013 Express for windows desktop

Abra o VS 2013 Express for windows desktop e clique em New Project;

Selecione a linguagem Visual C# e o template Console Application;

Informe o nome Matematica_CSharp e clique no botão OK;

Vamos agora definir as seguintes declarações dos namespaces usados:

using System;

A seguir vamos definir o código na rotina Main() do arquivo Programa.cs que chama o método Menu() para criar o menu de opções:

static void Main(string[] args)
{
       Menu();
} 

O código do menu exibe os 10 problemas matemáticos enumerados de 1 a 10, onde o usuário deverá teclar um número referente a respectiva opção para resolver o problema:

 public static void Menu()
 {
            Console.Clear();
            Console.WriteLine("1. Gerar a Série de Fibonacci" +
            Environment.NewLine + "2. Gerar o Fatorial de um Número" +
            Environment.NewLine + "3. Gerar a Soma de N Números" +
            Environment.NewLine + "4. Obter os fatores de um número" +
            Environment.NewLine + "5. Verificar se um número é um número de Armstrong" +
            Environment.NewLine + "6. Verificar se um número é um número Perfeito" +
            Environment.NewLine + "7. Calcular o MDC entre dois números" +
            Environment.NewLine + "8. Calcular o MMC entre dois números" +
            Environment.NewLine + "9. Verificar se um número é Primo" +
            Environment.NewLine + "10. Calcular a raiz cúbica de um número" +
            Environment.NewLine + "");
            var resposta = Console.ReadLine();
            int escolha = 0;
            if (int.TryParse(resposta, out escolha))
            {
                switch (escolha)
                {
                    case 1:
                        Cabecalho("Gerar Série de Fibonaci");
                        Gerar_Serie_Fibonaci();
                        break;
                    case 2:
                        Cabecalho("Gerar Fatorial de um número.");
                        Gerar_Fatorial_Numero();
                        break;
                    case 3:
                        Cabecalho("Gerar Soma de N números");
                        Gerar_Soma_Numeros();
                        break;
                    case 4:
                        Cabecalho("Obter os fatores de um número");
                        Obter_Fatores_Numero();
                        break;
                    case 5:
                        Cabecalho("Verificar se um número e um número de Armstrong");
                        Verificar_Numero_Armstrong();
                        break;
                    case 6:
                        Cabecalho("Verificar se um número é um número Perfeito");
                        Verificar_Numero_Armstrong();
                        break;
                    case 7:
                        Cabecalho("Calcular o MDC entre dois números");
                        CalcularMaiorDivisorComum();
                        break;
                    case 8:
                        Cabecalho("Calcular o MMC entre dois números");
                        CalcularMenorMultiploComum();
                        break;
                    case 9:
                        Cabecalho("Verificar se um número é Primo");
                        VerificarNumerosPrimos();
                        break;
                    case 10:
                        Cabecalho("Calcular a raiz cúbica de um número");
                        Calcular_Raiz_Cubica();
                        break;
                    default:
                        Console.WriteLine("Opção Incorreta!!!" +
                        Environment.NewLine + "Pressione qualquer tecla para Sair");
                        Console.ReadKey();
                        break;
                }
            }
            else
            {
                Console.WriteLine("Informe somente valores numéricos!!!" +
                Environment.NewLine + "Pressione qualquer tecla para Sair");
                Console.ReadKey();
            }
        }

No código estamos usando o comando Switch para simular muitas condições if..else. Todos os tipos primitivos (int, string, decimal,short,etc.) podem ser usados nas instruções switch/case.

Cada rótulo Case especifica um valor constante onde a expressão de opção transfere o controle para a seção switch cujo rótulo Case corresponde ao valor da expressão switch.

Note que usamos instruções break para sair do bloco. Sem isto o próximo bloco Case seria executado.

A seguir temos o código dos métodos que serão usados para exibir o cabeçalho, o rodapé e imprimir um texto no console:

        public static void Cabecalho(string texto)
        {
            Console.WriteLine("==================================================");
            Console.WriteLine(texto);
            Console.WriteLine("==================================================");
        }
        public static void Rodape(string texto)
        {
                Console.WriteLine(texto);
                Console.ReadLine();
        }
        public static void Texto(string texto)
        {
            Console.WriteLine(texto);
        }

Agora temos o código de cada um dos métodos que são chamados pela respectiva opção do menu para resolver o problema.

Abaixo temos os 5 primeiros métodos:

  1. Gerar_Serie_Fibonacci

  2. Gerar_Fatorial_Numero

  3. Gerar_Soma_Numeros

  4. Obter_Fatores_Numero

  5. Verificar_Numero_Armstrong

Agora que tal você tentar resolver cada um desses problemas para exercitar as suas habilidades na linguagem C# ?

A aplicação já esta praticamente montada e só falta você definir 5 métodos com o código para resolver cada problema.

Vou interromper o artigo aqui para que você possa continuar por si mesmo e tente resolver o problema. OK ?

A seguir vou dar as definições de alguns termos para ajudar na resolução :

  1. Número de Fibonacci - Na matemática, a Sucessão de Fibonacci (também Sequência de Fibonacci), é uma sequência de números inteiros, começando normalmente por 0 e 1, na qual, cada termo subsequente (número de Fibonacci) corresponde a soma dos dois anteriores. Ex: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, ... (podendo ser omitido o zero inicial)
     

  2. Fatorial - Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. A notação n! foi introduzida por Christian Kramp em 1808.
     

  3. Soma de Numeros - Soma de número naturais usando as propriedades da adição;
     

  4. Fatores - Todo número inteiro positivo, maior do que um, pode ser escrito univocamente como o produto de vários números primos (chamados fatores primos). Ao processo que recebe como argumento um número e devolve os seus fatores primos chama-se decomposição em fatores primos.
     

  5. Número de Armstrong - O conceito da Álgebra para um número de Armstrong diz que: é um número de n dígitos que é igual a soma de cada um dos seus dígitos elevado a n-ésima potência .  Por exemplo, 153 (n = três dígitos) é igual a 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153

Após terminar, confira o seu resultado dos 5 primeiros exercícios, continuando a leitura no próximo artigo da série que será publicado na próxima semana.

Vede quão grande amor nos tem concedido o Pai, que fôssemos chamados filhos de Deus. Por isso o mundo não nos conhece; porque não o conhece a ele.
1 João 3:1

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti