Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez Algoritmo Formato, adotado pela disciplina, de um algoritmo sem módulos Algoritmo <nome> declarações de variáveis e constantes Inicio comandos Fim 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 Composta Exemplo 2. Após a execução do seguinte trecho de um algoritmo Algoritmo <trecho> Início . se A2<=B3 então TESTE ←verdadeiro senão TESTE←falso fim se C ←TESTE Fim Em C estará armazenado o valor falso se, originalmente: A2<B3 A2<=B3 A2>=B3 A2>B3 A2=B3 Estrutura Condicional Aninhada Exemplo 3: 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 3: (outra solução) Algoritmo <menor> inteiro: a,b,c,menor Inicio leia (a,b,c) se (a<b) então se (a<c) então menor ←a senão menor←c senão se (b<c) então menor ← b senão menor ← c fim se fim se escreva (menor) Fim Estrutura Condicional Aninhada Exemplo 3: (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 4 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 5. 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 5 (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 5 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 • • • Tarefas: Estude os exercícios resolvidos de estrutura condicional do livro Introdução à Programação 500 Algoritmos Resolvidos de Anita Lopes. Estude a lista de exercícios resolvidos de estrutura condicional que se encontrará no site da disciplina a partir do dia 17/4/2013. A lista de exercícios propostos de estrutura condicional também estará disponível no site da disciplina no dia 17/4/2013.