Você está na página 1de 26

Estruturas de Repetição

Prof. Msc Sandro M Malta


Imagine a situação: Fazer um programa que escreva os números
de a 0 a 10.

Agora 0 a 100

E se pedir de 0 a 1000

E agora de 0 a 10000??? Como fazer ???


#include <stdio.h>
#include <stdlib.h>

int main()
{

printf ("\n\n 0");


printf ("\n\n 1");
printf ("\n\n 2");
printf ("\n\n 3");
printf ("\n\n 4");
printf ("\n\n 5");
printf ("\n\n 6");
printf ("\n\n 7");
printf ("\n\n 8");
printf ("\n\n 9");
printf ("\n\n 10\n\n");
system("pause");
return 0;
}
Comando for
▪ Sintaxe da estrutura for:
▪ for (inicialização; condição; incremento) declaração;

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
printf(" Os números entre 0 e 10 sao:\n\n");

for (i=0; i <= 10; i++)


printf("%d\n", i);

printf("\n\n ");
system("pause");
return(0);
}
Exemplo 2 comando for
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
int soma=0;
printf(" A soma dos números entre 0 e 10 e`:\n\n");

for (i=0; i <= 10; i++)


soma+=i;

printf("%d\n", soma);

printf("\n\n ");
system("pause");
return(0);
}
Atividade
• Modifique o exemplo 2 de forma a mostrar todos os valores da variável I e soma.
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
int soma=0;

for (i=0; i <= 10; i++)


{
soma+=i;

printf("i=%d e soma=%d \n",i, soma);


}
printf("\n\n ");
system("pause");
return(0);
}
Exemplo 3
#include <stdio.h>
#include <stdlib.h>

int main()
{
int ind;
printf(" Os multiplos de quatro menores ou igual a 100 sao:\n\n");

for (ind=0; ind <=100; ind+=4)


printf(" %d\n\n", ind);

printf("\n\n ");
system("pause");
return(0);
}
Loop infinito
▪ O loop infinito tem o seguinte formato:
▪ for (inicialização; ;incremento) declaração;
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char cont,letra;
for (cont=125;;cont++)
{
printf(" Digite uma letra - <X para sair>\n\n ");
letra= getche();
if (letra == 'x' ||letra == 'X' )
break;

printf("\n\n%d\n\n ",cont);
}
printf("\n\n\n");
system("pause");
return(0);
}
Loop sem conteúdo
▪ É aquele no qual se omite a declaração. Sua forma geral é:
▪ for (inicialização;condição;incremento);
#include <stdio.h>
#include <stdlib.h>

int main ()
{
int i;
printf("OI\n\n");

for (i=0; i<920000000; i++); // Espera 920.000.000 iterações

printf("\a"); // Imprime o beep


printf("OI\n\n");

for (i=0; i<920000000; i++); // Espera 920.000.000 iterações

printf("\a");
system("pause");
return(0);
}
Comando while
▪ A forma geral da estrutura while é:
▪ while (condição) declaração;
▪ A estrutura while testa a condição, se ela for verdadeira então a
declaração é executada.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N=1;

while(N <=10)
{
printf("%d\n", N);
N++;
}

printf("\n\n");
system ("pause");
return (0);
}
Exemplo 2 comando while
#include <stdio.h>
#include <stdlib.h>
int main()
{
int numero=10;

while(numero >= 1)
{
printf("%d\n", numero);
numero--;
}

system("pause");
return 0;

}
Exemplo 3 comando while
#include <stdio.h>
#include <stdlib.h>

int main()
{
char string[50];
int i=0;
printf("Favor digitar uma string \n\n");
gets(string);

while(string[i]!='\0')
i++; // Conta o numero de caracteres da string
printf("A string %s tem %d caracteres\n\n",string,i);

system("pause");
return 0;
}
Comando do while
▪ A sintaxe do comando do_while é o seguinte:
do
{
declaração;
} while (condição);

▪ A estrutura do_while executa a declaração, testa a condição e,


se esta for verdadeira, volta para a declaração. A grande
novidade do comando do_while é que ele, ao contrário while,
garante que a declaração seja executada pelo menos uma vez.

▪ Essa estrutura pode ser aplicada em menus


Exemplo 1 do while
#include <stdio.h>
#include <stdlib.h>

int main()
{

int i=10;
while(i<10)
{
printf("Teste 1\n\n");
i++;
}

do
{
printf("Teste 2\n\n");
i++;
}while(i<10);

system("pause");
return 0;
}
Exemplo 2 do while
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i=0;
do
{
printf("Teste \n\n");
i++;
}while(i<5);

system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h> Exemplo 3 do while
#nclude <conio.h>
int main()
{
char opcao;
int i=0;
do
{
printf("\t\t\nMenu\n");
printf("0. Sair\n");
printf("1. Dar Boas vindas\n");
printf("Opcao: ");
opcao=getche();
printf("\n\n");
for (i=0; i<420000000; i++);

if (opcao=='0')

printf("Saindo do menu...\n\n");

else if(opcao=='1’)
{
system("cls");
printf(" Bem-vindo ao CEFET MG \n\n");

}
else
{
system("cls");
printf("Erro!!! Digite 0 ou 1\n\n");
}
} while(opcao!='0');
system("pause");
return (0);
}
Exercícios
1) Escreva um programa que imprima na tela os números
ímpares de 1 a 101 na ordem inversa (começando em
101 e terminando em 1).
2) Escreva um programa em C que mostre os números
pares compreendidos entre 200 e 1000. Faça 3
programas, cada um utilizando uma das estruturas de
repetição estudadas.
3) Escreva um programa que leia uma string, conte
quantos caracteres desta string são iguais ao caractere
'a' e substitua os caracteres 'a' por 'b’. Ou final o
programa deve imprimir o seguinte relatório: A nova
string é _____ e teve ____ caracteres modificados.
Exercícios
4) Elabore um programa que calcule as raízes de uma equação de
segundo grau. Os coeficientes da equação (a,b e c) devem ser
introduzidos pelo usuário através do teclado. Portanto elabore uma
“tela” dizendo o que o programa faz, os coeficientes que o usuário
deve introduzir e no final do processamento imprima o relatório
final:

