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) Exemplos de Estrutura Condicional Simples Exemplo 1. A equação de um determinado círculo é x2+y2=1. Escreva um algoritmo que, dado um ponto P, verifique se P é um ponto interior à região do plano delimitada pelo círculo. Algoritmo <circulo> inteiro: x,y Início leia (x,y) se ((x**2 + y**2)<1) então escreva (“O ponto é interior à região delimitada pelo círculo”) fim se Fim Exemplos de Estrutura Condicional Simples Exemplo 2. A equação de um determinado círculo de raio R é x2+y2=R2. Escreva um algoritmo que, dado um ponto P, verifique se P é um ponto interior à região do plano delimitada pelo círculo. Algoritmo <circulo> inteiro: x,y,R Início leia (x,y,R) se ((x**2 + y**2)<R**2) então escreva (“O ponto é interior à região delimitada pelo círculo”) fim se Fim Estrutura Condicional Simples Exemplo 3. 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 1. 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 1: Faça um algoritmo que leia três valores inteiros, determine e imprima o menor deles. Algoritmo <menor> inteiro: num1,num2,num3,menor Inicio leia (num1,num2,num3) se num1<num2 e num1<num3 então menor ←num1 senão se num2<num3 então menor ← num2 senão menor ← num3 Estrutura Condicional Aninhada Exemplo 2 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 Aninhada Exemplo 3 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 4. Dados três valores distintos, faça um algoritmo que os coloque em ordem crescente. 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