Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez Estrutura Condicional A estrutura condicional permite a escolha de um grupo de ações a ser executado quando determinada condição, representada por uma expressão lógica, é ou não satisfeita. Esta estrutura pode se apresentar de duas formas: 1.Estrutura Condicional Simples 2.Estrutura Condicional Composta Estrutura Condicional 1. Estrutura Condicional Simples Formato : Se condição então sequência de comandos Fim se Neste caso, a seqüência de comandos só será executada se a condição for verdadeira. Exemplo: Algoritmo <exemplo1> inteiro: a,b,c Inicio leia (a,b,c) se (a+b)<c então escreva (“ok”) fim se Fim Estrutura Condicional 2. Estrutura Condicional Composta Formato : Se condição então seqüência A de comandos senão seqüência B de comandos Fim se Neste caso, a seqüência A de comandos só será executada se a condição for verdadeira e a seqüência B de comandos só será executada se a condição for falsa. Estrutura Condicional Exemplo 1: Algoritmo <exemplo1> inteiro: a,b,c Inicio leia (a,b) se (a+b)=6 então c ←1000 senão c ←2500 fim se escreva (c) Fim Estrutura Condicional Exemplo2: Faça um algoritmo que dadas três notas de um aluno, determine a média e imprima o conceito Aprovado ou Reprovado, para média >=7 e <7 respectivamente. Algoritmo <media> real: nota1,nota2,nota3,media Inicio leia (nota1,nota2,nota3) media ←(nota1+nota2+nota3)/3 se media>=7 então escreva (“Aprovado”) senão escreva (“Reprovado”) fim se Estrutura Condicional Desvio condicional aninhado: Usado para tomadas de decisões para mais de 2 opções. Exemplo: se condição então seqüência A de comandos senão se condição então seqüência B de comandos senão seqüência C de comandos fim se fim se Estrutura Condicional Exemplo de desvio condicional aninhado: Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o peso e a altura da pessoa. O grau de obesidade é determinado pelo índice de massa corpórea (massa=peso/altura2) através da tabela abaixo Indice Massa corpórea Grau de obesidade <26 Normal >=26 e <30 Obeso >=30 Obeso mórbido Estrutura Condicional Algoritmo<grauobesidade> real : peso,altura,indicemassa literal:grauobesidade Inicio leia (peso,altura) indicemassa←peso/altura**2 se indicemassa<26 então grauobesidade ←”normal” senão se indicemassa<30 então grauobesidade ←”obeso” senão grauobesidade ←”obeso morbido” fim se fim se escreva (grauobesidade) Estrutura Condicional Simples Exemplo 1 . Após a execução do seguinte trecho de um algoritmo Algoritmo <trecho> Início. D ←0 se A<=B e C>=B então D ←5 fim se Fim Em D estará armazenado o valor 5 se: (a) A<B<C (b) A<=B<=C (c) A<B<=C (d) B<C<A (e) Nenhuma das respostas acima Estrutura Condicional Simples Exemplo 2. Verificar se um determinado ano, fornecido pelo usuário, é bissexto. Um ano é bissexto se for divisível por 400 ou se for divisível por 4 e não for divisível por 100. Exemplos: 1988, 1992, 1996, 2000. Repare que 1900 não é bissexto. Algoritmo <bissexto> inteiro: ano Início leia (ano) se (mod(ano,400)=0 ou (mod(ano,4)=0 e mod(ano,100)<>0) então escreva (“O ano”, ano,”é bissexto”) fim se Fim Estrutura Condicional Simples Exemplo 3. Leia a idade e o tempo de serviço de um trabalhador e escreva se ele pode ou não se aposentar. As condições para aposentadoria são: • Ter pelo menos 65 anos de idade. • Ou ter trabalhado pelo menos 30 anos. • Ou ter pelo menos 60 anos e ter trabalhado pelo menos 25 anos. Algoritmo <aposentadoria> inteiro: idade, tempo Início leia (idade, tempo) se (idade>=65 ou tempo<=30 ou (idade<=60 e tempo<=25)) escreva (“Pode se aposentar”) fim se Fim Estrutura Condicional Composta Exemplo 4. Faça um programa que leia um número inteiro e verique se o mesmo é par ou ímpar.. Algoritmo <par> inteiro: num Início Leia (num) Se (mod(num,2)=0) então escreva (“O número”, num,”é par”) senão escreva (“O número”, num,”é ímpar”) fim se Fim Estrutura Condicional Composta Exemplo 5. Faça um programa em que o usuário digite uma senha numérica, e o algoritmo deverá reconhecer se a senha é verdadeira ou falsa, de acordo com um valor estabelecido previamente no algoritmo. Algoritmo <senha> inteiro: senha SENHA_VERDADEIRA=12345 Início Leia (senha) Se (senha=SENHA_VERDADEIRA) então escreva (“Senha verdadeira”) senão escreva (“Senha falsa”) fim se Estrutura Condicional Aninhada Exemplo 6: Faça um algoritmo que leia três valores inteiros, determine e imprima o menor deles (suponha números diferentes) Algoritmo <menor> escreva (menor) Fim inteiro: a,b,c,menor Inicio leia (a,b,c) se (a<b e a<c) então menor ←a senão se (b<c) então menor ← b senão menor ← c fim se Estrutura Condicional Aninhada Exemplo 6: (outra solução) Algoritmo <menor> inteiro: a,b,c,menor Inicio leia (a,b,c) se (a<b) então menor ←a senão menor←b se (c<menor) então menor ← c fim se escreva (menor) Fim Estrutura Condicional Aninhada Exemplo 7 O Botafogo Futebol Clube deseja aumentar o salário de seus jogadores. O reajuste deve obedecer a seguinte tabela: Salário atual Aumento < =1000 20% >1000 e <=5000 10% >5000 0% Escreva um algoritmo que leia o nome e o salário atual de um jogador, e exiba o nome, o salário atual e o salário reajustado. Estrutura Condicional Aninhada Exemplo 8. Dados três valores distintos, faça um algoritmo que os coloque em ordem crescente (suponha números diferentes) Estrutura Condicional A. Algoritmo <crescente> Real: a, b, c,aux Inicio leia (a,b,c) se (a>b ou a>c) então se (b<c) então aux ←a a ←b b ←aux senão aux ←a a ←c c ←aux fim se fim se se (b>c) então aux ←b b ←c c ←aux fim se escreva (a,b,c) Estrutura Condicional Aninhada Exemplo 8 (outra solução) Estrutura Condicional A. Algoritmo <crescente> Real: a, b, c,aux Inicio leia (a,b,c) se (a>b ) então aux ←a a ←b b ←aux fim se se (a>c) então aux ←a a ←c c ←aux fim se se b>c então aux ←b b ←c c ←aux fim se escreva (a,b,c) Fim Estrutura Condicional Aninhada Exemplo 9 Dados três valores x,y e z, verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não formarem um triângulo, escrever uma mensagem. Revisão: O comprimento de cada lado de um triângulo é menor do que a soma dos comprimentos dos outros dois lados Chama-se de triângulo equilátero ao triângulo que tem os comprimentos dos três lados iguais. Chama-se triângulo isósceles ao triângulo que tem os comprimentos de dois lados iguais. Chama-se triângulo escaleno ao triângulo que tem os comprimentos de três lados diferentes. Estrutura Condicional Aninhada Algoritmo <triangulos> Real: x,y,z Inicio leia (x,y,z) se x<y+z e y<x+z e z<x+y então se x=y e x=z então escreva (“triângulo equilátero”) senão se x=y ou x=z ou y=z então escreva (“triângulo isosceles”) senão escreva (“triângulo escaleno”) fim se fim se senão escreva (“não existe triângulo”) fim se Fim Estrutura Condicional – Exercícios Exercício 10. Um número n no intervalo de 100 a 999 é chamado número de Angstron se n obedece a seguinte regra: n = centenas3 + dezenas3 + unidades3 Exemplo: 153 = 13 + 53 + 33 Escreva um programa que leia um número inteiro no intervalo [100;999] e verique se é um número de Angstron.