View
216
Download
0
Category
Preview:
Citation preview
1
Lógica de Programação
Estruturas de Repetição
Repetição com teste no início
Consiste em uma estrutura de controle de fluxo lógico que permite executar diversas vezes um mesmo trecho do algoritmo, porém, sempre verificando antes de cada execução se é “permitido” repetir o mesmo trecho.
2
Repetição com teste no início
Para realizar a repetição com teste no início, utilizamos a estrutura FAÇA ENQUANTO
FAÇA ENQUANTO <condição>| c1;| c2;| c3;|...|cN;|fimfaça
Repetição com teste no início
Exemplo:INICION1, N2, N3, N4, MA: real;CONT: inteiro;CONT <- 0;FAÇA ENQUANTO CONT < 50
LEIA (N1, N2, N3, N4);MA <- (N1+N2+N3+N4)/4;ESCREVA(“Média anual = “, MA);SE MA >= 7 ENTAO
ESCREVA (“Aluno Aprovado”);SENÃO
ESCREVA (“Aluno reprovado”);FIMSE
CONT <- CONT +1;FIMFAÇAFIM.
3
Repetição com teste no início
Exemplo de acumulador:INICIOACM, MAT, MA: real;CONT: inteiro;CONT <- 0; ACM <- 0; FAÇA ENQUANTO CONT < 50
LEIA (MA);ACM <- ACM + MA;CONT <- CONT +1;
FIMFAÇAMAT <- ACM/50;ESCREVA(“Média anual da turma = “,
MAT);FIM.
Repetição com teste no início
Exemplo com finalizador:INICIOACM, MAT, MA: real;CONT: inteiro;CONT <- 0; ACM <-0;LEIA (MA);FAÇA ENQUANTO MA <> -1
ACM <- ACM + MA;CONT <- CONT +1;LEIA (MA);
FIMFAÇAMAT <- ACM/CONT;ESCREVA(“Média anual da turma = “, MAT);FIM.
4
Repetição com teste no início
Exercício: construa um algoritmo que calcule a média aritmética de todos os números pares fornecidos pelo usuário. O valor de finalização será a entrada do número 0 (zero). Observe que nada impede que o usuário forneça quantos números ímpares quiser, com a ressalva de que eles não poderão ser acumulados.
Resolução:INICION, CONT, ACM: inteiro;MNP: real;CONT <- 0; ACM <-0;LEIA (N);FAÇA ENQUANTO N <> 0
SE N MOD 2 = 0 ENTAOACM <- ACM + N;CONT <- CONT +1;
FIMSELEIA (N);FIMFAÇA;SE CONT > 0 ENTAO
MNP <- ACM/CONT;ESCREVA(“Média = ”, MNP);
SENÃOESCREVA(“Nenhum par foi fornecido!”);
FIMSEFIM.
Repetição com teste no final
Para realizar a repetição com teste no final, utilizamos a estrutura REPITA que permite que um bloco ou ação primitiva seja repetido ATÉ que uma determinada condição seja verdadeira.
REPITA| c1;| c2;| c3;| ...| cN;ATÉ <condição>;
5
Repetição com teste no final
Exemplo: MA, ACM, MAT: real;CONT: inteiro;CONT <- 0;ACM <- 0;REPITA
LEIA (MA);ACM <- ACM + MA;CONT <- CONT +1;
ATÉ CONT >= 50;MAT <- ACM/50;ESCREVA(“Média anual da turma = ”, MAT);
Repetição com teste no final
Exercício:Construa um algoritmo que permita fazer um levantamento
do estoque de vinhos de uma adega, tendo como dados de entrada tipos de vinho (branco, tinto e rosé). Especifique a porcentagem de cada tipo sobre o total geral de vinhos; a quantidade de vinhos é desconhecida (usar como finalizador a constante “fim”).
6
Repetição com teste no finalResolução:TV : caractere;CONT_V, CT, CB, CR: inteiro;PT, PB, PR: real;CONT_V <- 0;CT <- 0;CB <- 0;CR <- 0;REPITA
LEIA (TV);ESCOLHA TV
CASO “TINTO”: CT <- CT +1;CASO “BRANCO”: CB <- CB +1;CASO “ROSE”: CR <- CR +1;
FIMESCOLHA;CONT_V <- CONT + 1;
ATÉ TV = “FIM”;CONT_V <- CONT_V - 1;
SE CONT_V > 0 ENTÃOPT <- (CT*100)/CONT_V;PR <- (CB*100)/CONT_V;PR <- (CR*100)/CONT_V;ESCREVA(“Porcentagem de Tintos = “, PT);ESCREVA(“Porcentagem de Brancos = “, PB);ESCREVA(“Porcentagem de Rosé = “, PR);
SENÃOESCREVA (“Nenhum tipo foi fornecido!”);
FIMSE;FIM.
Repetição com variável de
controle
A estrutura PARA repete a execução do bloco um número definido de vezes, pois ela possui limites fixos.
PARA V DE vi ATÉ vf PASSO p FAÇA| c1;| c2;| c3;| ...| cN;FIMPARA;
Onde:
•V é a variável de controle;
•vi é o valor inicial da variável V;
•vf é o valor final da variável V;
•p é o valor de incremente dado à variável V.
7
Repetição com variável de
controle
Exemplo:MA, ACM, MAT, V: real;ACM <- 0;PARA V DE 1 ATÉ 50 PASSO 1 FAÇA
LEIA (MA);ACM <- ACM /50;
FIMPARAMAT <-ACM/50;ESCREVA (“Média anual da turma = ”, MAT);FIM.
Repetição com variável de
controle
Exercício:Elabore um algoritmo
que efetue a soma de todos os números ímpares que são múltiplos de três e que se encontram no conjunto dos números de 1 até 500.
Resolução: SI, V: inteiro;SI <- 0;PARA V DE 1 ATÉ 500 PASSO 1 FAÇA
SE (INT(V/2)<>V/2) ENTÃOSE (INT(V/3)= V/3) ENTÃO
SI <- SI + 1;FIMSE;
FIMSE;FIMPARA;ESCREVA(“Soma = “, SI);FIM.
8
Comparação entre estruturas
ESTRUTURA CONDIÇÃO QUANT. DE EXEC. COND. DE EXIST.FAÇA ENQUANTO início ? Cond. VerdadeiraREPITA final mínimo 1 Cond. FalsaPARA não tem (vf - vi+p) DIV p v <vF
Exemplo: Elabore um algoritmo, que utilizando as três estruturas de repetição, imprima a tabuada do número 5.
Comparação entre estruturas
Utilizando FAÇA ENQUANTOINICIO
CONT, RESULT: INTEIRO;FAÇA ENQUANTO CONT <= 10
RESULT <- CONT * 5;ESCREVA (CONT, “ X 5 =“, RESULT);CONT <- CONT + 1;
FIMFAÇAFIM
9
Comparação entre estruturas
Utilizando REPITAINICIO
CONT, RESULT: INTEIRO;CONT <- 1;REPITA
RESULT <- CONT * 5;ESCREVA (CONT, “ X 5 =“, RESULT);CONT <- CONT+1;
ATÉ CONT > 10;FIM
Comparação entre estruturas
Utilizando PARA
INICIOCONT, RESULT: INTEIRO;PARA CONT DE 1 ATÉ 10 PASSO 1 FAÇA
RESULT <- CONT * 5;ESCREVA (CONT, “ X 5 =“, RESULT);
FIMPARA;FIM
10
Comparação entre estruturas
Modifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário, até encontrar como finalizador -1. Sabendo que o primeiro número base fornecido não é o -1.
Comparação entre estruturas
Utilizando FAÇA ENQUANTOINICIO
N, CONT, RESULT: INTEIRO;LEIA(N);FAÇA ENQUANTO N <> -1CONT <- 1; FAÇA ENQUANTO CONT <= 10RESULT <- CONT * N;ESCREVA (CONT, “ X “, N, RESULT);CONT <- CONT + 1;
FIMFAÇALEIA(N);FIMFAÇA;
FIM.
11
Comparação entre estruturas
Utilizando REPITAINICIO
N, CONT, RESULT: INTEIRO;LEIA(N);REPITA
CONT <- 1;REPITARESULT <- CONT * N;ESCREVA (CONT, “ X “, N ,” = ”, RESULT);CONT <- CONT+1;
ATÉ CONT > 10ATÉ N = -1;
FIM
Recommended