Introdução aos comandos condicionais

Ver Todos os Exercícios

Teoria

Introdução

Fala aí, aqui é o Guga do Responde Aí! Tudo bem com você?

Nesse tópico nós iremos conversar um pouquinho sobre os comandos condicionais, esses são responsáveis por decidir que computação o programa irá executar de acordo com algum resultado booleano gerado a partir de uma comparação.

Entender os comandos condicionais é um passo super importante para tornar os nossos programas muito mais elaborados.

Comando condicional

Um comando condicional, assim como o próprio nome sugere, irá executar determinado trecho de código de acordo com o resultado de uma comparação, seja ele verdadeiro ou falso.

Calma, isso ainda está muito geral... Vamos utilizar um exemplo.

Exemplo: suponha que você está desenvolvendo um programa que imprime uma frase dizendo se você passou ou não em uma disciplina em que o critério de avaliação é a média final ser maior ou igual a 6.

Você concorda comigo que existem dois trechos de execução nesse programa que são executados em condições diferentes?

Onde se a sua média final for maior ou igual a 6, uma frase dizendo que você passou na disciplina deve ser impressa, senão uma frase dizendo que você não passou na disciplina deve ser impressa.

Vamos colocar isso em forma de algoritmo? Ficaria mais ou menos assim:

  • Se média final for maior ou igual a 6
    • Imprimir frase dizendo que o aluno foi aprovado na disciplina
  • Senão
    • Imprimir frase dizendo que o aluno não foi aprovado na disciplina

A parte mais interessante é que isso não se limita a apenas linhas de código, mas a trechos inteiros que podem tomar rumos completamente diferentes de execução com apenas uma condição sendo atendida.

Assim como a nossa vida, um programa é feito de escolhas! A grande diferença é que um programa sempre sabe o que fazer após tomar uma decisão.

Calma, não fica triste... Vamos observar mais alguns exemplos!

Exemplo: Faça um algoritmo que reconheça e imprima se determinado número está no intervalo entre 3 e 9.

A primeira coisa que nós devemos fazer é elaborar as condições relacionais que representam esse intervalo:

  • O número deve ser maior que 3;
  • O número deve ser menor que 9.

Além disso, as duas condições devem ser verdadeiras, pois um número pode ser maior que 3 e necessariamente não estar no intervalo, por exemplo o número 27.

Como devemos unir duas condições relacionais de forma com que as duas sejam verdadeiras, utilizaremos o operador lógico “E”:

  • Se o número for maior que 3 e menor que 9
    • Imprimir que o número está no intervalo
  • Senão
    • Imprimir que o número não está no intervalo

Prontinho, viu como é fácil?

Nós já temos uma boa introdução sobre os comandos condicionais, só temos que lembrar que quando eles estão presentes são capazes de executar trechos de códigos diferentes se determinada condição seja verdadeira ou falsa.

Existem dois principais comandos condicionais na linguagem C, o comando if e o comando switch nós os veremos separadamente nos próximos tópicos.

Agora está na hora de resolvermos alguns exercícios de fixação, você não acha?

Sem moleza, hein!?

Comando condicional

Exercícios Resolvidos

Exercício Resolvido #1

Qual é a finalidade de um comando condicional em um programa?

Passo 1

Um comando condicional tem a finalidade de controlar o fluxo de dados em um programa, pois ele irá direcionar quais instruções devem ser executadas de acordo com a situação em que o programa se encontra naquele momento da execução.

Resposta

Em outras palavras, um comando condicional é capaz de direcionar a execução de trechos de instruções através da análise do resultado de comparações, que podem ser verdadeiras ou falsas.

Exercício Resolvido #2

Suponha que você tenha que desenvolver um programa que aplica impostos sobre valores de compras realizadas no exterior.

A principal função do programa é ter como entrada o valor de uma compra e analisar se esse valor é superior a 1.500,00 reais, caso seja o programa deve imprimir na tela uma frase dizendo que a compra foi taxada, caso contrário o programa deve imprimir na tela uma frase dizendo que a compra está dentro dos conformes.

De acordo com o programa descrito, onde se encontra uma situação condicional, ou seja, em que parte do programa instruções deixarão ou irão ser executadas de acordo com o resultado de uma comparação e quais são elas?

