CSE 210: Programação com Classes

Programação em C# - Exercício 2: Declarações If

Visão Geral

Esta atividade ajudará você a aprender a trabalhar com variáveis e instruções condicionais em C#.

Material de Preparação

Condicionais

C# usa instruções if assim como Python, mas a sintaxe é um pouco diferente.

Instruções If

Primeiramente, a condição da instrução if deve ser colocada entre parênteses (). Então, para definir o corpo da instrução if, você adiciona um recuo, apenas por convenção, pois na verdade são as chaves {} que definem o corpo. (Você também não usa dois-pontos : como faz no Python para iniciar o bloco.)

Python


if x > y:
    print("maior que")

C#


if (x > y)
{
    Console.WriteLine("maior que");
}

Observe que a convenção em C# é colocar as chaves {} em suas próprias linhas. Há debates “religiosos” sobre "o único estilo verdadeiro de chaves", mas colocá-las em uma linha separada é a convenção definida para C#, então é isso que você deve seguir.

Se você colocar um bloco de código dentro de outro, ele deverá ser recuado da seguinte maneira:


if (x > y)
{
    if (x > z)
    {
        Console.WriteLine("maior que ambos");
    }
}
Else e Else If

C# é compatível com else e else if, semelhante a else e elif em Python.

A condição else define um corpo de código, assim como a condição if:

Python


if x > y:
    print("maior que")
else:
    print("menor que")

C#


if (x > y)
{
    Console.WriteLine("maior que");
}
else
{
    Console.WriteLine("menor que");
}

A condição else if também define seu corpo da mesma maneira. Por favor, observe que em C#, as palavras-chave são else if not elif:

Python


if x > y:
    print("maior que y")
elif x > z:
    print("maior que z")
else:
    print("menor que ambos")

C#


if (x > y)
{
    Console.WriteLine("maior que y");
}
else if (x > z)
{
    Console.WriteLine("maior que z");
}
else
{
    Console.WriteLine("menor que ambos");
}
Operadores

C# usa o operador == para verificar se duas variáveis são iguais, assim como em Python. Ele também é compatível com outros operadores com os quais você está familiarizado, como !=, >=, <= e assim por diante:


if (nome == "João")
{
    Console.WriteLine("O nome é João");
}

if (cor != corFavorita)
{
    Console.WriteLine("Essa cor não é a minha favorita");
}
Operadores E, Ou e Não

Em C#, o operador e é &&, o operador ou é || e o operador não é !, que podem ser combinados com outras expressões e parênteses.


if (nome == "Pedro" || nome == "Tiago" || nome == "João")
{
    Console.WriteLine("Este é um nome bíblico.");
}

if (primeiroNome == "Brigham" && sobrenome == "Young")
{
    Console.WriteLine("Bem-vindo, irmão Brigham!");
}

if (!(nome == "Pedro" || nome == "Tiago" || nome == "João"))
{
    Console.WriteLine("Este não é um desses três");
}

Variáveis e Tipos

Em C#, a convenção de nomenclatura para variáveis é usar palavras compostas, onde cada palavra é iniciada com minúsculas e unidas sem espaços ("camel case"). Isso significa que a variável começa com uma letra minúscula e, em seguida, palavras adicionais na variável começam com uma letra maiúscula, como as corcovas de um camelo:


string cor;
string primeiroNome;
string sobrenome;
int velocidadeAntesDoImpacto;
Convertendo Tipos

Como mencionado anteriormente, em C#, todas as variáveis devem ter seu tipo de dado definido no momento em que são declaradas pela primeira vez. Uma vez definido, o tipo da variável não pode ser alterado. Isso significa que você não pode declarar uma variável como um número inteiro e depois reatribuí-la a uma string.

No entanto, você pode converter o valor de uma variável para um tipo diferente. Por exemplo, você pode criar um inteiro a partir dos dígitos armazenados em uma string usando a função int.Parse().


string valorEmTexto = "42";
int numero = int.Parse(valorEmTexto);

Isso é especialmente importante se o valor vier do usuário por meio de uma instrução Console.ReadLine(), que sempre retorna uma string:


