170 likes | 264 Views
Introdução a Programação Estruturas de repetição (cont.) Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica Py e Deise Saccol. Lógica de programação. ENQUANTO ... REPETIR. Formato : Enquanto <operação lógica> repetir <ações>
E N D
Introdução a Programação Estruturas de repetição (cont.) Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica Py e Deise Saccol
Lógica de programação ENQUANTO ... REPETIR ... • Formato: Enquanto <operação lógica> repetir <ações> • Significado: A <operação lógica> é testada. Se for verdadeira, então executar <ações> e em seguida testar novamente a operação lógica. Este ciclo prossegue até que em algum teste a operação lógica resulte em falso. • Nesta estrutura temos novamente, assim como nas estruturas de decisão, uma operação lógica determinando se devemos continuar a repetir (resultado V) ou parar de repetir (resultado F) as ações. • Devemos garantir que o dado testado na operação lógica tenha seu valor modificado por alguma das ações repetidas, senão nunca teremos um resultado F no teste e a repetição permanecerá num ciclo infinito (loop)!
Lógica de programação Exemplo da estrutura ENQUANTO...REPETIR: Ler números pelo teclado e mostrar o maior número lido (encerrar quando for lido o número 0) Pseudocódigo: Início MAIOR = 0(MAIOR por enquanto é o menor valor possível) N = 1(só para o 1.o teste funcionar...) Enquanto (N <> 0) repetir Ler N(aqui o valor de N muda, é a entrada do usuário) Se (N > MAIOR) então MAIOR = N Mostrar MAIOR(isto só executa quando o enquanto terminar) Fim
Lógica de programação • Fluxograma: INÍCIO MAIOR = 0 Na estrutura ENQUANTO...REPE-TIR, veja que o teste é feito no início do ciclo. N = 1 N < > 0 Sim Ler N Não N > MAIOR Não MAIOR Sim MAIOR = N FIM
Exercício • Faça um algoritmo para mostrar os 30 primeiros números ímpares
Exemplos de solução • c=1 • impar=1 3. Enquanto c<=30 repetir 3.1 se impar mod 2 = 1 (é um número ímpar) 3.1.1 então mostrar impar 3.1.2 c=c+1 3.2 impar=impar+1 1. I=0 2. Enquanto I<30 repetir 2.1 I=I+1 2.2 impar=I*2-1 2.3 mostrar impar • I=0 • Impar=1 • 3. EnquantoI<30 repetir • 3.1 impar=impar+2 • 3.2 mostrarimpar • 3.3 I=I+1
Exercício • Faça um algoritmo para calcular e escrever o valor de S:
Exemplo de solução 1. Início • S=0 • I=1 3. Enquanto I<=50 repetir 3.1 S=S+(I*2-1)/I 3.2 I=I+1 4. Mostrar S 5. Fim
Exercício • Faça um algoritmo que encontre o primeiro número inteiro que elevado ao quadrado seja maior que este número multiplicado por 5.
Exemplo de solução 1. início 2. I=1 3. enquanto I*I <=I*5 repetir 3.1 I=I+1 4. mostrar I 5. fim
Estrutura de repetição • Comando while while (condição) comando; while (condição) { comando1; comando2; comando3; }
Comando while while (condição) comando1; Não esquecer dos parênteses O comando1 será executado enquanto a condição for verdadeira O programador deve cuidar para que a condição fique falsa em algum momento, do contrário o programa fica indefinidamente repetindo o comando1.
Exercício Fazer um programa que leia números pelo teclado e mostre o maior número lido. Encerrar quando for lido o número 0. #include <stdio.h> #include <stdlib.h> main(){ int N,maior; maior=0; // o menor número possivel N = 1; // N tem que ter um valor inicial while (N != 0) { scanf("%d",&N); if (N>maior) maior=N; } printf("o maior valor digitado e': %d", maior); system("pause"); }
Cuidado!!! • Não esqueça de dar valores iniciais para a(s) variável(eis) da condição, pois do contrário não se sabe o seu valor Exemplo: Exemplo de Saída: #include <stdio.h> #include <stdlib.h> main(){ int a,b,c; printf("a= %d \nb= %d\nc= %d\n", a,b,c); system("pause"); } a= 1977932551 b= 2293576 c= 2 Press any key to continue . . .
Lembre-se!!! Não se esqueça de alterar o valor da variável da condição dentro do laço de repetição do comando while Exemplo: saída (loop infinito): I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 I= 0 #include <stdio.h> #include <stdlib.h> main(){ int I=0; while (I<5) printf("I= %d\n",I); system("pause"); }
Exercícios • Faça um programa para mostrar os 30 primeiros números ímpares • Faça um programa para calcular e escrever o valor de S: • Faça um programa que mstre o primeiro número inteiro que elevado ao quadrado seja maior que este número multiplicado por 5. • Faça um programa para calcular os 20 primeiros termos da série de Fibonacci