Passo 1

O trecho do código que melhor representa uma situação condicional é representado através das instruções de impressão na tela, pois elas dependem diretamente do resultado da comparação entre o valor do produto e o limite de taxação para serem executadas.

Resposta

Em outras palavras, a impressão da frase que o produto foi taxado só irá ser executada se o valor da compra for maior que o limite de taxação, ou seja a condição for verdadeira, caso contrário a impressão que será executada é a que o produto está dentro dos conformes.

Exercício Resolvido #3

Suponha que você tenha que adicionar uma nova funcionalidade ao sistema de inventário do jogo que você começou a desenvolver nos tópicos anteriores.

A nova funcionalidade se baseia em impedir que o inventário seja aberto pelo jogador quando ele estiver em um combate, isso significa que ele não poderá utilizar recursos como poções ou lanches para recuperar a própria vida quando estiver sendo derrotado.

De acordo com o programa descrito, onde se encontra uma situação condicional, ou seja, em que parte do programa instruções deixarão ou irão ser executadas de acordo com o resultado de uma comparação e quais são essas partes?

Passo 1

Uma situação condicional está presente no ato de abrir o inventário, onde toda vez que essa ação for executada uma comparação deve ser realizada para verificar se o jogador está ou não em combate.

Resposta

Portanto, se o jogador estiver em combate, o inventário deve ser bloqueado e uma mensagem de alerta deve ser exibida, caso contrário o inventário deve ser aberto normalmente para uso do jogador.

Exercício Resolvido #4

Suponha que você tenha que desenvolver uma calculadora que realize as operações matemáticas básicas.

A navegação nessa calculadora será realizada por um menu onde o usuário digita o número relacionado a operação que ele deseja seguido dos operandos que irão atuar na operação.

As operações da calculadora são:

  1. Soma
  2. Subtração
  3. Multiplicação
  4. Divisão

Qual é a melhor forma de implementar o menu de operações dessa calculadora?

Passo 1

A melhor forma de realizar essa implementação, é alocar as instruções de cada operação em blocos condicionais.

Isso fará com que a cada entrada do usuário, comparações de igualdade sejam realizadas entre a opção digitada e as disponíveis nos blocos condicionais, caso essa condição de igualdade seja satisfeita as instruções presentes naquele bloco serão executadas, ou seja, a operação desejada será realizada.

Resposta

No caso da nossa calculadora, cada bloco condicional será responsável por realizar uma das quatro operações disponíveis. Sendo assim, teremos quatro blocos, que só serão executados caso a opção digitada seja a representante deles, respectivamente os números de 1 a 4.

Exercício Resolvido #5

Observe o seguinte algoritmo:

  • Se X e Y
    • Imprimir “A condição é verdadeira”
  • Senão
    • Imprimir “A condição é falsa”

Onde:

  • X é igual a 15
  • Y é igual a 0

Ao término da execução desse algoritmo, o que será impresso?

Passo 1

Como X é igual a 15 e Y é igual a 0, temos uma comparação lógica entre verdadeiro e falso efetuada pelo operador E.

Nós sabemos que todo número positivo, na linguagem C, é considerado verdadeiro em comparações com retorno booleano. Também sabemos que na tabela verdade do operador lógico E, qualquer comparação entre verdadeiro e falso resulta em falso.

Passo 2

Como sabemos que o retorno da comparação entre X e Y é falso, a instrução que será executada é aquela presente no bloco “senão” da estrutura, ou seja, a impressão da frase “A condição é falsa”.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #6

Faça um algoritmo que tenha como entrada os 3 lados de um triângulo (A, B e C) e imprima se esse triângulo é ou não um triângulo equilátero.

Passo 1

A primeira coisa que devemos fazer é definir as condições que fazem um triângulo ser equilátero.

  • O lado A deve ser igual ao lado B
  • O lado B deve ser igual ao lado C

Vale lembrar que não é necessário definirmos uma terceira condição que verifica se o lado A é igual ao lado C, pois se as duas condições anteriormente definidas forem verdadeiras, por transitividade a suposta terceira condição também é verdadeira.

Passo 2

