Lista de exercícios em C#

Resolução completa de nove exercícios usando Visual Studio em Console em C#

Simplificando o desenvolvimento de APIs PHP com Swagger

Em toda instituição de ensino, seja superior ou não, utilizam diversas listas de exercícios para lecionar aos seus alunos, a fins didáticos e de fixação.

Você irá encontrar aqui, a resolução para nove exercícios utilizando o C# com a IDE Visual Studio, porém você pode utilizar o Mono ou Sharp Develop.

Existem diferentes formas de solucionar estes exercícios, aqui foi utilizado uma delas, sendo assim, você pode obter o mesmo resultado com mais ou menos códigos.

Apresentação

 

1 – Desenvolva um algoritmo que solicite a entrada de um número e calcule se o número é par ou impar.

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Exercicio_01
{
    class Program
    {
        static void Main(string[] args)
        {
            /* Console.WriteLine("Olá mundo!"); //imprime um valor na tela

             Console.ForegroundColor = ConsoleColor.Blue; //Altera a cor da fonte
             Console.WriteLine("Meu primeiro projeto.");

             Console.ReadKey(); //Aguarda o pressionamento de alguma tecla para continuar
             * 
             */

            int NumeroDigitado;

            Console.Write("Insira um número: "); //Exibe a mensagem

            NumeroDigitado = Convert.ToInt32(Console.ReadLine()); //Lê e converte para int o número informado pelo usuário

            if (NumeroDigitado % 2 == 0)
            {
                //Número Par
                Console.WriteLine("Par");
            }
            else
            {
                //Número Impar
                Console.WriteLine("Impar");
            }

            Console.ReadKey();
        }
    }
}

 

2 – Desenvolva um algoritmo que permita a entrada do nome do usuário e exiba na tela.

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Exercicio_02
{
    class Program
    {
        static void Main(string[] args)
        {
            string Nome; //Variável que armazena o nome do Usuário.

            Console.Write("Informe o seu nome: ");
            Nome = Console.ReadLine();

            //Console.WriteLine(string.Format("Meu nome é: {0}", Nome));
          //Console.WriteLine("Meu nome é: " + Nome);
            Console.WriteLine("");
            Console.WriteLine("");

            Console.Write("Meu nome é: ");

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write(Nome);
            Console.ReadKey();
        }
    }
}

 

3 – Desenvolva uma calculadora, onde será necessário entrar com a operação, primeiro e segundo valor, exiba o resultado na tela.

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercicio_03
{
    class Program
    {
        static void Main(string[] args)
        {

            double Num1, Num2, Resultado = 0;
            char Operacao;

            Console.WriteLine("Entre com a operação-->");
            Console.WriteLine("+ Adição-------------->");
            Console.WriteLine("- Subtração----------->");
            Console.WriteLine("* Multiplicação------->");
            Console.WriteLine("/ Divisão------------->");
            Console.WriteLine("-----------------------");

            Console.WriteLine();

            Console.Write("Operação: ");

            char.TryParse(Console.ReadLine(), out Operacao);

            Console.WriteLine();
            Console.Write("Informe o primeiro valor: ");
            double.TryParse(Console.ReadLine(), out Num1);

            Console.WriteLine();
            Console.Write("Informe o segundo valor: ");
            double.TryParse(Console.ReadLine(), out Num2);

            Console.WriteLine();
            Console.WriteLine();

            switch (Operacao)
            {
                case '+':
                    Resultado = Adicao(Num1, Num2);
                    break;

                case '-':
                    Resultado = Subtracao(Num1, Num2);
                    break;

                case '*':
                    Resultado = Multiplicacao(Num1, Num2);
                    break;

                case '/':
                    Resultado = Divisao(Num1, Num2);
                    break;
            }

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine(string.Format("Resultado: {0}", Resultado));

            Console.ReadKey();
        }

        private static Double Adicao(double Num1, double Num2)
        {
            return (Num1 + Num2);
        }

        private static Double Subtracao(double Num1, double Num2)
        {
            return (Num1 - Num2);
        }

        private static Double Multiplicacao(double Num1, double Num2)
        {
            return (Num1 * Num2);
        }

        private static Double Divisao(double Num1, double Num2)
        {
            return (Num1 / Num2);
        }
    }
}

 

4 – Desenvolva um algoritmo que solicite a entrada da idade de um determinado usuário, se for menor que 18 anos exiba na cor vermelha “Sem permissão”, caso seja maior ou igual a 18 anos exiba na cor verde “Permissão concedida”.

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercicio_04
{
    class Program
    {
        static void Main(string[] args)
        {
            Processar();

            Console.ReadKey();
        }

        private static void Processar()
        {
            int Idade;
            Console.Write("Informe a sua idade: ");
            int.TryParse(Console.ReadLine(), out Idade);

            if (Idade >= 18)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Acesso permitdo");
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Acesso Negado");
            }
        }
    }
}

 

