Algoritmos (condicionais) André Tavares da Silva [email protected] Problema Dados dois valores inteiros, exiba se são múltiplos e qual deles é o maior. Condicional • Na vida real tomamos decisões a todo o momento baseadas em uma situação existente. Por exemplo: se minha idade for maior de 16 anos eu posso votar. • Na nossa linguagem algorítmica, a sintaxe para definir uma ação condicional é a seguinte: se <condição> entao <ações (uma ou mais) a serem realizadas se a condição for verdadeira> fimse se-entao • Traduzindo a situação anterior na linguagem algoritmica: escreva(“Informe sua idade”) leia (idade) se idade > 16 entao escreva (“apto a votar”) fimse se-entao-senao • O exemplo anterior nos dá uma resposta exata se o usuário está apto a votar mas não dá nenhum retorno no caso do usuário informar ter menos de 16 anos. • Como resolver este problema? se-entao-senao • Para essas situações é utilizado o comando senão, como mostrado abaixo. se <condição> entao <ações (uma ou mais) a serem realizadas se a condição for VERDADEIRA> senao <ações (uma ou mais) a serem realizadas se a condição for FALSA> fimse se-entao-senao • Traduzindo a situação anterior na linguagem algoritmica: escreva(“Informe sua idade”) leia (idade) se idade > 16 entao escreva (“apto a votar”) senao escreva (“não apto a votar”) fimse Condição • Como vimos anteriormente, é possível compor expressões lógicas utilizando operadores relacionais. Além deles, também é possível compor expressões lógicas utilizando os operadores lógicos e (conjunção), ou (disjunção) e não (negação). Desta forma, a expressão lógica que será avaliada na estrutura de condição se-entao pode ser formada por uma expressão lógica composta. Problema Dados dois valores inteiros, exiba se são múltiplos e qual deles é o maior. Solução escreva(“Entre com dois valores inteiros:”) leia (a) leia (b) se a%b = 0 entao escreval (“números são múltiplos”) senao escreval (“números NÃO são múltiplos”) fimse se a>b entao escreval (“maior: ”, a) senao escreval (“maior: ”, b) fimse Escolha-caso • Em algumas situações é necessário termos várias soluções ligadas a respostas diferentes. Para isto, existe o comando de alternativa de múltipla escolha (Escolha...Caso): escolha < expressão-de-seleção > caso < exp 1 > , < exp 2 >, ... , < exp n > < lista-de-comandos-1 > caso < exp 1 > , < exp 2 >, ... , < exp n > < lista-de-comandos-2 > outrocaso < lista-de-comandos-3 > fimescolha Escolha-caso (exemplo) • Construa um programa que solicite o nome e a idade de um atleta e imprima a sua categoria. • Idade e categoria: – De 05 a 10 - Infantil – De 11 a 15 - Juvenil – De 16 a 20 - Junior – De 21 a 25 - Profissional Escolha-caso (exemplo) Escreva("Nome do Atleta = ") Leia (nome) Escreva("Idade do Atleta = ") Leia (idade) Escolha idade caso 5,6,7,8,9,10 categoria <- "Infantil" caso 11,12,13,14,15 categoria <- "Juvenil" caso 16,17,18,19,20 categoria <- "Junior" caso 21,22,23,24,25 categoria <- "Profissional" outrocaso categoria <- "INVALIDO" Fimescolha Escreva ("Categoria = ",categoria) Exercícios • Ler dois números quaisquer e dividir o primeiro pelo segundo (evitando divisão por zero). • Ler dois números inteiros e exibir o maior deles. • Ler um número inteiro e imprimir se ele é par ou ímpar. • Ler três números inteiros e exibir o maior deles. Exercícios Fazer um algoritmo que leia 3 notas de um aluno (tipo float) e imprima a mensagem de aluno aprovado ou reprovado conforme o seguinte critério: se a média final do aluno (média aritmética simples) for maior ou igual a 6 (seis) e nenhuma das notas for inferior a 5 (cinco), o aluno foi aprovado, caso contrário o aluno foi reprovado. Use operadores lógicos (E, OU,...) para diminuir o número de comandos SE-ENTAO utilizados.