11
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.

Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

Embed Size (px)

Citation preview

Page 1: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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.

Page 2: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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.

Page 3: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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.

Page 4: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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>;

Page 5: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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”).

Page 6: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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.

Page 7: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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.

Page 8: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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

Page 9: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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

Page 10: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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.

Page 11: Lógica de Programação - Hudson Costa · PDF fileModifique o algoritmo para que este imprima a tabuada de quaisquer números, sendo que estes números são fornecidos pelo usuário,

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