A equação 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 NÃO possui raízes reais. OU

A equação 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 possui as seguintes raízes reais: x1 e x2 .

• Para finalizar o programa o usuário deve escolher se quer continuar


ou sair, sugira: Continuar? (S/N) Se o usuário digitar qualquer outra
tecla, o programa não poderá prosseguir. Se a tecla digitada for N o
programa deverá ser finalizado, caso contrário, peça ao usuário para
introduzir os coeficientes a,b e c novamente.
Exercícios
5) Escreva um programa em C que peça ao usuário inserir um
número no intervalo de [1,7] e apresente na tela o nome do
dia da semana correspondente. Utilize o comando switch.
Para finalizar o programa o usuário deve escolher se quer
continuar ou sair, sugira: Continuar? (S/N) Se o usuário digitar
qualquer outra tecla, o programa não poderá prosseguir. Se a
tecla digitada for N o programa deverá ser finalizado, caso
contrário, peça ao usuário para inserir um número no
intervalo de [1,7] novamente e o programa apresentará na
tela o nome do dia da semana novamente.
Exercícios
6) Elabore um programa em C que receba uma string de no máximo
50 caracteres e a escreva na ordem inversa.
7) Elabore um programa em C que receba duas strings e verifique se
elas são iguais. Ao final o programa deve imprimir a seguinte
mensagem: As strings ____ e ____ são iguais/diferentes.
8) Elabore um programa em C que receba o login e senha do usuário
e depois peça para ele confirmar o login e senha cadastrados. Ao
final imprimir: Login e senha XXX (“valido”:”invalido”). Caso o
login ou a senha forem inválidos o programa deve pedir para que
o usuário os reescreva.
9) Crie um programa em C para ler a quantidade de notas de uma
sala e ao final mostrar sua média. A quantidade de notas lidas é
um número entre 1 e 30 o qual será dado pelo usuário.
Exercícios
10) Escreva um programa que lê o tamanho do lado de um
quadrado e imprime um quadrado daquele tamanho com
asteriscos. Seu programa deve funcionar para quadrados
com lados de todos os tamanhos entre 1 e 20. Por exemplo,
para lado igual a 5:
*****
*****
*****
*****
*****
Exercícios
11) Elabore um programa em C que leia quatro palavras pelo
teclado, e armazene cada palavra em uma string.
Imediatamente após a introdução de cada string o programa
emite uma mensagem dizendo o tamanho da string digitada.
Além disso o programa concatena todas as strings lidas
numa única string e apresenta a string concatenada e o seu
tamanho como resultado ao final. Não é permitido usar a
função strcat da biblioteca string.h.
12) Elabore um programa em C que mostre na tela um
cronometro progressivo de 0 a 59s.
13) Faça um programa em C que receba uma string através do
teclado e converta todos os caracteres para maiúsculo.
14) Faça um programa em C que aumente a quantidade de
caracteres de uma string recebida através do teclado
conforme solicitado pelo usuário. Exemplo: String digitada
Casa=>o usuário solicitou que o programa repetisse 3 vezes
cada caractere da string: Casa=> CCCaaasssaaa.
Exercícios
15) Faça um programa em C que mostre o placar do mineirão.
Solicite ao usuário que digite o nome dos times que se
enfrentarão. Após isto o programa exibirá o placar inicial do
jogo da seguinte forma:
Time A ***gols
Time B ***gols
Para atualizar o placar o programa deve seguir a seguinte
ordem:
Tecla a: incrementa os gols do time A
Tecla b: incrementa os gols do time B
Tecla c: decrementa os gols do time A
Tecla d: decrementa os gols do time B
O programa será finalizado quando o usuário pressionar a tecla
ESC.
Exercícios
16) Analise o código a seguir e diga qual será o último valor
impressos das variáveis i e j.

#include<stdio.h>

int main()
{
int i,j;
for(i=0 ,j=2;i<10&&j<20;i++, j+=4)
printf("i = %d j=%d\n\n",i,j);

return 0;
}
Exercícios
17) Faça um programa em C que receba uma string de no
máximo 50 caracteres e troque as letras maiúscula por
minúsculas. Ao final imprimir: a string foi modificada para
___ e teve ___ letras trocados para minúsculas.
Referências

SILVA, Rosângela F. Apostila Introdução ao C. CEFET-MG,


Belo Horizonte

SOUZA, John K S. Apostila Introdução à programação.


CEFET-MG, Belo Horizonte.

http://mtm.ufsc.br/~azeredo/cursoC/aulas/c410.html
acessado em 04/06/14

http://www.inf.pucrs.br/~cnunes/lapro/aulas/condicao_swi
tch.pdf acessado em 04/06/14

Você também pode gostar