C#: Exercício: Revisão dos conceitos básicos

1. Conversor de temperatura

Objetivo: Implementar a conversão bidirecional entre graus Celsius e Fahrenheit. O usuário seleciona o sentido da conversão e insere uma temperatura, e o programa exibe o resultado.

Requisitos:

Fórmulas de conversão:

▶ Exemplo

CSHARP
Console.WriteLine("Temperature Converter");
Console.WriteLine("1. Celsius to Fahrenheit");
Console.WriteLine("2. Fahrenheit to Celsius");
Console.Write("Choose (1 or 2): ");
string choice = Console.ReadLine();

if (choice == "1")
{
    Console.Write("Enter Celsius temperature: ");
    double celsius = double.Parse(Console.ReadLine());
    double fahrenheit = celsius * 9 / 5 + 32;
    Console.WriteLine($"{celsius}°C = {fahrenheit:F2}°F");
}
else if (choice == "2")
{
    Console.Write("Enter Fahrenheit temperature: ");
    double fahrenheit = double.Parse(Console.ReadLine());
    double celsius = (fahrenheit - 32) * 5 / 9;
    Console.WriteLine($"{fahrenheit}°F = {celsius:F2}°C");
}
else
{
    Console.WriteLine("Invalid choice. Please enter 1 or 2.");
}
▶ Experimente
TEXT 📖 Somente leitura
Temperature Converter
1. Celsius to Fahrenheit
2. Fahrenheit to Celsius
Choose (1 or 2): 1
Enter Celsius temperature: 100
100°C = 212.00°F
TEXT 📖 Somente leitura
Temperature Converter
1. Celsius to Fahrenheit
2. Fahrenheit to Celsius
Choose (1 or 2): 2
Enter Fahrenheit temperature: 32
32°F = 0.00°C

2. Calculadora simples

Objetivo: Criar uma calculadora que suporte as quatro operações aritméticas básicas. O usuário insere dois números e um operador, e o programa exibe o resultado, tratando adequadamente a divisão por zero.

Requisitos:

▶ Exemplo

CSHARP
Console.Write("Enter the first number: ");
double num1 = double.Parse(Console.ReadLine());

Console.Write("Enter an operator (+ - * /): ");
string op = Console.ReadLine();

Console.Write("Enter the second number: ");
double num2 = double.Parse(Console.ReadLine());

double result;

switch (op)
{
    case "+":
        result = num1 + num2;
        Console.WriteLine($"{num1} + {num2} = {result}");
        break;
    case "-":
        result = num1 - num2;
        Console.WriteLine($"{num1} - {num2} = {result}");
        break;
    case "*":
        result = num1 * num2;
        Console.WriteLine($"{num1} * {num2} = {result}");
        break;
    case "/":
        if (num2 == 0)
        {
            Console.WriteLine("Error: Division by zero is not allowed!");
        }
        else
        {
            result = num1 / num2;
            Console.WriteLine($"{num1} / {num2} = {result}");
        }
        break;
    default:
        Console.WriteLine("Invalid operator!");
        break;
}
▶ Experimente
TEXT 📖 Somente leitura
Enter the first number: 10
Enter an operator (+ - * /): +
Enter the second number: 3.5
10 + 3.5 = 13.5
TEXT 📖 Somente leitura
Enter the first number: 8
Enter an operator (+ - * /): /
Enter the second number: 0
Error: Division by zero is not allowed!

3. Jogo de adivinhar números

Objetivo: O programa gera um número inteiro aleatório entre 1 e 100. O usuário faz várias tentativas de adivinhar, e o programa dá dicas como “muito alto” ou “muito baixo” até que o número correto seja encontrado; em seguida, exibe o total de tentativas.

Requisitos:

▶ Exemplo

CSHARP
Random random = new Random();
int target = random.Next(1, 101);
int guess;
int attempts = 0;

Console.WriteLine("Number Guessing Game (1-100)");

do
{
    Console.Write("Enter your guess: ");
    guess = int.Parse(Console.ReadLine());
    attempts++;

    if (guess > target)
    {
        Console.WriteLine("Too high!");
    }
    else if (guess < target)
    {
        Console.WriteLine("Too low!");
    }
    else
    {
        Console.WriteLine($"Congratulations! The answer is {target}. You got it in {attempts} attempts.");
    }
} while (guess != target);
▶ Experimente
TEXT 📖 Somente leitura
Number Guessing Game (1-100)
Enter your guess: 50
Too low!
Enter your guess: 75
Too high!
Enter your guess: 62
Too low!
Enter your guess: 68
Congratulations! The answer is 68. You got it in 4 attempts.

4. Padrões em forma de estrela

Objetivo: Usar loops for aninhados para imprimir dois padrões comuns de estrelas — um triângulo retângulo e uma pirâmide — a fim de praticar o uso de loops e a concatenação de strings.

Requisitos:

▶ Exemplo

CSHARP
Console.Write("Enter the number of rows: ");
int rows = int.Parse(Console.ReadLine());

Console.WriteLine("Right Triangle:");
for (int i = 1; i <= rows; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

Console.WriteLine("Pyramid:");
for (int i = 1; i <= rows; i++)
{
    for (int s = 1; s <= rows - i; s++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= 2 * i - 1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
▶ Experimente
TEXT 📖 Somente leitura
Enter the number of rows: 5
Right Triangle:
*
**
***
****
*****
Pyramid:
    *
   ***
  *****
 *******
*********

❓ Perguntas Frequentes

P: O que acontece se double.Parse receber uma entrada não numérica? R: Ele gera uma exceção FormatException. Em projetos reais, use double.TryParse para uma conversão segura.

P: Por que o limite superior de Random.Next(1, 101) é 101? R: O método utiliza um intervalo semiaberto — Next(1, 101) gera números inteiros de 1 a 100, excluindo 101.

P: Como é calculado o número de estrelas por fileira da pirâmide? R: A fileira i tem 2 * i - 1 estrelas — a fileira 1 tem 1, a fileira 2 tem 3, a fileira 3 tem 5 e assim por diante.

P: Qual é a diferença entre do...while e while? R: do...while executa o corpo pelo menos uma vez; while pode nem executá-lo. O jogo de adivinhação exige pelo menos uma tentativa, portanto, do...while é a opção mais adequada.

📖 Resumo

📝 Exercícios

  1. Adicione um loop ao conversor de temperatura para que o usuário possa realizar a conversão repetidamente até digitar q para sair.
  2. Adicionar suporte à operação de módulo (%) à calculadora simples.
  3. Melhorar o jogo de adivinhação de números: quando o usuário inserir um valor não numérico, solicitar que ele tente novamente, em vez de o programa travar.
  4. Imprima um padrão em forma de pirâmide invertida (a fileira mais larga na parte superior e a mais estreita na parte inferior).
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%