aula 3 - v. 2 - cida livi algoritmos com seleção comando: if …then…else
TRANSCRIPT
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.
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.
Aula 3 - V. 2 - Cida Livi
Quadrante 1Quadrante 2
Quadrante 4Quadrante 3
Eixo dos Xs
Eixo dos Ys
Origem
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
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.
Aula 3 - V. 2 - Cida Livi
Condição
Expressão lógica: expressão cujo resultado
é um valor lógico (verdadeiro ou falso).
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
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
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
Aula 3 - V. 2 - Cida Livi
Fluxograma
Desvio Condicional
Sim
Não
BS1
S2
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
Aula 3 - V. 2 - Cida Livi
Instruções
• Readln
• Write/writeln
• atribuição --> :=
Aula 3 - V. 2 - Cida Livi
Comando de Seleção: IF … THEN … ELSE
IF condição THEN
comando comandoELSE
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.
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.
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:
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.
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.
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
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.
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!
Aula 3 - V. 2 - Cida Livi
comandoBEGIN END
;
Comando Composto:
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;
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.
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.