Académique Documents
Professionnel Documents
Culture Documents
Introdução
Em muitas situações de nossas vidas, repetimos, com frequência, certas rotinas. Às
vezes, elas são tão importantes que algumas pessoas as descrevem para que possam
ser executadas, igualmente, por outros. Algumas rotinas têm um número de
repetições conhecido, mas outras não.
Por exemplo, imagine que dois amigos tomaram a decisão de viajar no final do ano
para Florianópolis (SC). Cada um escolheu uma forma de guardar dinheiro: o
primeiro depositou, todo mês, R$ 500,00 na caderneta de poupança, e o segundo, o
valor que sobrou no final do mês. Assim, cumprindo com sua palavra, o primeiro fez
12 depósitos e guardou R$ 6.000,00 ao final de um ano. Mas não podemos afirmar
quantos depósitos o segundo realizou nem o total que guardou. O fato é que, se ele
também cumpriu com sua palavra, poupou dinheiro continuamente. Essas são duas
formas diferentes de repetição.
Objetivos
Reconhecer as três estruturas de repetição usadas para construir programas;
Construir programas usando as estruturas de repetição;
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 1/27
17/10/2018 Estácio
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 2/27
17/10/2018 Estácio
Abordagens Iniciais
Falar sobre as estruturas de repetição é algo apaixonante, principalmente,
para quem começou a programar usando o lendário goto que combinado,
principalmente, com o if simulava todas as estruturas de repetição que iremos
estudar nesta aula.
As 3 estruturas de repetição
Como já mencionamos, existem 3 tipos. São eles:
For
While
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 3/27
17/10/2018 Estácio
Sua lógica é: repete enquanto a condição for verdadeira. Como ela testa
antes de executar o bloco, pode ser que nem execute o bloco se a
condição, de início, for falsa.
Do... while
Sua lógica é: repete enquanto a condição for verdadeira, mas, como ela
testa ao final, executa pelo menos uma vez o bloco, diferenciando-a da
estrutura while. A lógica de construção de um trecho, usando nessa
estrutura, é mais parecida com a estrutura do for, não precisando de
leitura/atribuição antecedendo o do para entrar na estrutura, pois como
já dissemos, testa ao final.
Sintaxes
For
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 4/27
17/10/2018 Estácio
1 2
for ( valor inicial ; expressão de teste ;
incremento 3 )
{
Bloco de comandos
}
While
while (condição)
{
Bloco de comandos
}
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 5/27
17/10/2018 Estácio
Do... While
do
{
Bloco de comandos
}
while (condição);
Dica
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 6/27
17/10/2018 Estácio
#include <stdio.h>
int main ()
float media;
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 7/27
17/10/2018 Estácio
printf(“\n”);
#include <stdio.h>
int main ()
float media;
int c;
printf(“\n\nMatricula: ”);
scanf(“%Ld”, &matric);
printf(“\Media: ”);
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 8/27
17/10/2018 Estácio
scanf(“%f”, &media);
printf(“\n”);
Veja a saída:
Essa saída você a obteria sem ou com a estrutura for. Experimente, digitando
os códigos. Não se esqueça de pausar com system(“pause>NULL” );
Atenção
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 9/27
17/10/2018 Estácio
Linguagem C Equivalência
for (c=1; c <=100; c++) PA com a1 = 1, an = 100 e r = 1
for (c=10; c >=1; c--) PA com a1 = 10, an = 1 e r = -1
#include <stdio.h>
int main ()
int num, c;
printf(“\n%d”, c);
printf(“\n”);
O que houve?
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 10/27
17/10/2018 Estácio
Atividade
1 - Construa um programa que exiba 10 vezes a frase:
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 11/27
17/10/2018 Estácio
Nesse exercício, precisaremos usar uma função que seja capaz de extrair
a raiz quadrada. Essa função faz parte da biblioteca math.h. Lembre-se
de que, no conjunto dos reais, não se pode extrair raiz de número
negativo.
Saiba mais
Teste
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 12/27
17/10/2018 Estácio
Atenção
Solução 1
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 13/27
17/10/2018 Estácio
#include <stdio.h>
int main ()
int num;
printf(“\nNúmero: ”);
scanf(“%d”&num);
printf(“\n%d”, num*2);
printf(“\n”);
Mas o fato de não repetir o bloco, não deveria ser estranho, visto que a
variável num, como não foi inicializada, terá um “lixo” que, no caso, foi
um número negativo.
Solução 2
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 14/27
17/10/2018 Estácio
#include <stdio.h>
int main ()
int num;
printf(“\nNúmero: ”);
scanf("%d", &num);
printf(“\n%d", num*2);
printf(“\n”);
Bem, a situação tinha melhorado, uma vez que foi permitido entrar com
um valor, mas como a função scanf não estava dentro da estrutura, o
programa entrou em loop e foi preciso pressionar as teclas CTRL e C
para interromper.
Solução 3
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 15/27
17/10/2018 Estácio
While (condição)
Bloco de comandos
#include <stdio.h>
int main ()
int num;
printf(“\nNúmero: ”);
scanf("%d", &num);
printf(“\n, num*2);
printf(“\nNúmero: ”);
scanf("%d", &num);
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 16/27
17/10/2018 Estácio
printf(“\n”);
Atenção
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 17/27
17/10/2018 Estácio
Se dentro desse bloco não estiver presente uma função de leitura ou comando
de atribuição, como os valores, a partir do segundo até o último, poderão ser
lidos? Isso implicaria que o primeiro valor lido, se maior do que zero, ficaria
armazenado para sempre na variável num e o programa entraria em loop
como ficou a segunda solução.
Atividade
4 - Construa um programa que deixe o usuário entrar com um número e
exiba o número invertido.
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 18/27
17/10/2018 Estácio
#include <stdio.h>
int main ()
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 19/27
17/10/2018 Estácio
int num;
for (;;)
printf(“\nNúmero: ”);
scanf(“%d”, &num);
printf(“\n%d, num*2);
printf(“\n”);
#include <stdio.h>
int main ()
int num;
for (;;)
printf(“\nNúmero: ”);
scanf(“%d”, &num);
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 20/27
17/10/2018 Estácio
printf(“\n%d, num*2);
printf(“\n”);
#include <stdio.h>
int main ()
cont = 1;
while(cont <=3)
printf(“\nNúmero: ”);
scanf(“%d”, &num);
printf(“\n%d”num*2);
cont++;
printf(“\n”);
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 21/27
17/10/2018 Estácio
Atenção
A simulação de while para do... while não será apresentada, uma vez que
se faz necessário “forçar” a entrada na estrutura while, atribuindo um
valor à variável que vai ser testada e não desejamos que você crie esse
hábito.
#include <stdio.h>
int main ()
cont = 1;
do
printf(“\nNúmero: ”);
scanf(“%d”, &num);
printf(“\n%d”num*2);
cont++;
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 22/27
17/10/2018 Estácio
while(cont <=3);
printf(“\n”);
Atenção
Aninhando as estruturas
Uma estrutura dentro de outra estrutura de repetição é algo muito comum.
Seja para proteger a entrada de dados ou para muitas outras finalidades como
poderemos constatar nos exemplos que serão mostrados a seguir.
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 23/27
17/10/2018 Estácio
#include <stdio.h>
#include <conio2.h>
int main ()
int cont, p;
printf("\n\n");
system(“pause”);
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 24/27
17/10/2018 Estácio
Atividade
7 - Escreva um código que exiba as posições de todos os elementos de
uma matriz bidimensional com dimensão 10 (matriz quadrada).
Saiba mais
Notas
1
Valor inicial
Exemplos
X = 0;
X = strlen(pal);
X = a + 1;
Expressão de teste 2
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 25/27
17/10/2018 Estácio
Exemplos
X > 0;
X < strlen(pal);
X <=a + 1;
3
Incremento
nomeVariavel operador=valor
nomeVariavel ++ ou nomeVariavel --
Exemplos
X = x + 1;
X = x *2 / x*=2;
X ++
X--
Referências
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 26/27
17/10/2018 Estácio
Próximos Passos
Explore mais
Exercite o conteúdo estudado com as listas de exercícios que separamos para você:
file:///W:/2018.2/linguagem_de_programacao_i__conv010/aula5.html 27/27