Console.Write("Qual é o seu número favorito? ");
string entradaUsuario = Console.ReadLine();
int numero = int.Parse(entradaUsuario);

Se o usuário digitar algo diferente de um número, isso resultará em um tipo de erro chamado Exceção em Tempo de Execução.

Números para Cadeias de Caracteres (Strings)

Da mesma forma, um número inteiro pode ser convertido em uma string usando a função .ToString() da variável.


int numero = 42;
string versaoTexto = numero.ToString();

Demonstração em Vídeo

Esses fundamentos são demonstrados no vídeo a seguir:

Link Direto: ▶️Condicionais e Variáveis em C# (8 minutos)

Instruções da Tarefa

Para esta tarefa, você concluirá outra tarefa que fez anteriormente em CSE 110. Mas, neste caso, escreva o programa em C#:

Especificação do Programa

Aqui estão as instruções que você viu anteriormente em CSE 110 que usaremos como especificação do nosso programa:

Visão Geral

Escreva um programa que determine a nota conceitual de um curso de acordo com a seguinte escala:

Tarefa

Comece concluindo os requisitos básicos. Quando essa parte estiver concluída, se você tiver tempo, veja se consegue concluir alguns dos desafios adicionais também.

Por favor, analise os requisitos em ordem, em vez de avançar para etapas mais complexas, para garantir que todos estejam seguindo os conceitos.

Requisitos Básicos
  1. Peça ao usuário a nota numérica (1 a 100) e, em seguida, escreva uma série de instruções if-else if-else para exibir a nota conceitual equivalente. (Neste ponto, você terá uma instrução de impressão separada para cada letra de nota conceitual no bloco apropriado.)

  2. Suponha que você deve ter pelo menos 70 para ser aprovado no curso. Após determinar a letra da nota e imprimi-la. Adicione uma instrução if separada para determinar se o usuário foi aprovado no curso e, em caso afirmativo, exiba uma mensagem para parabenizá-lo. Caso contrário, exiba uma mensagem diferente para encorajá-lo na próxima vez.

  3. Altere seu código da primeira parte para que, em vez de exibir a letra da nota no corpo de cada bloco if, else if ou else, crie uma nova variável chamada letra e, em cada bloco, defina essa variável com o valor apropriado. Por fim, após toda a série de instruções if-else if-else, tenha uma única instrução print que exiba a nota conceitual uma vez.

Desafio Adicional
  1. Adicione ao seu código a capacidade de incluir um “+” ou “-” depois da nota, como B+ ou A-. Para cada nota, você saberá que é um “+” se o último dígito for >= 7. Você saberá que é um “-” se o último dígito for <3. Caso contrário, não deverá haver nenhum sinal.

    Após sua lógica para determinar a letra da nota, adicione outra seção para determinar o sinal. Salve o sinal em uma variável. Em seguida, exiba s nota e o sinal em uma instrução print.

    Dica: Para obter o último dígito, você pode dividir o número por 10 e obter o resto. Você pode rever os operadores matemáticos padrão e encontrar aquele que faz a divisão e fornece o resto.

    Neste ponto, não se preocupe com os casos excepcionais de A+, F+ ou F-.

  2. Perceba que não existe nota A+, apenas A e A-. Adicione lógica ao seu programa para detectar este caso e abordá-lo de maneira apropriada.

  3. Da mesma forma, perceba que não existem notas F+ ou F-, apenas F. Adicione lógica ao seu programa para detectar esses casos e abordá-los de maneira apropriada.

Crie e teste o programa

  1. Crie e teste o programa conforme descrito acima.
  2. Você deve concluir os 3 Requisitos Básicos.
  3. Os desafios adicionais são opcionais.
  4. Certifique-se de usar o mesmo modelo de projeto que você usou para o Exercicio1. No entanto, desta vez, você deve adicionar seu código no arquivo Program.cs no projeto Exercicio2.

Exemplo de Solução

Quando terminar o programa, por favor, compare sua abordagem com a deste exemplo de solução:

Obtendo Ajuda

Se você tiver dúvidas, por favor, pergunte no Microsoft Teams.

Enviando

Retorne ao Canvas e responda ao questionário correspondente.