Algoritmo e Estrutura de Dados I Aula 7 – Estrutura de repetição Márcia Marra marsha@dcc.ufmg.br
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
Estrutura de repetição com interrupção no início repita se condição então interrompa fim se fim repita
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
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
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
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
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
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.
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 montante após terem decorrido n meses. C: capital inicial investido i: taxa de juros n: número de períodos decorridos (trimestres)
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
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 Ref. Defina tipos das variáveis declare CAPITAL, MONTANTE, N, RENDIMENTO, TAXA, TRIMESTRE, NUMEROANOS numérico
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 Ref. Escreva rendimento e montante trimestrais escreva RENDIMENTO, MONTANTE
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
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.
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
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
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 Ref. Escreva o no. e peso do boi mais gordo escreva GORDO, MAIORPESO
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
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
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” { Determinacao do boi mais gordo } se PESO > MAIORPESO entao MAIORPESO ← PESO { Determinacao do boi mais magro } se PESO < MENORPESO entao MENORPESO ← PESO BOIS ← BOIS + 1 fim repita
Algoritmo 2 completo { Escrita do boi de maior peso} escreva GORDO, MAIORPESO { Escrita do boi de menor peso} escreva MAGRO, MENORPESO Fim Algoritmo
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.