Buscar

6Alg1

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 4 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

Algoritmos e Programação I 
Aula 6 – Notas de aula 
Estrutura de Repetição: comandos while e do while 
- Estrutura de Repetição (continuação) 
Este material contém notas de aula sobre os comandos de repetição while e do while. 
while 
- comando while permite implementar laços de repetição, ou seja, definir trechos do código de 
um programa que se repetem. É conhecido como comando enquanto. 
- neste comando, um bloco de instruções é executado repetidamente enquanto uma condição 
for verdadeira. A condição é testada antes da primeira execução do bloco de instruções. 
- é necessário definir o valor inicial da variável contadora, antes do comando while iniciar. 
- o incremento ou decremento da variável contadora deve ser feito dentro das instruções do 
laço de repetição while 
- facilita a implementação de laços com número de execuções indefinido. 
while(condição){ 
bloco de instruções; 
 } 
 
 
- enquanto a condição for verdadeira, o bloco de instruções é executado. Quando a 
condição for falsa,o laço de repetição não será executado, ou seja, a execução é desviada 
para o final. Se a condição já for falsa no momento do primeiro teste, o bloco nem chega a se 
executado e o algoritmo continua a execução na instrução seguinte ao fim do while. 
Exemplo: 
//Cálculo da média de notas da turma em uma avaliação 
#include<stdio.h> 
main(){ 
 int i, n; 
 float media=0, nota; 
 printf("Calculo da media de notas da turma em uma avaliacao \n\n"); 
 printf("Quantos alunos realizaram a avaliacao? "); 
 scanf("%d", &n); 
 
 i=1; 
 while(i<=n){ 
 printf("Digite a nota do aluno %d: ", i); 
 scanf("%f", &nota); 
 media += nota; 
 i++; 
 } 
 media = media/n; 
 printf("\nA media final da turma eh %.2f\n", media); 
 getch(); 
} 
 
 
do while 
- comando do while permite implementar laços de repetição, ou seja, definir trechos do 
código de um programa que se repetem. É conhecido como comando faça enquanto ou 
repita até. 
do{ 
bloco de instruções; 
} while(condição); 
 
- neste comando, um bloco de instruções é executado SEMPRE pelo menos 1 vez, até que a 
condição seja verdadeira. Isto acontece porque a condição é testada no final do laço de 
repetição (após a execução do bloco de instruções). 
- enquanto a condição for verdadeira, a execução volta para a execução no inicio do bloco 
(após o do) e o bloco de instruções volta a ser executado. Quando a condição for falsa, a 
execução do laço de iterações para de acontecer e a execução do algoritmo na próxima 
instrução após o teste da condição: while(condição); 
 
Exemplo: 
//Cálculo da média de notas da turma em uma avaliação 
#include<stdio.h> 
main(){ 
 int i, n; 
 float media=0, nota; 
 printf("Calculo da media de notas da turma em uma avaliacao \n\n"); 
 printf("Quantos alunos realizaram a avaliacao? "); 
 scanf("%d", &n); 
 
 i=1; 
 do{ 
 printf("Digite a nota do aluno %d: ", i); 
 scanf("%f", &nota); 
 media += nota; 
 i++; 
 }while(i<=n); 
 media = media/n; 
 printf("\nA media final da turma eh %.2f\n", media); 
 getch(); 
} 
Exercícios: 
1) Somar uma sequencia de números digitados, enquanto estes são diferentes de zero. 
Faça duas versões do algoritmo, uma com o comando while e outra com o comando 
do-while. 
#include<stdio.h> 
main(){ 
 float soma=0, n=1; 
 
 while(n!=0){ 
 printf("Digite um número: "); 
 scanf("%f", &n); 
 soma += n; 
 }; 
 printf("\nSomatorio = %.2f\n", soma); 
 getch(); 
} 
 
 
#include<stdio.h> 
main(){ 
 float soma=0, n; 
 do{ 
 printf("Digite um número: "); 
 scanf("%f", &n); 
 soma += n; 
 }while(n!=0); 
 printf("\nSomatorio = %.2f\n", soma); 
 getch(); 
} 
 
2) Escreva um programa em C que conte a quantidade de números pares e ímpares 
digitados por um usuário. Para encerrar o programa, o usuário digitará o número zero. 
#include <stdio.h> 
int main(void) { 
 int i, par=0, impar=0; 
 printf("Para encerrar a digitação, digite o numero 0\n"); 
 scanf ("%d", &i); 
 while (i!=0){ 
 if (i%2==0) par++; 
 else impar++; 
 scanf ("%d", &i); 
 } 
 printf("Voce digitou %d numero(s) par(es)\n", par); 
 printf("Voce digitou %d numero(s) impar(es)\n", impar); 
 getch(); 
 return 0; 
 } 
3) Um número é primo se ele somente for divisível por 1 e por ele mesmo. Faça um 
programa que mostra se um número digitado é primo. 
#include<stdio.h> 
main(void){ 
 int i, a, flag=1; 
 
 printf("Digite um número:\n"); 
 scanf("%d", &a); 
 
 for(i=2;i<a;i++){ 
 if(a%i==0) flag = 0; 
 } 
 if (flag==1) printf("É primo\n"); 
 else printf("Não é primo\n"); 
 getch(); 
} 
#include<stdio.h> 
main(void){ 
 int i, a=1, flag=1; 
 printf("Para sair do programa, digite 0 ou um 
numero negativo.\n"); 
 printf("Digite um numero:\n"); 
 scanf("%d", &a); 
 
 while(a>0){ 
 for(i=2;i<a;i++){ 
 if(a%i==0) flag = 0; 
 } 
 if (flag==1) printf("%d eh primo\n", a); 
 else printf("%d nao eh primo\n", a); 
 flag=1; 
 printf("Digite um numero:\n"); 
 scanf("%d", &a); 
 
 }; 
 printf("Saiu do laco de repeticao... fim do 
algoritmo.\n"); 
 getch(); 
} 
 
4) Teste os exemplos abaixo, verificando o que faz cada instrução do programa: 
#include <stdio.h> 
 void main(void) { 
 int i=3; 
 while(1) { 
 i--; 
 if (!i) break; 
 } 
 } 
#include <stdio.h> 
 void main(void) { 
 int i; 
 do { 
 scanf ("%d", &i); 
 printf ("foi 
digitado o numero %d\n", i); 
 } while(i); 
 } 
#include <stdio.h> 
 void main(void) { 
 int i; 
 scanf ("%d", &i); 
 while (i){ 
 printf ("foi digitado o 
numero %d\n", i); 
 scanf ("%d", &i); 
 } 
 } 
 
Leituras e exercícios: 
EVARISTO, Jaime. Aprendendo a programar programando na linguagem C. Maceió: Vivali, 
2007. 
SCHILDT, Herbert. C completo e total. São Paulo: Makron Books, 1997. 
CORMEN, Thomas H et al. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002.

Outros materiais