Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

23
Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez

Transcript of Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Page 1: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Algoritmos e Estruturas de Dados I – Estrutura Condicional

Profa. Mercedes Gonzales Márquez

Page 2: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Algoritmo

Formato, adoptado pela disciplina, de um algoritmo sem módulos

Algoritmo <nome>declarações de variáveis e constantesInicio

comandosFim

Page 3: 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 Simples2.Estrutura Condicional Composta

Page 4: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional1. 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,cInicio

leia (a,b,c)se (a+b)<c então escreva (“ok”)

fim seFim

Page 5: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional2.2. Estrutura Condicional Composta Estrutura Condicional Composta Formato :Formato : SeSe condição condição entãoentão

seqüência A de comandosseqüência A de comandos senãosenão

seqüência B de comandosseqüência B de comandos Fim seFim seNeste caso, a seqüência A de comandos só será executada se a condição for 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 verdadeira e a seqüência B de comandos só será executada se a condição for falsa.falsa.

Page 6: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional

Exemplo 1:Exemplo 1:Algoritmo <exemplo1>Algoritmo <exemplo1>inteiro: a,b,cinteiro: a,b,cInicioInicio leia (a,b)leia (a,b) se (a+b)=6 entãose (a+b)=6 então c ←1000c ←1000 senãosenão c ←2500c ←2500 fim sefim se escreva (c)escreva (c)FimFim

Page 7: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura CondicionalExemplo2: 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,mediaInicio

leia (nota1,nota2,nota3)media ←(nota1+nota2+nota3)/3se media>=7 então

escreva (“Aprovado”)senão

escreva (“Reprovado”)fim se

Fim

Page 8: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura CondicionalDesvio 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ãoseqüência B de comandos

senão seqüência C de comandos

fim se fim se

Page 9: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

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/altura 2) através da tabela abaixo

Indice Massa corpórea

Grau de obesidade

<26 Normal

>=26 e <30 Obeso

>=30 Obeso mórbido

Page 10: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura CondicionalAlgoritmo<grauobesidade>Algoritmo<grauobesidade>real : peso,altura,indicemassareal : peso,altura,indicemassaliteral:grauobesidadeliteral:grauobesidadeInicioInicio

leia (peso,altura)leia (peso,altura)indicemassa←peso/altura**2indicemassa←peso/altura**2sese indicemassa<26 indicemassa<26 entãoentão

grauobesidade ←”normal”grauobesidade ←”normal” senãosenão

se se indicemassa<30 indicemassa<30 entãoentãograuobesidade ←”obeso”grauobesidade ←”obeso”

senão senão grauobesidade ←”obeso morbido”grauobesidade ←”obeso morbido”

fim sefim sefim sefim seescreva (grauobesidade)escreva (grauobesidade)

FimFim

Page 11: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Exemplos de Estrutura Condicional SimplesExemplo 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>Algoritmo <circulo>inteiro: x,yinteiro: x,yInícioInícioleia (x,y)leia (x,y)se ((x**2 + y**2)<1) então se ((x**2 + y**2)<1) então

escreva (“O ponto é interior à região delimitada pelo escreva (“O ponto é interior à região delimitada pelo círculo”) círculo”)

fim sefim seFimFim

Page 12: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Exemplos de Estrutura Condicional SimplesExemplo 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>Algoritmo <circulo>inteiro: x,y,Rinteiro: x,y,RInícioInícioleia (x,y,R)leia (x,y,R)se ((x**2 + y**2)<R**2) então se ((x**2 + y**2)<R**2) então

escreva (“O ponto é interior à região delimitada pelo escreva (“O ponto é interior à região delimitada pelo círculo”) círculo”)

fim sefim seFimFim

Page 13: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional Simples

Algoritmo <trecho>Início.

D ←0se A<=B e C>=B entãoD ←5fim se

FimEm 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

Exemplo 3. Após a execução do seguinte trecho de um algoritmo

Page 14: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional CompostaAlgoritmo <trecho>Início.

se A2<=B3 entãoTESTE ←verdadeirosenãoTESTE←falsofim seC ←TESTE

FimEm C estará armazenado o valor falso se, originalmente:A2<B3A2<=B3A2>=B3A2>B3A2=B3

Exemplo 1. Após a execução do seguinte trecho de um algoritmo

Page 15: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional AninhadaExemplo 1: Faça um algoritmo que leia três valores inteiros, determine e imprima o menor deles. Algoritmo <menor>Algoritmo <menor>inteiro: num1,num2,num3,menorinteiro: num1,num2,num3,menorInicioInicioleia (num1,num2,num3)leia (num1,num2,num3)se num1<num2 e num1<num3 entãose num1<num2 e num1<num3 então

menor ←num1menor ←num1senãosenão

se num2<num3 entãose num2<num3 entãomenor ← num2menor ← num2

senãosenãomenor ← num3menor ← num3

fim sefim sefim sefim seescreva (menor)escreva (menor)FimFim

Page 16: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional AninhadaExemplo 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 ladosChama-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.

Page 17: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional AninhadaAlgoritmo <triangulos>Real: x,y,zInicio

leia (x,y,z)se x<y+z e y<x+z e z<x+y entãose x=y e x=z entãoescreva (“triângulo equilátero”)senão se x=y ou x=z ou y=z entãoescreva (“triângulo isosceles”)senão escreva (“triângulo escaleno”)fim sefim sesenãoescreva (“não existe triângulo”)fim se

Fim

Page 18: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional AninhadaExemplo 3 O Botafogo Futebol Clube deseja aumentar o salário de seus jogadores. O reajuste deve obedecer a seguinte tabela:

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.

Salário atual Aumento

< =1000 20%

>1000 e <=5000 10%

>5000 0%

Page 19: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional Aninhada

Algoritmo <semrefin-crescente>1. leitura dos números2. Armazenar em a o menor valor3. Armazenar em b o valor intermediário e em c o maior valor4. Escrever o resultado

Exemplo 4. Dados três valores distintos, faça um algoritmo que os coloque em ordem crescente.

Page 20: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

1. Leitura dos numerosleia (a,b,c)

2. Armazenar em a o menor númerose a>b ou a>c então

se b<c entãotroque a com b

senão troque a com c

fim sefim se

Estrutura Condicional Aninhada

Page 21: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

2.1. troque a com b aux ←a

a ←bb ←aux

2.2. troque a com c aux ←a

a ←cc ←aux

Estrutura Condicional Aninhada

Page 22: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

3. Armazenar em b o valor intermediário e em c o maior valor

se b>c entãoaux ←bb ←cc ←aux

fim se

4. Escrever o resultadoescreva (a,b,c)

Estrutura Condicional Aninhada

Page 23: Algoritmos e Estruturas de Dados I – Estrutura Condicional Profa. Mercedes Gonzales Márquez.

Estrutura Condicional A.Algoritmo <crescente>Real: a, b, c,auxInicio

leia (a,b,c)se a>b ou a>c então se b<c entãoaux ←a a ←bb ←aux senão aux ←a a ←c c ←aux fim sefim sese b>c entãoaux ←bb ←cc ←auxfim seescreva (a,b,c)

Fim

Juntando os refinamentos temos o algoritmo completo