15080590 aula6-estrutura-de-repeticao
DESCRIPTION
Estrutura de DadosTRANSCRIPT
![Page 1: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/1.jpg)
ESTRUTURAS DE CONTROLE
ESTRUTURAS DE REPETIÇÃOESTRUTURAS DE REPETIÇÃO
Programação BásicaProf. Alexandre Bendlin
Aula 06
![Page 2: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/2.jpg)
2
Estruturas de Controle● ESTRUTURA SEQUENCIAL● ESTRUTURAS CONDICIONAIS
– Estrutura Condicional Simples– Estrutura Condicional Composta– Seleção entre duas ou mais Seqüências de
Comandos● ESTRUTURA DE REPETIÇÃO
– Repetição com Teste no Início– Repetição com Teste no Final– Repetição Contada
![Page 3: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/3.jpg)
3
Estruturas de Controle● ESTRUTURA SEQUENCIAL● ESTRUTURAS CONDICIONAIS
– Estrutura Condicional Simples– Estrutura Condicional Composta– Seleção entre duas ou mais Seqüências de
Comandos● ESTRUTURA DE REPETIÇÃO
– Repetição com Teste no Início– Repetição com Teste no Final– Repetição Contada
![Page 4: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/4.jpg)
4
Estruturas de Controle● ESTRUTURA SEQUENCIAL● ESTRUTURAS CONDICIONAIS
– Estrutura Condicional Simples– Estrutura Condicional Composta– Seleção entre duas ou mais Seqüências de
Comandos● ESTRUTURA DE REPETIÇÃO
– Repetição com Teste no Início– Repetição com Teste no Final– Repetição Contada
● Permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita.
![Page 5: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/5.jpg)
5
Repetição com Repetição com TesteTeste nono InícioInício
![Page 6: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/6.jpg)
6
enquanto (<condição>) faça comando
fim enquanto
?sim
não
Fluxograma Linguagem Algoritmica
Repetição com Repetição com TesteTeste nono InícioInício formas de representação no algorítmo
![Page 7: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/7.jpg)
7
Repetição com Repetição com TesteTeste nono InícioInício PASCALPASCAL
while (<expressão lógica>) do comando;
![Page 8: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/8.jpg)
8
Repetição com Repetição com TesteTeste nono InícioInício ExemploExemplo
Desenvolver algorítmo para o problema:Ler a variável SEXO. Enquanto o valor fornecido não for correto (M,m,F,f) exibir mensagem de erro e solicitar novamente a leitura.Quando o valor fornecido estiver correto, ler a variável ANO.Escrever ANO e SEXO
![Page 9: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/9.jpg)
9
Repetição com Repetição com TesteTeste nono InícioInício ExemploExemplo
programa TESTE1declaraçõesinicio ler SEXO enquanto SEXO # (f, F, m, M) faça início escrever “ERRO” ler (SEXO) fim fim enquanto ler ANO escrever (ANO,SEXO)fim
![Page 10: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/10.jpg)
10
Repetição com Repetição com TesteTeste nono InícioInício ExemploExemplo
programa TESTE1declaraçõesinicio ler SEXO enquanto SEXO # (f, F, m, M) faça início escrever “ERRO” ler (SEXO) fim fim enquanto ler ANO escrever (ANO,SEXO)fim
Esta variável de controledeve ter um valor conhecidoNeste caso ela foi lida antes
A variável de controle deve ter seu valor modificado
dentro do “laço”.Neste caso a variável
foi lida novamente
laço
![Page 11: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/11.jpg)
11
Exemploprogram TESTE1;var intAno: integer; chrSexo: char;begin write('SEXO: '); readln(chrSexo); while ((chrSexo <> 'F') and (chrSexo <> 'M') and (chrSexo <> 'f') and (chrSexo <> 'm')) do begin writeln('ERRO!!!'); write('Sexo: '); readln(chrSexo); end; writeln; write('Ano: '); readln(intAno); writeln; writeln('':14,'SAIDA'); writeln('Ano: ', intAno:4, '':12, 'Sexo: ', chrSexo); readln;end.
![Page 12: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/12.jpg)
12
Exemplo
SEXO: GERRO!!!SEXO: BERRO!!!SEXO: f
ANO: 2002
SAIDAANO = 2002 SEXO: f
![Page 13: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/13.jpg)
13
Exemplo
SEXO: GERRO!!!SEXO: BERRO!!!SEXO: f
ANO: 2002
SAIDAANO = 2002 SEXO: f
Seria melhor se a mensagem de errofosse apagada e o
cursor voltasse a pulsar o mesmo lugar
![Page 14: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/14.jpg)
14
program TESTE1;uses CRT;var intAno: integer; chrSexo: char;begin clrscr; write('Sexo: '); readln(chrSexo); while ((chrSexo<>'F') and (chrSexo<>'M') and (chrSexo<>'f') and (chrSexo<>'m')) do begin gotoxy(1,2); write('Sexo invalido! Pressione <enter> para continuar.'); readln; gotoxy(7,1); write('':10); gotoxy(1,2); write('':49); gotoxy(7,1); readln(chrSexo); end; write('Ano: '); readln(intAno); writeln; writeln('':14, 'SAIDA'); writeln('Ano: ', intAno:4, '':12, 'Sexo: ', chrSexo); readln;end.
![Page 15: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/15.jpg)
15
program TESTE1;uses CRT;var intAno: integer; chrSexo: char;begin clrscr; write('Sexo: '); readln(chrSexo); while ((chrSexo<>'F') and (chrSexo<>'M') and (chrSexo<>'f') and (chrSexo<>'m')) do begin gotoxy(1,2); write('Sexo invalido! Pressione <enter> para continuar.'); readln; gotoxy(7,1); write('':10); gotoxy(1,2); write('':49); gotoxy(7,1); readln(chrSexo); end; write('Ano: '); readln(intAno); writeln; writeln('':14, 'SAIDA'); writeln('Ano: ', intAno:4, '':12, 'Sexo: ', chrSexo); readln;end.
Este comando desvia o cursor para
a coluna e linha indicada
![Page 16: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/16.jpg)
16
Comando gotoxy
● Este comando desvia o cursor para a coluna e linha indicada
● Deve ser colocado uses CRT● Não funciona para saída em impressora
gotoxy(coluna, linha);
![Page 17: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/17.jpg)
17
Desenvolver algorítmo para o problema:● Ler um conjunto de valores correspondentes aos
pontos que alunos obtiveram em um teste. ● Quando o valor fornecido for um número negativo,
isto é um sinal que não existem mais pontos para serem lidos.
● Contar quantos alunos fizeram o teste.● Escrever o total de alunos
Repetição com Repetição com TesteTeste nono InícioInício Contador/AcumuladorContador/Acumulador Exemplo Exemplo
![Page 18: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/18.jpg)
18
Repetição com Repetição com TesteTeste nono InícioInício Contador/AcumuladorContador/Acumulador Exemplo Exemplo
programa TESTE2declaraçõesinicio N←0 ler PONTOS enquanto (PONTOS > 0) faça início N←N+1 ler PONTOS fim fim enquanto escrever (N)fim
![Page 19: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/19.jpg)
19
Repetição com Repetição com TesteTeste nono InícioInício Contador/AcumuladorContador/Acumulador Exemplo Exemplo
programa TESTE2declaraçõesinicio N←0 ler PONTOS enquanto PONTOS > 0 faça início N←N+1 ler PONTOS fim fim enquanto escrever (N)fim
NNcontador/acumulador
NN deve ser zerado e então incrementado em 1 dentro do comando de repetição
![Page 20: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/20.jpg)
20
program TESTE2;var intPontos {nota do teste}, intN {total de alunos}: integer;begin intN := 0; writeln('FORNECA OS PONTOS OBTIDOS'); readln(intPontos); while (intPontos > 0) do begin intN := intN + 1; readln(intPontos); end; writeln('TOTAL DE ALUNOS: ', intN:2); readln;end.
ExemploExemplo
![Page 21: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/21.jpg)
21
Desenvolver algorítmo para o problema:● Ler um conjunto de valores correspondentes aos
pontos que alunos obtiveram em um teste. ● Quando o valor fornecido for um número negativo,
isto é um sinal que não existem mais pontos para serem lidos.
● Contar e escrever quantos alunos fizeram o teste.● Contar e escrever quantos alunos tiveram nota
baixa (PONTOS < 50)● Contar e escrever quantos alunos tiveram nota alta
(100≤PONTOS ≤ 150)
Repetição com Repetição com TesteTeste nono InícioInício Contador/AcumuladorContador/Acumulador Exemplo Exemplo
![Page 22: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/22.jpg)
22
Desenvolver algorítmo para o problema:● Ler um conjunto de valores correspondentes aos
pontos que alunos obtiveram em um teste. ● Quando o valor fornecido for um número negativo,
isto é um sinal que não existem mais pontos para serem lidos.
● Contar e escrever quantos alunos fizeram o teste.● Contar e escrever quantos alunos tiveram nota
baixa (PONTOS < 50)● Contar e escrever quantos alunos tiveram nota alta
(100≤PONTOS ≤ 150)
Repetição com Repetição com TesteTeste nono InícioInício Contador/AcumuladorContador/Acumulador Exemplo Exemplo
São necessários 3 contadores
![Page 23: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/23.jpg)
23
programa TESTE2declaraçõesinicio N← 0 ALTAS ← 0 BAIXAS ← 0 ler PONTOS enquanto (PONTOS ≥ 0) faça início se (PONTOS ≥ 100) então ALTAS ← ALTAS + 1 senão se (PONTOS < 50) então BAIXAS ← BAIXAS +1 N←N+1 ler PONTOS fim fim enquanto escrever (N,BAIXAS, ALTAS)fim
ALG
OR
ÍTM
OA
LGO
RÍT
MO
![Page 24: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/24.jpg)
24
programa TESTE2declaraçõesinicio N← 0 ALTAS ← 0 BAIXAS ← 0 ler PONTOS enquanto (PONTOS ≥ 0) faça início se (PONTOS ≥ 100) então ALTAS ← ALTAS + 1 senão se (PONTOS < 50) então BAIXAS ← BAIXAS +1 N←N+1 ler PONTOS fim fim enquanto escrever (N,BAIXAS, ALTAS)fim
ALG
OR
ÍTM
OA
LGO
RÍT
MO
3 contadores
![Page 25: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/25.jpg)
25
program TESTE2;var intN, intAltas, intBaixas, intPontos: integer;begin intN := 0; intAltas := 0; intBaixas := 0; writeln('FORNECA OS PONTOS OBTIDOS'); readln(intPontos); while (intPontos >= 0) do begin if (intPontos >= 100) then intAltas := intAltas + 1 else if (intPontos < 50) then intBaixas := intBaixas + 1; intN := intN + 1; readln(intPontos); end; writeln('Numero de Notas: ', intN:2); writeln('Numero de Notas Altas: ', intAltas:2); writeln('Numero de Notas Baixas: ', intBaixas:2); readln;end.
PASC
AL
PASC
AL
![Page 26: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/26.jpg)
26
Repetição com Repetição com TesteTeste nono FinalFinal
![Page 27: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/27.jpg)
27
repita comando 1 comando 2
comando naté <condição>
?sim
não
Fluxograma Linguagem Algoritmica
Repetição com Repetição com TesteTeste nono Final Final formas de representação no algorítmo
...
C1
C2
Cn
![Page 28: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/28.jpg)
28
Repetição com Repetição com TesteTeste nono FinalFinal PASCALPASCAL
repeat <seqüência de comandos>until (<expressão lógica>);
![Page 29: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/29.jpg)
29
Repetição com Repetição com TesteTeste nono FinalFinal ExemploExemplo
Desenvolver algorítmo para o problema:
Calcular e exibir o valor da série.
5099...
47
35
23
11 +++++=S
![Page 30: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/30.jpg)
30
programa TESTE4declaraçõesinicio S ← 0 N ← 1 D ← 1 repita S ← S + N ← N+2 D ← D+1 até que (D > 50) escrever (S)fim
ALG
OR
ÍTM
OA
LGO
RÍT
MO
DN
Inicializa a somatória
Inicializa o numerador
Inicializa o denominador
Calcula os termos da série
Calcula o próximo numerador
Calcula o próximo denominador
![Page 31: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/31.jpg)
31
program TESTE4;var intN, intD: integer; ralS: real;begin ralS := 0; intN := 1; intD := 1; repeat ralS := ralS + (intN / intD); intN := intN + 2; intD := intD + 1; until (intD > 50); writeln('Soma da Serie: ', ralS:5:2); readln;end.
PRO
GR
AM
APR
OG
RA
MA
![Page 32: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/32.jpg)
32
Repetição Repetição ContadaContadaeste comando deve ser usado quando se sabe a
priori o número de repetições
![Page 33: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/33.jpg)
33
Para C de I até F faça comando
fim para sim
não
Fluxograma Linguagem Algoritmica
Repetição Repetição ContadaContada formas de representação no algorítmo
Comando
C de I até F
![Page 34: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/34.jpg)
34
Repetição Repetição ContadaContada
C - variável de controleI - valor inicial da variávelF - valor final da variável
● OBSERVAÇÕES (teóricamente)
– C, I e F não devem ser modificadas– a variável C fica indefinida ao terminar as
repetições
![Page 35: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/35.jpg)
35
Repetição Contada Repetição Contada PASCALPASCAL
for <var.controle>:=<val.inicial> to <val.final> do <comando>;
for <var.controle>:=<val.final> downto <val.inicial> do <comando>;
A variável de controle assume o valor inicial e automaticamente é incrementada em 1, a cada repetição, até o valor final.
A variável de controle assume o valor final e automaticamente é incrementada em -1, a cada repetição, até o valor inicial.
![Page 36: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/36.jpg)
36
Repetição Repetição ContadaContada ExemploExemplo
Desenvolver algorítmo para o problema:
Dado um conjunto de N números, calcular a média aritimética dos mesmos.
![Page 37: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/37.jpg)
37
programa TESTE6declaraçõesinicio ler N S ← 0 para I de 1 até N faça ler X S ← S + X fim para escrever (S/N)fim
ALG
OR
ÍTM
OA
LGO
RÍT
MO
quantidade de notas
nota
![Page 38: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/38.jpg)
38
program TESTE6;uses crt;var intN, intI: integer; ralS, ralX: real;begin clrscr; write('Forneca o numero de notas: '); readln(intN); writeln; ralS := 0; for intI := 1 to intN do begin write('Forneca a ', intI:1, 'a. nota: '); readln(ralX); ralS := ralS + ralX; end; writeln('Media: ', (ralS/intN):5:2); readlnend.
PRO
GR
AM
APR
OG
RA
MA
![Page 39: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/39.jpg)
39
Repetição Repetição ContadaContada ExemploExemplo
Desenvolver algorítmo para o problema:
Ler um número inteiro ≥ 0 e calcular seu fatorial.
![Page 40: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/40.jpg)
40
programa TESTE7declaraçõesinicio ler N FAT← 1 para I de 1 até N faça FAT ← FAT * I fim para escrever (FAT)fim
ALG
OR
ÍTM
OA
LGO
RÍT
MO
Inicializa o acumulador
![Page 41: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/41.jpg)
41
program TESTE7;uses crt;var intN, intI: integer; ralFat: real;begin clrscr; write('Forneca um numero inteiro maior ou igual a zero:'); readln(intN); writeln; ralFat := 1; for intI := 1 to intN do begin ralFat := ralFat * intI; end; writeln('Fatorial: ', ralFat:5:2); readln;end.
PRO
GR
AM
APR
OG
RA
MA
![Page 42: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/42.jpg)
42
Exercícios● Faça um algoritmo para mostrar se uma pessoa está com
seu peso na faixa normal, sobrepeso ou obesa. Com base no peso e altura de um indivíduo, consegue-se obter o índice de massa corporal (IMC). Ele é calculado dividindo-se o peso do paciente em kilogramas (Kg) pela sua altura em metros elevada ao quadrado (quadrado de sua altura). IMC=P/A2. O valor assim obtido estabelece o diagnóstico da obesidade da seguinte forma: IMC < 18: Muito magro; IMC entre 18 a 24,9: Peso saudável; entre 25 a 29,9: Sobrepeso; acima de 30: Obesidade.
● Inclua um loop para permitir que o cálculo seja feito para diversas pessoas. Use repeat until como condição de parada
![Page 43: 15080590 aula6-estrutura-de-repeticao](https://reader033.vdocuments.pub/reader033/viewer/2022060203/559e94aa1a28ab173d8b476a/html5/thumbnails/43.jpg)
43
Exercícios● Faça um algoritmo para mostrar a tabuada de um
número n (use for para iterar pelos 10 números).
● Inclua um loop para permitir que o cálculo seja feito para diversas tabuadas. Use repeat until como condição de parada