Estruturas de Decisão e Estruturas de Repetição Profa. Lara Popov Zambiasi Bazzi Oberderfer [email protected] http://professores.chapeco.ifsc.edu.br/lara/ Processos de Seleção ou Estruturas de Decisão Se... Então Se... Então... Senão Caso... Selecione 2 Estrutura de Decisão São decisões lógicas tomadas um função dos dados ou resultados anteriores. 3 Se... Então / If... Then A estrutura de seleção SE, é usada para tomar decisões, ou seja, desviar a execução do algoritmo de acordo com uma determinada condição. 4 Se... Então Representação em Pseudocódigo Se <condição> Então <comandos> Fim_se 5 Algoritmo em Fluxograma Faça um algoritmo que leia um valor inteiro, referente à idade de uma pessoa, e imprima uma mensagem informando que ela pode votar somente se tiver 16 anos ou mais. 6 Algoritmo em Pseudocódigo Algoritmo “Verifica Idade - 1” Var idade : inteiro Início Escreva “Informe a sua idade: “ Leia idade Se idade >= 16 Então Escreva “Você pode votar!” Fim_se Fim 7 Se... Então... Senão If... Then... Else Podemos fazer, além do desvio para quando a condição for verdadeira, também um desvio condicional quando a expressão analisada resultar no valor lógico falso. 8 Se... Então... Senão If... Then... Else Podemos fazer, além do desvio para quando a condição for verdadeira, também um desvio condicional quando a expressão analisada resultar no valor lógico falso. 9 Se... Então... Senão Representação em Pseudocódigo Se <condição> Então <comandos quando a condição for verdadeira> Senão <comandos quando a condição for falsa> Fim_se 10 Algoritmo em Fluxograma Faça um algoritmo que leia um valor inteiro, referente à idade de uma pessoa, e imprima uma mensagem informando que ela pode votar somente se tiver 16 anos ou mais, caso contrário informe que ela não pode votar. 11 Se... Então... Senão Representação em Pseudocódigo Se <condição> Então <comandos quando a condição for verdadeira> Senão <comandos quando a condição for falsa> Fim_se 12 Algoritmo em Pseudocódigo Algoritmo “Verifica Idade - 2” Var idade : inteiro Início Escreva “Informe a sua idade: “ Leia idade Se idade >= 16 Então Escreva “Você pode votar!” Senão Escreva “Você não pode votar!” Fim_se Fim 13 Selecione... Caso – Switch... Case A estrutura de decisão Selecione-Caso é utilizada para testar, na condição, uma única expressão, que produz um resultado, ou, então, o valor de uma variável, em que está armazenado um determinado conteúdo. Compara-se o resultado obtido no teste com os valores fornecidos em cada cláusula “Caso”. 14 Selecione... Caso Definição em Pseudocódigo: Selecione <expressão> Caso <valor1> Faça <comando> Caso <valor2> Faça <comando> Caso <valor3> Faça <comando> Senão <comando> Fim_selecione 15 Algoritmo em Pseudocódigo Algoritmo “Verificar dia da semana” Var dia : inteiro Início Escreva “Informe o dia da semana (1 a 7): “ Leia dia Selecione dia Caso 1 Faça Escreva “Domingo” Caso 2 Faça Escreva “Segunda-feira” Caso 3 Faça Escreva “Terça-feira” Caso 4 Faça Escreva “Quarta-feira” Caso 5 Faça Escreva “Quinta-feira” Caso 6 Faça Escreva “Sexta-feira” Caso 7 Faça Escreva “Sábado” Senão Escreva “Dia inválido!” Fim_selecione Fim 16 Algoritmo em Fluxograma convencional 17 Selecione... Caso – Exemplo 2 18 Exercícios 1) João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de São Paulo (50 quilos) deve pagar um multa de R$ 4,00 por quilo excedente. João precisa que você faça um diagrama de blocos que leia a variável P (peso de peixes) e verifique se há excesso. Se houver, gravar na variável E (Excesso) e na variável M o valor da multa que João deverá pagar. Caso contrário mostrar tais variáveis com o conteúdo ZERO. 19 Exercícios 2) Elabore um algoritmo que leia as variáveis C e N, respectivamente código e número de horas trabalhadas de um operário. E calcule o salário sabendo-se que ele ganha R$ 10,00 por hora. Quando o número de horas exceder a 50 calcule o excesso de pagamento armazenando-o na variável E, caso contrário zerar tal variável. A hora excedente de trabalho vale R$ 20,00. No final do processamento imprimir o salário total e o salário excedente. 20 Exercícios 3) – – – – Desenvolva um algoritmo que: Leia 4 (quatro) números; Calcule o quadrado de cada um; Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize; Caso contrário, imprima os valores lidos e seus respectivos quadrados. 21 Exercícios 4) Faça um algoritmo que leia um número inteiro e mostre uma mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo. 22 Exercícios 5) A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3 grupos de indústrias que são altamente poluentes do meio ambiente. O índice de 3poluiçã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 crescer para 0,4 as industrias do 1º e 2º grupo são intimadas a suspenderem suas atividades, se o índice atingir 0,5 todos os grupos devem ser notificados a paralisarem suas atividades. Faça um algoritmo que leia o índice de poluição medido e emita a notificação adequada aos diferentes grupos de empresas. 23 Exercícios 1) João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de São Paulo (50 quilos) deve pagar um multa de R$ 4,00 por quilo excedente. João precisa que você faça um diagrama de blocos que leia a variável P (peso de peixes) e verifique se há excesso. Se houver, gravar na variável E (Excesso) e na variável M o valor da multa que João deverá pagar. Caso contrário mostrar tais variáveis com o conteúdo ZERO. 24 Exercícios 6) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das seguintes categorias: – – – – – Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos 25 Estruturas de Repetição Utilizamos os comandos de repetição quando desejamos que um determinado conjunto de instruções ou comandos sejam executados um número definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou até que seja alcançado. 26 Estruturas de Repetição As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops. A classificação das estruturas de repetição é feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado. Assim, os laços dividem-se em: – – Laços contados; Laços condicionais. 27 Estruturas de Repetição Utilizamos os comandos de repetição quando desejamos que um determinado conjunto de instruções ou comandos sejam executados um número definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou até que seja alcançado. 28 Estruturas de Repetição Laços Contados: quando se conhece previamente quantas vezes o comando composto no interior da construção será executado. Pseudocódigo Para <var> de <início> até <final> incr de <inc> faça <comando_composto> Fim_para 29 Estrutura de Repetição 30 Estruturas de Repetição 31 Estruturas de Repetição 32 Estruturas de Repetição 33 Estruturas de Repetição 34 Estruturas de Repetição As estruturas de controle do fluxo de execução são essenciais para que se possa alterar a seqüência de execução dos comandos de um programa em função dos dados do mesmo. As estruturas de decisão permitem escolher qual o caminho a ser seguido num algoritmo em função de uma ou mais condições. A construção Se utiliza apenas uma condição, ao passo que a construção Escolha utiliza uma ou mais condições. As estruturas de repetição são usadas quando se deseja repetir um trecho de um algoritmo (comando composto). Quando o número de vezes que o trecho será repetido é conhecido diz-se que o laço é do tipo contado (construção Para). Quando este número não é conhecido, mas é função de uma determinada condição, então têm-se os laços condicionais (construção Enquanto e Repita). As construções Repita e Enquanto diferem uma da outra pelo fato de a primeira efetuar o teste da condição no final da construção e, portanto, executar o comando composto ao menos uma vez. Por outro lado, a construção Enquanto efetua o teste da condição em seu início e executa o comando composto zero ou mais vezes. 35 Exercícios 1) Faça um algoritmo que determine o maior entre N números. A condição de parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior até que a entrada seja igual a 0 (ZERO). 2) Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer preço. O monge, necessitando de alimentos , indagou à rainha sobre o pagamento, se poderia ser feito com grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um grão e os quadros subseqüentes , o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que o serviço fosse executado, sem se dar conta de que seria impossível efetuar o pagamento. Faça um algoritmo para calcular o número de grãos que o monge esperava receber. 3) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10 emita uma mensagem: “Múltiplo de 10”. 36