7. Estrutura de Decisão
Atualizado em: 26 de março de 2024
Por: Nelson H. Koshoji
7.1 Conceitos
As estruturas de decisão em algoritmos são fundamentais para o desenvolvimento de programas que realizam operações lógicas, permitindo que o software tome decisões e siga diferentes caminhos com base em condições específicas. Essas estruturas são a base para a criação de algoritmos mais complexos e adaptáveis, capazes de lidar com uma variedade de situações e dados de entrada.
Decisão: No contexto de programação, uma decisão é um ponto no algoritmo onde o programa escolhe entre duas ou mais rotas de execução com base no resultado de uma expressão lógica ou condição.
Condição: Uma expressão lógica que pode ser avaliada como verdadeira ou falsa. As condições geralmente envolvem comparações entre variáveis e valores, utilizando operadores de comparação (como ==, !=, >, <, >=, <=).
Bloco de Código: Um conjunto de instruções que são executadas como um grupo. Nos algoritmos, um bloco de código pode ser executado se uma condição específica for verdadeira ou falsa.
7.2 Tipos de Estruturas de Decisão
Simples (IF): A estrutura de decisão mais básica, onde uma condição é avaliada, e se for verdadeira, um bloco de código é executado. Se a condição for falsa, o bloco de código é ignorado.
Composta (IF-ELSE): Neste tipo, existem dois caminhos possíveis: um se a condição for verdadeira e outro se for falsa. Se a condição for verdadeira, um bloco de código é executado; se for falsa, outro bloco de código é executado.
Múltipla Escolha (ELSE-IF ou SWITCH-CASE): Usada quando existem várias condições a serem avaliadas, permitindo múltiplos caminhos de execução com base em diferentes critérios.
7.3 Exemplos em Linguagem C
Estrutura de decisão simples:
// Estrutura de decisão simples
#include <stdio.h>
int main() {
int numero;
printf("Digite um numero inteiro: ");
scanf("%d",&numero);
if (numero > 0) {
printf("O número é positivo.\n");
}
return 0;
}
Estrutura de decisão composta:
// Estrutura de decisão composta
#include <stdio.h>
int main() {
int numero;
printf("Digite um numero inteiro: ");
scanf("%d",&numero);
if (numero > 0) {
printf("O número é positivo.\n");
}
else {
printf("O número é negativo.\n");
}
return 0;
}
Estrutura de decisão com multipla escolha (else if):
// Estrutura de decisão com multipla escolha
#include <stdio.h>
int main() {
int numero;
printf("Digite um numero inteiro: ");
scanf("%d",&numero);
if (numero == 0) {
printf("O número é zero.\n");
}
else if (numero > 0) {
printf("O número é positivo.\n");
}
else {
printf("O número é negativo.\n");
}
return 0;
}
Estrutura de decisão com multipla escolha (switch-case):
// Estrutura de decisão com multipla escolha
#include <stdio.h>
int main() {
int dia;
printf("Digite o numero do dia da semana: ");
scanf("%d",&dia);
switch (dia) {
case 1:
printf("Domingo\n");
break;
case 2:
printf("Segunda-feira\n");
break;
case 3:
printf("Terça-feira\n");
break;
case 4:
printf("Quarta-feira\n");
break;
case 5:
printf("Quinta-feira\n");
break;
case 6:
printf("Sexta-feira\n");
break;
case 7:
printf("Sábado\n");
break;
default:
printf("Número inválido! Escolha um número de 1 a 7.\n");
}
return 0;
}
7.4 Exercícios
- Faça um algoritmo dois números inteiros distintos e como resultado exiba sempre o valor maior.
- Faça um algoritmo que leia um número inteiro positivo. Escreva uma mensagem indicando se ele é par ou ímpar.
- Faça um algoritmo que entre com duas notas de avaliações de um aluno. Calcule a média e verifique se ele esta aprovado ou reprovado. Será considerado aprovado se a media for maior ou igual a 6.
- Faça um algoritmo que leia um número inteiro. Escreva uma mensagem indicando se ele é positivo, negativo ou zero.
Uma loja está aplicando uma política de desconto, se o valor da compra do cliente for maior ou igual a R$ 500,00, a loja concede 20% de desconto. Caso contrário, não tem nenhum desconto. Faça um algoritmo que mostre quanto o comprador obteve de desconto, de acordo com a política, e mostre, também o valor da compra com desconto.
- Uma loja está aplicando uma política de descono, se o valor da compra do cliente for maior ou igual a R$ 500,00, a loja concede 20% de desconto. Caso contrário, a loja concede 5% de desconto. Faça um algoritmo que mostre quanto o comprador obteve de desconto, de acordo com a política, e mostre, também o valor da compra com desconto.
- Uma loja está aplicando uma política de desconto, se o valor da compra do cliente for maior ou igual a R$ 1000,00, a loja concede 20% de desconto. Se o valor da compra estiver entre 500,00 até 999,99, será concedido 10% de desconto. Agora se o valor for menor que 500,00 o comprador, terá 5% de desconto. Mostre no final quanto o comprador obteve de desconto, de acordo com a política, e mostre, também o valor da compra com desconto.
- Faça um algoritmo que entre com uma nota de um determinado produto. Esta nota tem uma escala de 0 a 100. Se a nota For maior que 90, escreva “Produto Excelente”. Se a nota está entre 70 e 89, escreva “Produto Bom”. Se a nota está entre 50 e 69, escreva “Produto Bom”. Abaxo de 50, escreva “Produto Ruim”.
- Faça um algoritmo que entre com duas notas de avaliações de um aluno e a quantidade de falta do semestre. Calcule a média e verifique se ele esta aprovado ou reprovado, de acordo com a média e a quantidade de falta. Será considerado aprovado se a media for maior ou igual a 6 e a quantidade de falat menor ou igual a 20. Caso contrário, teremos três situações: “Reprovado por falta”, “Reprovado por nota” ou “Reprovado por falta e nota”.
Represente por meio de um algoritmo o cálculo de uma equação de segundo grau, entrando com os valores do coeficiente “a”, “b” e “c”. Deve respeitar as seguintes regras:
- Se o coeficiente “a” for igual a zero informar que esta não é uma equação do 2º grau e terminar o algoritmo.
- Se o valor de delta for negativo informar que a equação não tem raízes reais e terminar o algoritmo.
- Se o valor de delta for positivo informar que a equação tem duas raízes reais distintas, calcular as raízes e terminar o algoritmo.
- Se o valor de delta for igual a zero informar que a equação tem apenas uma raiz real, calcular essa raiz e terminar o algoritmo.
Função do 2º grau: \(ax^2+bx+c = 0\), onde o coeficiente “a” ≠ 0
Dados três valores A , B e C (lados de um triângulo). Verifique se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verifique se é um triângulo equilátero, isósceles ou escaleno. Se não formarem um triângulo, escreva a mensagem “Esses valores não formam o comprimento de um triângulo” e termine o programa. Faça um algoritmo, considerando que:
- Não formam um triângulo:
- Se um dos lados do triângulo é zero.
- Se o comprimento de cada lado não deve ser maior que a soma dos outros dois lados.
- Formam um triângulo:
- Equilátero: quando possui os três lados iguais.
- Isósceles: quando possui dois lados iguais.
- Escaleno: quando possui os três lados diferentes.