5 – Desenvolva um método que receba por parâmetro o um nome, e retorne a frase “Olá meu nome é: {nome recebido}”.

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercicio_05
{
    class Program
    {
        static void Main(string[] args)
        {
            string Nome;
            Console.WriteLine("Informe o seu nome: ");

            Nome = Console.ReadLine();

            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.Blue;

            Console.WriteLine(string.Format("Meu nome é: {0}", Nome));

            Console.ReadKey();
        }
    }
}

 

6 – Desenvolva um algoritmo que solicite a entrada de uma frase, após isto troque todas as letras A ou a por &, porém não utilize o método Replace().

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercicio_06
{
    class Program
    {
        static void Main(string[] args)
        {

            Program p = new Program();
            string Frase = "Agora eu sou um bom desenvolvedor.";

            Console.WriteLine(p.Alterar(Frase));

            Console.ReadKey();
        }

        private string Alterar(string Frase)
        {
            if (Frase.Trim().Length > 0)
            {
                int Total = Frase.Length;
                int Count = 0;

                var StringBuilder = new StringBuilder(Frase);

                while (Count < Total)
                {
                    if (StringBuilder[Count] == 'o')
                    {
                        StringBuilder[Count] = '&';
                    }
                    Count++;
                }

                Frase = StringBuilder.ToString();

                return Frase;
            }
            else
            {
                return null;
            }
        }
    }
}


7 – Desenvolva um algoritmo que calcule o reajuste salarial. Se o salário for abaixo de 1.700 o ajuste é de R$300.00, se maior de R$ 200.00. Para finalizar, exiba o novo salário na tela.

Solução:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercicio_07
{
    class Program
    {
        static void Main(string[] args)
        {

            Program p = new Program();
            Double Salario;

            Console.WriteLine("Informe o seu salário, use ponto");

            Console.WriteLine();

            Console.Write("Salario: ");
            double.TryParse(Console.ReadLine(), out Salario);

            Console.WriteLine();

            Console.Write("Salário atual: ");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write(Salario.ToString());


            Console.ResetColor();
            Console.WriteLine();

            Console.WriteLine("\a");

            Console.Write("Novo salário: ");
            Console.ForegroundColor = ConsoleColor.Green;

            Console.Write(p.CalculaSalario(Salario));

            Console.ReadKey();
        }

        private double CalculaSalario(double Salario)
        {

            double NovoSalario = 0;

            if (Salario >= 1700)
            {
                NovoSalario = (Salario + 200);
            }
            else
            {
                NovoSalario = (Salario + 300);
            }

            return NovoSalario;

        }
    }
}

 

8 - Desenvolva um algoritmo que solicite a entrada de nome, e-mail, telefone e RG de um determinado usuário e grave em um arquivo de texto. Exiba as informações na tela a partir do arquivo de texto gerado.

Solução:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace exercicio_08
{
    class Program
    {
        static void Main(string[] args)
        {
            string acao = "";
            string caminho = "usuario.txt";
            string nome = "", email = "", telefone = "", rg = "";

            Console.WriteLine("##########################");
            Console.WriteLine("##########################");
            Console.WriteLine("G- Gravar ################");
            Console.WriteLine("L- Ler ###################");
            Console.WriteLine("S - Sair #################");
            Console.WriteLine("##########################");
            Console.WriteLine("##########################");
            Console.Write("Digite uma operação: ");

            acao = Console.ReadLine().ToUpper();
            Console.WriteLine();

            while (acao != "S")
            {

                if (acao == "G")
                {
                    Console.Write("Informe seu nome: ");
                    nome = Console.ReadLine();

                    Console.Write("Informe seu e-mail: ");
                    email = Console.ReadLine();

                    Console.Write("Informe seu Telefone: ");
                    telefone = Console.ReadLine();

                    Console.Write("Informe seu RG: ");
                    rg = Console.ReadLine();

                    StreamWriter sw = new StreamWriter(caminho, true);

                    sw.WriteLine("Nome: " + nome);
                    sw.WriteLine("E-mail: " + email);
                    sw.WriteLine("Telefone: " + telefone);
                    sw.WriteLine("RG: " + rg);
                    sw.WriteLine("--------------------------------------------------");

                    sw.Close();
                }
                else if (acao == "L")
                {
                    StreamReader sr = new StreamReader(caminho);

                    while (sr.EndOfStream != true)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }

                    sr.Close();
                }

                Console.WriteLine();
                Console.WriteLine("Pressione uma tecla para continuar...");
                Console.ReadKey();

                Console.Clear();
                Console.WriteLine("##########################");
                Console.WriteLine("##########################");
                Console.WriteLine("G- Gravar ################");
                Console.WriteLine("L- Ler ###################");
                Console.WriteLine("S - Sair #################");
                Console.WriteLine("##########################");
                Console.WriteLine("##########################");
                Console.Write("Digite uma operação: ");

                acao = Console.ReadLine().ToUpper();
                Console.WriteLine();

            }
        }
    }
}


