Buscar

Estruturas de Repetição em Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estruturas de Repetição | Introdução à Computação 1 de 182014 © MdaS
Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiççççãoãoãoão
� Alguns cálculos realizados pelo computador são feitos 
de forma repetitiva
� Exemplos:
� Cálculo de 25!
� Soma dos 100 primeiros números naturais não-nulos
fat = 25*24*23*22*21*20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1;
s = 100 + 99 + 98 + 97 + 96 + 95 + 94 + 93 + 92 + 91 + 90 + 89 + 88 + 87 + 
86 + 85 + 84 + 83 + 82 + 81 + 80 + 79 + 78 + 77 + 76 + 75 + 74 + 73 + 72 + 
71 + 70 + 69 + 68 + 67 + 66 + 65 + 64 + 63 + 62 + 61 + 60 + 59 + 58 + 57 + 
56 + 55 + 54 + 53 + 52 + 51 + 50 + 49 + 48 + 47 + 46 + 45 + 44 + 43 + 42 + 
41 + 40 + 39 + 38 + 37 + 36 + 35 + 34 + 33 + 32 + 31 + 30 + 29 + 28 + 27 + 
26 + 25 + 24 + 23 + 22 + 21 + 20 + 19 + 18 + 17 + 16 + 15 + 14 + 13 + 12 + 
11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1;
Estruturas de Repetição | Introdução à Computação 2 de 182014 © MdaS
Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiççççãoãoãoão
� Para se evitar repetições cansativas na escrita de um 
programa
São utilizadas estruturas que repetem um determinado 
conjunto de instruções
� Para isto, são utilizadas as estruturas de repetiestruturas de repetiestruturas de repetiestruturas de repetiççççãoãoãoão
Estruturas de Repetição | Introdução à Computação 3 de 182014 © MdaS
Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiççççãoãoãoão
� São utilizadas quando há uma grande quantidade de 
tarefas a ser repetida em um programa
� Para o seu funcionamento correto, é necessário:
� Ser limitado: encerrar quando uma expressão lógica não for 
mais verdadeira ou após uma quantidade fixa de execuções
� Variável de controle: responsáveis por determinar o 
sequenciamento de ações ao longo da execução do laço
� Existem três estruturas de repetição distintas:
Estruturas de Repetição | Introdução à Computação 4 de 182014 © MdaS
RepetiRepetiRepetiRepetiçççção com teste no inão com teste no inão com teste no inão com teste no iníííício cio cio cio ---- while
� Consiste na repetição das instruções controladas por 
expressões relacionais e/ou lógicas feitas no ininininííííciociociocio da 
estrutura
� Semelhante ao da estrutura if
� Deve existir um contador, que é uma variável que controla o 
laço de repetição
� É necessário que ela seja:
� Iniciada
� Comparada
� Atualizada
S = 0;
cont = 1;
while (cont <= 100)
{
S = S + cont;
cont = cont + 1;
}
printf("Soma = %d", S);
Estruturas de Repetição | Introdução à Computação 5 de 182014 © MdaS
RepetiRepetiRepetiRepetiçççção com teste no fim ão com teste no fim ão com teste no fim ão com teste no fim –––– do...while
� Consiste na repetição das instruções controladas por 
expressões relacionais e/ou lógicas feitas no finalfinalfinalfinal da 
estrutura
� Executa ao menos uma vez o conteúdo da estrutura
do
{
system("cls");
printf("Entre com um numero entre 0 e 9");
scanf("%d", &n);
} while ((n < 0) || (n >= 10));
printf("Algarismo = %d", n);
Estruturas de Repetição | Introdução à Computação 6 de 182014 © MdaS
ExemploExemploExemploExemplo
� Inserir um número e exibir a sua 
tabuada
#include <stdio.h>
#include <stdlib.h>
int n, cont, P;
int main()
{
printf("Insira um numero:");
scanf("%d", &n);
cont = 1;
while (cont <= 10)
{
P = n * cont;
printf("%d * %d = %d\n", n, cont, P);
cont = cont + 1;
}
system("PAUSE");
}
Desse jeito, fica fácil... 
Vou passar no 3º!!!
Estruturas de Repetição | Introdução à Computação 7 de 182014 © MdaS
ObservaObservaObservaObservaççççõesõesõesões
� Estruturas de repetição devem 
sempre ser finitas!
� Caso contrário, o programa 
deverá cair em um loop infinito
� Ou seja, executar o bloco de 
repetição infinitas vezes
� Pode ocorrer por causa da falta de 
alteração da variável de controle
� Ou pela má formação da 
expressão relacional ou lógica
Estruturas de Repetição | Introdução à Computação 8 de 182014 © MdaS
ExercExercExercExercíííícioscioscioscios
1. Calcule o valor de S, utilizando estruturas de 
repetição, dado por:
a)
b)
2. Dado um valor n inserido pelo usuário, calcular e 
exibir
a) A soma de todos os múltiplos de 3 entre 0 e n;
b) O produto de todos os múltiplos de 7 entre 0 e n;
12
)1(
...
9
4
7
3
5
2
3
1
1
+
−
++−+−=
+
n
n
S
n
100
10
...
16
4
9
3
4
2
1
1
+++++=S
Estruturas de Repetição | Introdução à Computação 9 de 182014 © MdaS
Operadores EspeciaisOperadores EspeciaisOperadores EspeciaisOperadores Especiais
� Existem alguns operadores que simplificam na 
representação do cálculo, especialmente quando elas 
são utilizadas nestes tipos de estruturas
y = y + 1--y
x = x + 1++x
m--
n++
bin %= 2
a /= b
p *= 2
k -= 3
n += 4
ExemploExemploExemploExemplo
m = m – 1
n = n + 1
bin = bin % 2
a = a / b
p = p * 2
k = k - 3
n = n + 4
EquivalenteEquivalenteEquivalenteEquivalente
Incremento++
Decremento--
Resto%=
Divisão/=
Multiplicação*=
Subtração-=
Adição+=
OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo
Estruturas de Repetição | Introdução à Computação 10 de 182014 © MdaS
RepetiRepetiRepetiRepetiçççção com Controle ão com Controle ão com Controle ão com Controle –––– for
� É utilizada quando o laço de repetição utiliza um 
contador
� Não é necessariamente uma operação lógica, porém é
� Iniciada
� Comparada
� Atualizada
� Inclui em apenas uma linha a inicialização, a 
comparação e a atualização do contador
S = 0;
for (cont = 1; cont <= 100; cont++)
{
S = S + cont;
}
printf("Soma = %d", S);
Estruturas de Repetição | Introdução à Computação 11 de 182014 © MdaS
Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiçççção e Seleão e Seleão e Seleão e Seleççççãoãoãoão
� Estruturas de seleção podem ser inclusas em 
estruturas de repetição
� Exemplo: par ou ímpar!
for (i = 0; i <= 30; i++)
{
if ((i % 2) == 0)
printf("%2d = par!\n", i); 
else
printf("%2d = impar!\n", i);
}
Estruturas de Repetição | Introdução à Computação 12 de 182014 © MdaS
VVVVáááárias Estruturas de Repetirias Estruturas de Repetirias Estruturas de Repetirias Estruturas de Repetiççççãoãoãoão
� É possível também incluir uma estrutura de repetição 
dentro da outra (Pereira, 2010):
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= i; j++)
{
printf("*"); 
}
printf("\n"); 
}
Estruturas de Repetição | Introdução à Computação 13 de 182014 © MdaS
Comandos de ControleComandos de ControleComandos de ControleComandos de Controle
� break: encerra todo o bloco de controle, ignorando as 
próximas iterações (Pereira, 2010)
cont = 0; //variável inicializada na declaração
srand(time(NULL)); // inicializa o gerador de números aleatórios
num = rand() % 100;// rand() gera um número inteiro
while (1) // loop infinito
{
cont++;
system("CLS");
printf("Adivinhe o numero que estou pensando... [0, 99]: ");
scanf("%d", &chute);
if (chute == num)
break;
}
printf("Acertou em %d tentativas\n", cont);
system("PAUSE");
Estruturas de Repetição | Introdução à Computação 14 de 182014 © MdaS
Comandos de ControleComandos de ControleComandos de ControleComandos de Controle
� continue: encerra todo o bloco de controle, 
continuando na próxima iteração (se ela for executada) 
(Pereira, 2010)
printf("Quantos valores deseja informar? ");
scanf("%d", &n);
for ( i = 0; i < n; i++ )
{
printf("%do. valor: ", i + 1);
scanf("%f", &valor);
if ( valor == 0.0 )
continue;
printf("O inverso de %f é %f\n", valor, 1.0/valor);
}
Estruturas de Repetição | Introdução à Computação 15 de 182014 © MdaS
Comandos de ControleComandos de ControleComandos de ControleComandos de Controle
� exit(0): encerra o programa!
printf("Quantos valores deseja informar? ");
scanf("%d", &n);
for ( i = 0; i < n; i++ )
{
printf("%do. valor: ", i + 1);
scanf("%f", &valor);
if ( valor == 0.0 )
{
printf("Divisão por zero!\n");
system("PAUSE");
exit(0);
}
printf("Oinverso de %f é %f\n", valor, 1.0/valor);
}
Estruturas de Repetição | Introdução à Computação 16 de 182014 © MdaS
ExercExercExercExercíííícioscioscioscios
� Escrever um programa em C para os seguintes 
problemas:
1. Calcule n!
2. Calcule o valor de S, dado que 
50
99
...
4
7
3
5
2
3
1
1
+++++=S
Estruturas de Repetição | Introdução à Computação 17 de 182014 © MdaS
ExercExercExercExercíííícioscioscioscios
1. Calcule e exiba uma tabela de graus Celsius e graus 
Fahrenheit que varia entre -20 a 60°C, de 4 em 4 
graus.
2. Utilize a estrutura for para exibir a tabuada de um 
número inteiro inserido pelo usuário.
Estruturas de Repetição | Introdução à Computação 18 de 182014 © MdaS
ExercExercExercExercíííícioscioscioscios
3. Faça um programa onde devem ser inseridos pelo 
usuário a massa, a velocidade e a aceleração 
escalares e mostre uma tabela de valores contendo:
� O módulo da quantidade de movimento;
� O módulo da força;
� A energia cinética;
� As tabelas devem ter o valor da massa variando entre 
0 até o valor inserido.

Outros materiais