Escolar Documentos
Profissional Documentos
Cultura Documentos
html#
Estruturas de repetição
Prof. Marcelo Vasques de Oliveira
Descrição
Propósito
Preparação
1 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Objetivos
Módulo 1
Módulo 2
Módulo 3
Introdução
2 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
3 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
1 // Código em Portugol
2 funcao inicio ()
3 {
4 Real nota1, nota2, nota3, media
5 escreva (" nota 1 = ")
6 leia (nota1)
7 escreva (" nota 2 = ")
8 leia (nota2)
9 escreva (" nota 3 = ")
10 leia (nota3)
4 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int main ()
2 {
3 float nota1, nota2,nota3,media;
4 printf (" nota 1 = ");
5 scanf("%f", ¬a1);
6 printf (" nota 2 = ");
7 scanf("%f", ¬a2);
8 printf (" nota 3 = ");
9 scanf("%f", ¬a3);
10 media=(nota1+nota2+nota3)/3;
11 printf ("media= %f",media);
12 }
Portugol
1 // Código em Portugol
2 funcao inicio ()
3 {
4 Real nota1, nota2, nota3, media
5 escreva (" nota 1 = ")
6 leia (nota1)
7 escreva (" nota 2 = ")
8 leia (nota2)
9 escreva (" nota 3 = ")
5 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 #include <stdio.h>
2
3 int main ()
4 {
5 float nota1, nota2,nota3,media;
6 printf (" nota 1 = ");
7 scanf("%f", ¬a1);
8 printf (" nota 2 = ");
9 scanf("%f", ¬a2);
10 printf (" nota 3 = ");
11 scanf("%f", ¬a3);
12 media=(nota1+nota2+nota3)/3;
13 printf ("media= %f",media);
14 if (media>=7)
6 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Demonstração
Vamos ver um exemplo da utilização dos comandos de repetição.
7 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
1 // Código em Portugol
2 //Sintaxe geral do comando PARA
3 PARA (inicialização; condição; incremento_decremento)
4 {
5 Bloco ou sequência de comandos a ser repetida
6 }
7 // comando após a repetição
C
1 // Código em Linguagem C
2 //Sintaxe geral do comando FOR
3 for (inicialização; condição; incremento_decremento)
4 {
5 Bloco ou sequência de comandos a ser repetida
6 }
7 // comando após a repetição
8 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Inicialização
Condição
Incremento_decremento
9 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
1 // Código em Portugol
2 PARA (cont=1;cont<=10;cont=cont+1)
3 {
4 Sequência de comandos a ser repetida
5 }
10 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 // Código em Linguagem C
2 for (cont=1;cont<=10;cont=cont+1)
3 {
4 Sequência de comandos a ser repetida
5 }
Em Portugol:
• Inicialização: cont=1.
• Condição: cont<=10.
• Incremento_decremento: cont=cont+1.
Na linguagem C:
• Inicialização: cont=1.
• Condição: cont<=10.
• Incremento_decremento: cont=cont+1.
11 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Código Em Portugol
1 PARA (cont=1;cont<=10;cont=cont+1)
2 {
3 escreva( cont, "\n")
4 }
C
1 for (cont=1;cont<=10;cont=cont+1)
2 {
3 printf ("%d\n",cont);
4 }
12 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Código Em Portugol
1 PARA (cont=10;cont>=1;cont=cont-1)
2 {
3 escreva( cont, "\n")
4 }
C
1 for (cont=10;cont>=1;cont=cont-1)
2 {
3 printf ("%d\n",cont);
4 }
Código Em Portugol
13 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
Código Em Portugol
14 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 for (cont=10;cont<=100;cont=cont+10)
2 {
3 printf ("%d\n",cont);
4 }
Código Em Portugol
15 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
Código Em Portugol
1 Soma=0
2 PARA (cont=1;cont<=10; cont=cont+1)
3 {
4 Soma=Soma+cont
5 }
6 escreva (Soma, "\n")
16 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 Soma=0;
2 for (cont=1;cont<=10;cont=cont+1)
3 {
4 soma=soma+cont;
5 }
6 printf ("A soma dos números entre 1 e 10 =%d\n",soma)
Código Em Portugol
1 Soma=0
2 PARA (cont=1;cont<=10; cont++)
3 {
4 Soma=Soma+cont
5 }
6 Média=Soma/10
7 escreva (media, "\n")
17 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 soma=0;
2 for (cont=1;cont<=10;cont++)
3 {
4 soma=soma+cont;
5 }
6 media=soma/10;
7 printf ("A média dos números entre 1 e 10= %f\n",media
1º problema
Resolução do primeiro problema
18 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
2º problema
Portugol
1 programa
2 {
3 funcao inicio()
4 {
5 inteiro num,cont,maior;
6 maior=0
7 para (cont=1;cont<=15;cont=cont+1)
8 {
9
19 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 int cont,num,maior;
6 maior=0;
7 for (cont=1;cont<=15;cont++)
8 {
9 printf ("Digite um número: ");
10 scanf("%d",&num);
11 if (num > maior)
12 {
13 maior=num;
14 }
20 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
3º problema
Portugol
1 programa
21 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 int cont;
6 float salario,media,soma,maior;
7 maior=0; soma=0;
8 for (cont=1;cont<=10;cont++)
9 {
10 printf ("Digite o salário do funcionário:
11 scanf("%f",&salario);
12 soma=soma+salario;
13 if (salario > maior)
14 {
4º problema
22 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
1 programa
2 {
3 funcao inicio()
4 {
5 real nota1,nota2,nota3,media
6 inteiro contalunos
7 para (contalunos=1;contalunos<=40;contalunos++)
8 {
9 escreva("Entre com a nota 1 do aluno: ")
10 leia (nota1)
11 escreva("Entre com a nota 2 do aluno: ")
12 leia (nota2)
13 escreva("Entre com a nota 3 do aluno: ")
14 leia (nota3)
C
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 float nota1,nota2,nota3,media;
6 int contalunos;
7 for (contalunos=1;contalunos<=6;contalunos++)
8 {
9 printf("Entre com a nota 1 do aluno: \n");
10 scanf("%f", ¬a1);
11 printf("Entre com a nota 2 do aluno: \n");
12 scanf("%f", ¬a2);
13 printf("Entre com a nota 3 do aluno: \n");
14
23 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
5º problema
Portugol
1 // Código em Portugol
2 programa
3 {
4 funcao inicio()
5 {
6 real percreaj, salario, salarioreaj, maiorsal
7 inteiro cont
8 maiorsal=0
9 escreva("Percentual de reajuste salarial: ")
10 leia (percreaj);
11 para (cont=1;cont<=50;cont++)
24 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 float percreaj,salario,salarioreaj,maiorsal;
6 int cont;
7 maiorsal=0;
8 printf("Percentual de reajuste salarial: \n");
9 scanf ("%f",&percreaj);
10 for (cont=1;cont<=8;cont++)
11 {
12 printf("Informe o salário do funcionário:
13 scanf("%f",&salario);
14 salarioreaj=salario+(salario*percreaj/
6º problema
3. Repetir N vezes:
3.1. Ler o número da lista.
25 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
1 programa
2 {
3 funcao inicio()
4 {
5 inteiro cont, n, num, somapar, somaimpar
6 somapar=0
7 somaimpar=0
8 escreva("Digite a quantidade de números da lista: ");
9 leia(n);
10 para (cont=1; cont<=n; cont++)
11 {
12 escreva ("Digite um número: ");
13 leia(num);
14 se (num%2==0)
C
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 int cont,n,num,somapar,somaimpar;
6 somapar=0;
7 somaimpar=0;
8 printf ("Digite a quantidade de números da lista:
9 scanf("%d",&n);
10 for (cont=1;cont<=n;cont++)
11 {
12 printf ("Digite um número: \n");
13 scanf("%d",&num);
14 if (num%2==0)
26 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Questão 1
27 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Questão 2
28 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
soma=0
para (cont=1; cont<=121; cont++)
{
A
soma = soma + cont
{
mostre(soma)
soma=0
para (cont=1; cont<=121; cont--)
{
D
soma = soma + cont
{
mostre(soma)
soma == 0
para (cont ==1; cont<=121;cont--)
{
E
soma = soma+cont
{
mostre(soma)
29 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
1º exemplo
30 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Demonstração
Vejamos a sintaxe em Portugol e em linguagem C:
31 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
C
32 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
1. A condição é testada.
Caso condição = VERDADEIRA:
1.1. Executar a sequência de comandos a ser repetida.
33 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
34 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
1 inteiro num
C
1 int num;
Portugol
1 enquanto (num!=0)
35 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 while (num!=0)
Portugol
1 inteiro num
36 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int num;
2 scanf("%d",&num);
3 while (num!=0)
Portugol
1 inteiro num
2 leia(num)
3 enquanto (num!=0)
37 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int num;
2 scanf("%d",&num);
3 while (num!=0)
4 {
5 printf ("O número lido foi = %d\n\n ",num);
6 }
Portugol
1 inteiro num
38 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int num;
2 scanf("%d",&num);
3 while (num!=0)
4 {
5 printf ("O número lido foi = %d\n\n ",num);
6 scanf("%d",&num);
7 }
Portugol
1 inteiro num
2 leia(num)
39 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int num;
2 printf ("Digite um número: ");
3 scanf("%d",&num);
4 while (num!=0)
5 {
6 printf ("O número lido foi = %d\n\n ",num);
7 printf ("Digite um número: ");
8 scanf("%d",&num);
9 }
C
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 int num;
6 printf ("Digite um número: ");
40 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
2
5
99
199
2999
-4
0
1º problema
41 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Resolução de Problema de estrutura
de repetição
Neste vídeo, iremos resolver o primeiro problema juntos e teremos a
ajuda de Marcelo Vasques, mestre em Computação Aplicada e
Automação:
2º problema
C
42 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
3º problema
Portugol
1 caracter letra
2 inteiro conta=0, conte=0, conti=0, conto=0, contu=0
43 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 char letra;
2 int conta=0, conte=0, conti=0, conto=0, contu=0;
Portugol
1 caracter letra
2
44 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 char letra;
2 int conta=0,conte=0,conti=0,conto=0,contu=0;
3 {
4 }
Portugol
45 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 switch (letra)
2 {
3 case 'a':
4 conta++; break;
5 case 'e':
6 conte++;break;
7 case 'i':
8 conti++;break;
9 case 'o':
10 conto++;break;
11 case 'u':
12 contu++;break;
13 }
Portugol
46 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 char letra;
2 int
3 int conta=0, conte=0, conti=0, conto=0, contu=0;
4 scanf("%c",&letra);
5 while (letra!='.')
6 {
7 switch (letra)
8 {
9 case 'a':
10 conta++;break;
11 case 'e':
12 conte++;break;
13 case 'i':
14 conti++;break;
printf ("Digite uma letra minúscula (a..z) a cada linha e tecle ENTER: \n");
C
1 // Código em Linguagem C
2
47 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Questão 1
48 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Questão 2
49 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
50 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
51 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Portugol
C
Funcionamento do comando
DO...WHILE
52 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
53 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Resolução do problema de comandos
de repetição com teste no início
Neste vídeo, iremos resolver o primeiro problema juntos e de forma
didática.
2º problema
54 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Exemplo
Exemplo de entrada:
10 11 12 90 71 0
A saída do programa para a entrada acima seria: 11 10 13 91 70.
- 10 é par, mostra 11 (10+1 = sucessor).
- 11 é ímpar, mostra 10 (11-1=antecessor).
- 12 é par, mostra (12+1 = sucessor).
- 90 é par, mostra (90+1 = sucessor).
- 71 é ímpar, mostra (71-1=antecessor).
Portugol
1 inteiro num
2 faca
3 {
4 }
5 enquanto(num!=0 && num!=9)
55 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int num;
2 do
3 {
4 }
5 while(num!=0 && num!=9)
Portugol
1 inteiro num
2 faca
3 {
4 escreva ("Digite um número: ")
5 leia (num)
6 se (num!=0 && num!=9)
7 {
8 se (num%2 ==0)
9 escreva ("Sucessor",num+1)
10 senao
56 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
1 int num
2 do
3 {
4 printf ("Digite um número: ");
5 scanf("%d",&num);
6 if (num!=0 && num!=9)
7 {
8 if (num%2 ==0)
9 printf ("Sucessor = %d\n\n ",num+1);
10 else
11 printf ("Antecessor = %d\n\n ",num-1);
12 }
13 }
14 while (num!=0 && num!=9);
C
1 // Código em Linguagem C
2
3 #include <stdio.h>
4 #include <stdlib.h>
5 int main()
6 {
7 int num;
8 do
9 {
10 printf ("Digite um número: \n");
11 scanf("%d",&num);
12 if (num!=0 && num!=9)
13 {
57 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
3º problema
1 R$ 0.00 R$ 999.00
2 R$ 999.01 R$ 1.999,00
3 R$ 1.999.01 R$ 9.999.00
4 R$ 9.999,01 R$ 99.999.00
58 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
C
59 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
C
Questão 1
60 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Questão 2
61 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
cont=100;
do
{
A printf (“contador=”, cont);
cont--;
}
while (cont>=1);
cont=100;
do
{
B printf (“contador=”, cont);
cont--;
}
while (cont>1);
cont=100;
do
{
C
printf (“contador=”, cont);
}
while (cont>1);
cont=100;
do
{
D printf (“contador=”, cont);
cont--;
}
while (cont<=1);
cont == 100;
do
{
E printf(“contador=”, cont);
cont--;
}
62 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
}
while(cont<=1)
Considerações �nais
As três estruturas de repetição estudadas podem ser usadas,
indiscriminadamente, em todo problema que demandar repetições de
instruções no processamento dos dados, ou seja, sempre que for
exigido que um bloco de comandos seja repetido. Todavia, existirá
sempre a estrutura mais adequada, conforme a especificidade do
problema.
Podcast
Para encerrar, ouça um breve resumo do conteúdo estudado.
63 of 64 09/02/2023 19:59
Estruturas de repetição https://stecine.azureedge.net/repositorio/00212ti/00332/index.html#
Referências
ANDRADE, M. C. Algoritmos. Rio de Janeiro: SESES, 2014. 128 p.
Explore +
Busque o Online C++ Compiler do editor GDB para compilar um
programa em C, caso não tenha o Dev-C++ instalado;
64 of 64 09/02/2023 19:59