9 – Desenvolva um algoritmo que calcule o IMC de uma determinada pessoa, e grave os resultados em um arquivo de texto, onde ao acessar a aplicação será solicitado se quer fazer um novo cadastro ou consultar os existentes. Cadastrando um novo calculo de IMC, será necessário informar o nome, idade, peso e altura. O cálculo do IMC é feito dividindo o peso (em quilogramas) pela altura (em metros) ao quadrado. Ao gravar em um arquivo de texto, os dados anteriores deverão ser mantidos.

Solução:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercicio_09
{
    class Program
    {
        static void Main(string[] args)
        {
            string acao = "";
            string caminho = "imc.txt";
            double peso, altura, imc;
            string nome, resultado = "";
            int idade;

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("#####################");
            Console.WriteLine("N - Novo ############");
            Console.WriteLine("C - Consultar #######");
            Console.WriteLine("S - Sair#############");
            Console.WriteLine("#####################");
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.Write("Informe uma operação: ");
            Console.ResetColor();

            acao = Console.ReadLine().ToUpper();
            Console.WriteLine();

            while (acao != "S")
            {
                if (acao == "N")
                {
                    Console.Write("Informe o nome: ");
                    nome = Console.ReadLine();

                    Console.Write("Informe a idade: ");
                    int.TryParse(Console.ReadLine(), out idade);

                    Console.Write("Informe o peso: ");
                    double.TryParse(Console.ReadLine(), out peso);

                    Console.Write("Informe a altura: ");
                    double.TryParse(Console.ReadLine(), out altura);

                    imc = Math.Round((peso / (altura * altura)));

                    if (imc < 18.5)
                    {
                        resultado = "Peso abaixo do normal";
                    }
                    else if (imc > 18.5 && imc < 25)
                    {
                        resultado = "Peso normal";
                    }
                    else if (imc > 25 && imc < 30)
                    {
                        resultado = "Sobre peso";
                    }
                    else if (imc > 30 && imc < 35)
                    {
                        resultado = "Grau de obesidade I";
                    }
                    else if (imc > 35 && imc < 40)
                    {
                        resultado = "Grau de obesidade II";
                    }
                    else if (imc > 40)
                    {
                        resultado = "Grau de obesidade III";
                    }


                    if (resultado != "" && imc > 0 && altura > 0 && peso > 0 && nome.Trim().Length > 2 && idade > 0)
                    {


                        StreamWriter sw = new StreamWriter(caminho, true);

                        sw.WriteLine(string.Format("Nome: {0}", nome));
                        sw.WriteLine(string.Format("Idade: {0}", idade));
                        sw.WriteLine(string.Format("Peso: {0}", peso));
                        sw.WriteLine(string.Format("Altura: {0}", altura));
                        sw.WriteLine(string.Format("IMC: {0}", imc));
                        sw.WriteLine(string.Format("Resultado: {0}", resultado));
                        sw.WriteLine("------------------------------------------");

                        sw.Close();
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine();
                        Console.WriteLine("-->Dados inválidos, operação cancelada!!!");
                        Console.WriteLine();
                        Console.ResetColor();
                    }
                }
                else if (acao == "C")
                {
                    StreamReader sr = new StreamReader(caminho);

                    while (!sr.EndOfStream)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }

                    sr.Close();
                }

                Console.WriteLine();
                Console.WriteLine("Pressione uma tecla para continuar");
                Console.ReadKey();


                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("#####################");
                Console.WriteLine("N - Novo ############");
                Console.WriteLine("C - Consultar #######");
                Console.WriteLine("S - Sair#############");
                Console.WriteLine("#####################");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write("Informe uma operação: ");
                Console.ResetColor();

                acao = Console.ReadLine().ToUpper();
                Console.WriteLine();
            }

        }
    }
}

Dúvidas, criticas ou quaisquer sugestão, deixe nos comentário.