Com as condições que definem um triângulo equilátero reconhecidas, podemos construir o algoritmo:

  • Ler o lado A do triângulo
  • Ler o lado B do triângulo
  • Ler o lado C do triângulo
  • Se o lado A for igual ao lado B e o lado B for igual ao lado C
    • Imprimir que o triângulo é equilátero
  • Senão
    • Imprimir que o triângulo não é equilátero

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #7

Visando automatizar as convocações para o alistamento militar obrigatório, o exército brasileiro decidiu criar um programa que analisa o sexo e a idade de um cidadão, caso ele seja do sexo masculino, tenha idade maior ou igual a 18 anos e ainda não tenha se alistado, o programa deve realizar a convocação.

Faça o algoritmo que melhor representa o programa descrito.

Passo 1

O primeiro passo que devemos definir em nosso algoritmo, é o de ler o registro de um cidadão:

  • Ler o registro de um cidadão
  • Passo 2

    Com os dados do cidadão a disposição, o próximo passo do algoritmo é verificar se ele é do sexo masculino, caso seja o algoritmo deve verificar se ele possui idade maior ou igual a 18 anos. Caso o sexo do cidadão não seja masculino, a convocação deverá ser abortada. Realizando a definição, o algoritmo fica da seguinte forma:

  • Se o sexo do cidadão for masculino
    • Se a idade do cidadão for maior ou igual a 18 anos
  • Senão
    • Abortar convocação
  • Passo 3

    Se a idade do cidadão for maior ou igual a 18 anos, o programa deve verificar se ele ainda não realizou o alistamento militar obrigatório. Caso o cidadão seja menor de idade, a convocação deverá ser abortada. Acrescentando as novas instruções, o algoritmo fica da seguinte forma:

  • Se o sexo do cidadão for masculino
    • Se a idade do cidadão for maior ou igual a 18 anos
      • Se alistamento não tiver sido realizado
    • Senão
      • Abortar convocação
  • Senão
    • Abortar convocação
  • Passo 4

    Por fim, se o alistamento ainda não tiver sido efetuado, o programa deverá realizar a convocação, caso contrário abortar ela. O algoritmo final fica da seguinte com as novas instruções:

  • Se o sexo do cidadão for masculino
    • Se a idade do cidadão for maior ou igual a 18 anos
      • Se alistamento não tiver sido realizado
        • Realizar convocação
      • Senão
        • Abortar convocação
    • Senão
      • Abortar convocação
  • Senão
    • Abortar convocação

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #8

Suponha que você decidiu comprar um processador melhor para aprimorar o seu computador e as suas habilidades em programação.

Para te auxiliar nas pesquisas por melhores preços, você decidiu criar um programa capaz de gerar orçamentos acrescentando o valor de cada processador com base em um número dado como entrada do programa.

Dada a seguinte tabela com as informações sobre os processadores mais comuns presentes no mercado:

Faça um algoritmo que dado um número do processador digitado pelo usuário, imprima o nome dele e acrescente o seu valor no orçamento.

Passo 1

Beleza, vamos lá!

O que nós temos que fazer nesse exercício é verificar o número do processador digitado pelo usuário com o número do primeiro processador. Caso a igualdade seja verdadeira, devemos imprimir o nome desse processador e acrescentar o seu valor ao orçamento.

Passo 2

Mas e se o número digitado não for o do primeiro processador?

Por esse motivo, devemos criar outras condição com o número de todos os outros processadores de forma com que todos sejam verificados, nesse caso 3 processadores. Ou seja, se não for o primeiro processador, verificaremos se o número digitado é referente ao segundo, se não for o segundo, o número digitado se refere ao terceiro processador.

Resposta

Portanto, o algoritmo a seguir é o que melhor representa o programa descrito no enunciado:

  • Ler o número do processador
  • Se o número do processador for igual a 3
    • Imprimir “Core I3”
    • Acrescentar R$ 300,99 no orçamento
  • Senão
    • Se número do processador for igual a 5
      • Imprimir “Core I5”
      • Acrescentar R$ 555,55 no orçamento
    • Senão
      • Se o número do processador for igual a 7
        • Imprimir “Core I7”
        • Acrescentar R$ 877,99 no orçamento