aula 3 - v. 2 - cida livi algoritmos com seleção comando: if …then…else

26
Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Algoritmos com seleção

Comando:

IF …THEN…ELSE

Page 2: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Algoritmo com seleção

Algoritmo em que a execução de

determinados passos está subordinada a

uma condição.

Page 3: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Exemplo de algoritmo com seleção:

Problema: Localização de Ponto no Plano

Dados um par de valores X, Y, que representam as coordenadas de um ponto no plano, determinar a localização do ponto, se em um quadrante, um dos eixos ou na origem.

Page 4: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Quadrante 1Quadrante 2

Quadrante 4Quadrante 3

Eixo dos Xs

Eixo dos Ys

Origem

Page 5: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Localização de Ponto no Plano

Saída: mensagem adequada

Entradas: coordenadas X e Y de um ponto

Processamento: série de testes, verificando em qual caso o par de valores encaixa-se

Page 6: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Passos doAlgoritmo

• Leitura dos valores de X e Y

• Determinação de em que quadrante, eixo ou se na origem, o ponto encontra-se.

• Escrita da mensagem onde é indicada a

localização do ponto.

Page 7: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Condição

Expressão lógica: expressão cujo resultado

é um valor lógico (verdadeiro ou falso).

Page 8: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Escrita do algoritmo em linguagem algorítmica

Início Localizacao

Ler X , Y

Se X = 0 e Y = 0 então escrever “Ponto na origem”

Se X > 0 e Y > 0 então

escrever “Quadrante 1”

etc…

Fim Localizacao

Page 9: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Diagrama de Chapin:

Desvio Condicional

Se B então S1 senão S2 Sim Não

B

S1 S2

Page 10: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Ler X e YX = 0 e Y = 0

X = 0 e Y <> 0

X < 0 e Y < 0

(…)

Escrever ´Ponto na origem´

Escrever ´Ponto no eixo Y´

Escrever ´Ponto no Quadrante 4´

Sim

Sim

Sim

Não

Não

Não

Page 11: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Fluxograma

Desvio Condicional

Sim

Não

BS1

S2

Page 12: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

(…)

Início

Ler X, Y

X = 0e Y = 0

Escrever`Origem`

Escrever´Ponto eixo Y´

X = 0 e Y <> 0

Fim

Sim

Sim

Não

Não

Page 13: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Instruções

• Readln

• Write/writeln

• atribuição --> :=

Page 14: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Comando de Seleção: IF … THEN … ELSE

IF condição THEN

comando comandoELSE

Page 15: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

IF só com o ramo do then:IF NotaFinal > 9 then writeln(NomeAluno:30, ´ * ´);IF NotaFinal <= 6 then writeln(NomeAluno:30, ´ Recup ´);

Se condição for verdadeira,

o comando após o THEN será executado.

Se a condição for falsa, nada será feito, e o

próximo comando, em seqüência, será

executado.

Page 16: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

program Quadrantes; {Dadas as coordenadas X e Y de um ponto no plano, determina sua

localizacao }var CoordenadaX, CoordenadaY : real;begin write ('Forneca valores de X e Y: '); readln (CoordenadaX , CoordenadaY); if (CoordenadaX = 0) and (CoordenadaY = 0) then writeln('Ponto na origem'); if (CoordenadaX > 0) and (CoordenadaY > 0) then writeln ('Ponto no Quadrante 1'); { etc... } readlnend.

Page 17: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

if Saldo > 0 then

writeln (´Saldo positivo´) else

if Saldo = 0 then

writeln(´Saldo zerado´) else

writeln (´Atencao : Saldo negativo´);

Se condição for verdadeira, o comando após o THEN será executado.

Se a condição for falsa, o comando após o ELSE será executado.

IF com os ramos do then e else:

Page 18: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Ifs aninhados

• Nos ramos do THEN e ELSE, comando pode inclusive ser um IF.

• Nesse caso ocorre um aninhamento de Ifs.

Page 19: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

program Quadrantes2;

{Dadas as coordenadas X e Y de um ponto no plano, determina sua

localizacao }

uses CRT;

var

CoordenadaX, CoordenadaY : real;

begin

clrscr;

write ('Forneca valores de X e Y: ');

readln (CoordenadaX , CoordenadaY);

if (CoordenadaX = 0) and (CoordenadaY = 0)

then

writeln('Ponto na origem')

else

if (CoordenadaX > 0) and (CoordenadaY > 0)

then

writeln ('Ponto no Quadrante 1')

else

{supor ifs para os quadrantes 2, 3 e 4, bem como

para o eixo dos ys}

else

writeln ('Ponto no Eixo dos Xs');

repeat until keypressed

end.

Page 20: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Aninhamento de Ifs, vantagens e desvantagens

Vantagens:

• uma vez um caso atendido, ele não é mais considerado.

Desvantagens:

• alinhamento pode ser prejudicado;

• lógica pode ficar mais dificil de ser acompanhada

Page 21: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Aninhamento de Ifs: recomendações

• Usar com extremo cuidado;

• Regra geral evitar aninhamentos de nível superior a 3 ou 4;

• Verificar se não há outra possibilidade (comando CASE, por exemplo) que garanta maior legibilidade de código sem prejuízo da correção da lógica.

Page 22: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

AtençãoNo IF comando

pode ser simples ou composto.

Comando composto:

dois ou mais comandos (inclusive compostos*) delimitados por begin end

*logo begins ends também podem ser aninhados!

Page 23: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

comandoBEGIN END

;

Comando Composto:

Page 24: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

Exemplo de if com comando composto no then:

If Moeda = 1 {Dolar}

then

begin ValorConvert := Valor / CotacaoDolar;

Writeln (´R$ ´ , Valor , ´ = ´, ValorConvert)

end;

Page 25: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

13 [Algoritmos - A. I. Orth] O departamento quecontrola o índice de poluição do meio ambientefiscaliza 3 grupos de indústrias que são altamentepoluidoras do meio ambiente. O índice de poluiçãoaceitável varia de 0.05 até 0.25. Se o índice sobe para0.3 as indústrias do 1º grupo são intimadas asuspenderem suas atividades; se o índice sobe para 0.4,as do 1º e do 2º grupos são intimadas a suspenderemsuas atividades; e se o índice sobe para 0.5, todos ostrês grupos devem ser notificados a paralisarem suasatividades. Escreva um programa que lê o índice depoluição medido e emite a notificação adequada aosdiferentes grupos de empresas.

Page 26: Aula 3 - V. 2 - Cida Livi Algoritmos com seleção Comando: IF …THEN…ELSE

Aula 3 - V. 2 - Cida Livi

14 [Algoritmos - A. I. Orth] Escrever umprograma que lê as horas de início e de término deum jogo. O programa deve calcular e escrever aduração total do jogo, considerando que o tempomáximo do jogo é de 24 horas e que o jogo podeiniciar em um dia e terminar no dia seguinte.