Algoritmo e Estrutura de Dados I Aula 7 – Estrutura de repetição Márcia Marra [email protected] Estrutura de repetição • Permite que uma sequência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita. • Condição de interrupção é representada por uma expressão lógica. – Interrupção de início – Interrupção no interior – Interrupção de fim 2 Estrutura de repetição com interrupção no início repita se condição então interrompa fim se fim repita 3 Exemplo com interrupção no início soma de números pares Algoritmo declare PAR, SOMA numérico SOMA ← 0 PAR ← 100 repita se PAR > 200 então interrompa fim se SOMA ← SOMA + PAR PAR ← PAR + 2 fim repita escreva SOMA fim algoritmo 4 Estrutura de repetição com interrupção no interior repita sequência A de comandos se condição então interrompa fim se Fim repita 5 Exemplo com interrupção no interior Algoritmo declare PAR, SOMA numérico SOMA ← 0 PAR ← 98 repita PAR ← PAR + 2 se PAR > 200 então interrompa fim se SOMA ← SOMA + PAR fim repita escreva SOMA fim algoritmo 6 Estrutura de repetição com interrupção no fim repita sequência A de comandos se condição então interrompa fim se fim repita 7 Exemplo com interrupção no fim Algoritmo declare PAR, SOMA numérico SOMA ← 0 PAR ← 100 repita SOMA ← SOMA + PAR PAR ← PAR + 2 se PAR > 200 então interrompa fim se fim repita escreva SOMA fim algoritmo 8 Algoritmo 1 • Uma pessoa aplicou seu capital a juros e deseja saber, trimestralmente, a posição de seu investimento C inicial. Sendo i a taxa de juros do trimestre, escrever uma tabela que apresente para cada trimestre o rendimento auferido e o saldo acumulado durante um período de X anos, supondo que nenhuma retirada tenha sido feita. 9 Algoritmo 1 • Algumas observações: – Os valores C, I, X estão disponíveis em uma unidade de entrada; – A fórmula para capitalização composta é: Mn = C (1 + i)n Onde: Mn C: i: n: montante após terem decorrido n meses. capital inicial investido taxa de juros número de períodos decorridos (trimestres) 10 Algoritmo 1 Algoritmo Defina o tipo das variáveis leia CAPITAL, TAXA, NUMEROANOS Atribua os valores iniciais necessários repita Calcule rendimento trimestral Calcule montante trimestral Escreva rendimento e montante trimestrais se TRIMESTRE = N então interrompa fim se Modifique valor de TRIMESTRE fim repita fim algoritmo 11 Refinamentos sucessivos do algoritmo 1 Ref. Modifique valor de TRIMESTRE TRIMESTRE ← TRIMESTRE + 1 fim ref. Ref. Atribua valores iniciais necessários MONTANTE ← CAPITAL TRIMESTRE ← 1 N ← 4 x NUMEROANOS fim ref. Ref. Defina tipos das variáveis declare CAPITAL, MONTANTE, N, RENDIMENTO, TAXA, TRIMESTRE, NUMEROANOS numérico fim ref. 12 Refinamentos sucessivos do algoritmo 1 Ref. Calcule rendimento trimestral RENDIMENTO ← TAXA x MONTANTE fim ref. Ref. Calcule o montante trimestral MONTANTE ← CAPITAL x (1 + TAXA)TRIMESTRE fim ref. Ref. Escreva rendimento e montante trimestrais escreva RENDIMENTO, MONTANTE fim ref. 13 Algoritmo 1 completo Algoritmo { Definição do tipo das variáveis } declare CAPITAL, MONTANTE, N, RENDIMENTO, TAXA, TRIMESTRE, NUMEROANOS numérico leia CAPITAL, TAXA, NUMEROANOS { Atribuição dos valores iniciais necessarios } MONTANTE ← CAPITAL TRIMESTRE ← 1 N ← 4 x NUMEROANOS repita { Cálculo do rendimento trimestral } RENDIMENTO ← TAXA x MONTANTE { Cálculo do montante trimestral } MONTANTE ← CAPITAL x (1 + TAXA)TRIMESTRE { Escrita do rendimento e montante trimestrais } escreva RENDIMENTO, MONTANTE se TRIMESTRE = N então interrompa fim se TRIMESTRE ← TRIMESTRE + 1 fim repita Fim algoritmo 14 Algoritmo 2 • Em um frigorífico existem 90 bois. Cada boi traz preso em seu pescoço um cartão contendo seu número de identificação e seu peso. Faça um algoritmo que escreva o número e o peso do boi mais gordo e do boi mais magro. 15 Algoritmo 2 Algoritmo Defina o tipo das variáveis Atribua os valores iniciais necessários repita se o numero de bois examidados eh 90 entao interrompa fim se Leia numero de identificacao e peso do boi Determine o boi mais gordo Determine o boi mais magro Conte o boi fim repita Escreva o número e o peso do boi mais gordo Escreva o número e o peso do boi mais magro Fim Algoritmo 16 Refinamentos sucessivos do algoritmo 2 Ref. Leia o no. Identificacao e peso do boi leia NUMERO, PESO Fim ref. Ref. Determine o boi de maior peso se PESO > MAIORPESO entao MAIORPESO ← PESO GORDO ← NUMERO fim se Fim Ref 17 Refinamentos sucessivos do algoritmo 2 Ref. Determine o boi de menor peso se PESO < MENORPESO entao MENORRPESO ← PESO MAGRO ← NUMERO fim se Fim Ref Ref. Conte este boi BOIS ← BOIS + 1 Fim Ref Ref. Escreva o no. e peso do boi mais gordo escreva GORDO, MAIORPESO Fim Ref 18 Refinamentos sucessivos do algoritmo 2 Ref. Escreva o no. e peso do boi mais magro escreva MAGRO, MENORPESO Fim Ref Ref. Atribua os valores iniciais necessários BOIS ← 0 MAIORPESO ← 0 MENORPESO ← 0 Fim Ref. Ref. Defina o tipo das variaveis declare BOIS, GORDO, MAGRO, MAIORPESO, MENORPESO, NUMERO, PESO numerico Fim Ref. 19 Algoritmo 2 completo Algoritmo { Declaracao do tipo das variaveis} declare BOIS, {no. de bois examinados} GORDO, {no. do boi mais gordo} MAGRO, {no. do boi mais magro} MAIORPESO,{peso do boi mais gordo} MENORPESO,{peso do boi mais magro} NUMERO, {no. identificacao do boi} PESO {peso dos bois} numerico { Atribuicao dos valores iniciais} BOIS ← 1 MAIORPESO ← 0 MENORPESO ← 0 20 Algoritmo 2 completo leia NUMERO, PESO MAIORPESO ← PESO MENORPESO ← PESO GORDO ← NUMERO MAGRO ← NUMERO repita se BOIS = 90 entao interrompa fim se {Leitura do no. identificacao e peso dos bois} escreva “Entre com a identificacao e peso do boi” leia NUMERO, PESO { Determinacao do boi mais gordo } se PESO > MAIORPESO entao MAIORPESO ← PESO GORDO ← NUMERO fim se { Determinacao do boi mais magro } se PESO < MENORPESO entao MENORPESO ← PESO MAGRO ← NUMERO fim se BOIS ← BOIS + 1 fim repita 21 Algoritmo 2 completo { Escrita do boi de maior peso} escreva GORDO, MAIORPESO { Escrita do boi de menor peso} escreva MAGRO, MENORPESO Fim Algoritmo 22 Pratique a estrutura de repetição • Foi realizada uma pesquisa sobre as características físicas de um determinada região. Foram perguntados: – – – – Sexo (masculino, feminino); Cor dos olhos (azuis, verdes, castanhos); Cor dos cabelos (louros, castanhos, pretos); Idade em anos. • Para cada habitante, foi digitada uma linha com estes dados e a última linha, que não corresponde a ninguém, contêm o valor -1. • Escreva um algoritmo que determine e escreva: – O habitante de maior idade; – O habitante de menor idade; – A porcentagem de individuos do sexo feminino cuja idade está entre 18 e 35 anos inclusive e que tenham olhos verdes e cabelos louros. 23