Baixe o app para aproveitar ainda mais
Prévia do material em texto
* * * Algoritmos com seleção Comando: IF …THEN…ELSE * * * Algoritmo com seleção Algoritmo em que a execução de determinados passos está subordinada a uma condição. * * * 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. * * * Quadrante 1 Quadrante 2 Quadrante 4 Quadrante 3 Eixo dos Xs Eixo dos Ys Origem * * * 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 * * * 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. * * * Condição Expressão lógica: expressão cujo resultado é um valor lógico (verdadeiro ou falso). * * * 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 * * * Diagrama de Chapin: Desvio Condicional Se B então S1 senão S2 Sim Não B S1 S2 * * * Ler X e Y X = 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 * * * Fluxograma Desvio Condicional Sim Não B S1 S2 * * * (…) Início Ler X, Y X = 0 e Y = 0 Escrever `Origem` Escrever ´Ponto eixo Y´ X = 0 e Y <> 0 Fim Sim Sim Não Não * * * Instruções Readln Write/writeln atribuição --> := * * * Comando de Seleção: IF … THEN … ELSE IF condição THEN comando comando ELSE * * * 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. * * * 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... } readln end. * * * 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: * * * Ifs aninhados Nos ramos do THEN e ELSE, comando pode inclusive ser um IF. Nesse caso ocorre um aninhamento de Ifs. * * * 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. * * * 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 * * * 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. * * * Atenção No 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! * * * comando BEGIN END ; Comando Composto: * * * Exemplo de if com comando composto no then: If Moeda = 1 {Dolar} then begin ValorConvert := Valor / CotacaoDolar; Writeln (´R$ ´ , Valor , ´ = ´, ValorConvert) end; * * * 13 [Algoritmos - A. I. Orth] O departamento que controla o índice de poluição do meio ambiente fiscaliza 3 grupos de indústrias que são altamente poluidoras do meio ambiente. O índice de poluição aceitável varia de 0.05 até 0.25. Se o índice sobe para 0.3 as indústrias do 1º grupo são intimadas a suspenderem suas atividades; se o índice sobe para 0.4, as do 1º e do 2º grupos são intimadas a suspenderem suas atividades; e se o índice sobe para 0.5, todos os três grupos devem ser notificados a paralisarem suas atividades. Escreva um programa que lê o índice de poluição medido e emite a notificação adequada aos diferentes grupos de empresas. * * * 14 [Algoritmos - A. I. Orth] Escrever um programa que lê as horas de início e de término de um jogo. O programa deve calcular e escrever a duração total do jogo, considerando que o tempo máximo do jogo é de 24 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte.
Compartilhar