Mudanças entre as edições de "MCO018703 2018 1 AULA06"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
Linha 1: Linha 1:
 +
==O comando ''while()'': teste da repetição no começo ==
  
 +
 +
;O comando '''while''' tem a seguinte forma geral
 +
 +
while (condição) declaração;
 +
 +
ou
 +
 +
while (condição)
 +
{
 +
  declaração1;
 +
  declaração2;
 +
}
 +
 +
 +
Podemos ver que a estrutura ''while'' testa uma condição. Se esta for verdadeira<br>
 +
a declaração é executada e faz-se o teste novamente, e assim por diante.<br>
 +
 +
O comando ''while'' permite implementar ''loops'' com controle no início:
 +
 +
<syntaxhighlight lang=c>
 +
#include <stdio.h>
 +
main()
 +
{
 +
  int contador;
 +
 
 +
  contador=0;
 +
  while (contador<5) { 
 +
    printf("valor do contador =  %d\n", contador);
 +
    contador=contador+1;
 +
  }
 +
}
 +
</syntaxhighlight>
 +
 +
 +
Variação do exemplo anterior:
 +
 +
<syntaxhighlight lang=c>
 +
#include <stdio.h>
 +
main()
 +
{
 +
  int contador;
 +
 +
  contador=0;
 +
  while (contador<5) { 
 +
printf("valor da expressão =  contador < 5 é %d\n", contador<5); 
 +
        printf("valor do contador =  %d\n", contador);
 +
        contador=contador+1;
 +
  }
 +
  printf("NO FINAL a expressão  contador < 5 é %d\n", contador<5);
 +
}
 +
</syntaxhighlight>
 +
 +
 +
Vamos ver a correspondência do comando ''while'' com um fluxograma:
 +
 +
{| border="1" cellpadding="5" cellspacing="0"
 +
! style="background: #FFD700;" | Fluxograma
 +
! style="background: #FFD700;" | C
 +
! style="background: #FFD700;" | Comentário
 +
|-
 +
| |[[imagem:fluxo5.jpg|200px]]
 +
||<syntaxhighlight lang=c>while(contador<5) {
 +
  printf("Entre com x\n");
 +
  scanf("%f",&x);
 +
  soma=soma+x;
 +
  contador = contador + 1;
 +
}</syntaxhighlight>|| O comando ''while()'' aplicado sobre um bloco de instruções.<br>Note que se for uma instrução simples,<br>as chaves podem ser omitidas.
 +
|}
 +
 +
'''NOTE''' que no exemplo anterior o contador inicialmente DEVE conter um valor válido.
 +
 +
==Comando ''do while'': controle do ''loop'' no final==
 +
 +
;O comando ''do while'' tem a seguinte forma geral
 +
 +
do {
 +
    declaração1;
 +
    declaração2;
 +
} while (condição);
 +
 +
Nesta variação o comando ''do while()'' permite a repetição de uma ou mais instruções, com controle do ''loop'' no final.<br>
 +
Isto permite que o bloco seja executado pelo menos uma vez.
 +
 +
<syntaxhighlight lang=c>
 +
#include <stdio.h>
 +
main()
 +
{
 +
  int contador;
 +
 
 +
  contador=0;
 +
  do { 
 +
    printf("valor do contador =  %d\n", contador);
 +
    contador=contador+1;
 +
  } while (contador<5);
 +
}
 +
</syntaxhighlight>
 +
 +
 
 +
{| border="1" cellpadding="5" cellspacing="0"
 +
! style="background: #FFD700;" | Fluxograma
 +
! style="background: #FFD700;" | C
 +
! style="background: #FFD700;" | Comentário
 +
|-
 +
| |[[imagem:fluxoDoWhile-Eraldo.jpg|200px]]
 +
||<syntaxhighlight lang=c>
 +
contador = 0;
 +
do {
 +
        scanf("%d",&x);
 +
        soma=soma+x;
 +
        if (soma>150)
 +
          y=z+x;
 +
        contador++;
 +
} while(contador<5);
 +
</syntaxhighlight>|| Note que instruções ''while'' e ''if'' são tratadas como instruções normais<br>
 +
que podem ser aninhadas normalmente em outros comandos.
 +
|}
 +
 +
=Loop Infinito=
 +
 +
É possível implementar loops infinitos com qualquer uma das instruções acima.
 +
 +
Exemplo com comando ''while'':
 +
 +
<syntaxhighlight lang=c>
 +
main()
 +
{
 +
  while(1) {
 +
        /* Este bloco se executará infinitamente */
 +
  }
 +
}
 +
</syntaxhighlight>
 +
 +
 +
=Exercícios=
 +
 +
#Elabore um programa que lê um número inteiro e imprime todos os números pares entre 0 e este número.
 +
#Elabore um programa que lê um número inteiro e imprime todos os números impares entre 1 e este número.
 +
#Elabore um programa que lê um número inteiros relativos a quantos elementos que computar da sequecia fibonacci, em que o segundo elemento é sempre a soma dos dos primeiros, por exemplo: (1+0=1, 1+1=2, 2+1=3, 2+3=5, 3+5=8, =5+8=13, 8+13=21 e assim por diante). Lembre que os dois primeiros elementos considerados são 1).
  
  

Edição das 19h03min de 5 de março de 2018

O comando while(): teste da repetição no começo

O comando while tem a seguinte forma geral
while (condição) declaração;

ou

while (condição)
{
  declaração1;
  declaração2;
}


Podemos ver que a estrutura while testa uma condição. Se esta for verdadeira
a declaração é executada e faz-se o teste novamente, e assim por diante.

O comando while permite implementar loops com controle no início:

#include <stdio.h>
main() 
{
  int contador;
  
  contador=0;
  while (contador<5) {  
     printf("valor do contador =  %d\n", contador);
     contador=contador+1;
  }
}


Variação do exemplo anterior:

#include <stdio.h>
main() 
{
  int contador;
 
  contador=0;
  while (contador<5) {  
	 printf("valor da expressão =  contador < 5 é %d\n", contador<5);  
         printf("valor do contador =  %d\n", contador);
         contador=contador+1;
  }
  printf("NO FINAL a expressão  contador < 5 é %d\n", contador<5);
}


Vamos ver a correspondência do comando while com um fluxograma:

Fluxograma C Comentário
Fluxo5.jpg
while(contador<5) {
   printf("Entre com x\n");
   scanf("%f",&x);
   soma=soma+x;
   contador = contador + 1;
}
O comando while() aplicado sobre um bloco de instruções.
Note que se for uma instrução simples,
as chaves podem ser omitidas.

NOTE que no exemplo anterior o contador inicialmente DEVE conter um valor válido.

Comando do while: controle do loop no final

O comando do while tem a seguinte forma geral
do {
   declaração1;
   declaração2;
} while (condição);

Nesta variação o comando do while() permite a repetição de uma ou mais instruções, com controle do loop no final.
Isto permite que o bloco seja executado pelo menos uma vez.

#include <stdio.h>
main() 
{
  int contador;
  
  contador=0;
  do {  
     printf("valor do contador =  %d\n", contador);
     contador=contador+1;
  } while (contador<5);
}


Fluxograma C Comentário
FluxoDoWhile-Eraldo.jpg
contador = 0;
do {
        scanf("%d",&x);
        soma=soma+x;
        if (soma>150) 
           y=z+x;
        contador++;
} while(contador<5);
Note que instruções while e if são tratadas como instruções normais

que podem ser aninhadas normalmente em outros comandos.

Loop Infinito

É possível implementar loops infinitos com qualquer uma das instruções acima.

Exemplo com comando while:

main()
{
   while(1) {
        /* Este bloco se executará infinitamente */
   }
}


Exercícios

  1. Elabore um programa que lê um número inteiro e imprime todos os números pares entre 0 e este número.
  2. Elabore um programa que lê um número inteiro e imprime todos os números impares entre 1 e este número.
  3. Elabore um programa que lê um número inteiros relativos a quantos elementos que computar da sequecia fibonacci, em que o segundo elemento é sempre a soma dos dos primeiros, por exemplo: (1+0=1, 1+1=2, 2+1=3, 2+3=5, 3+5=8, =5+8=13, 8+13=21 e assim por diante). Lembre que os dois primeiros elementos considerados são 1).



Icone voltar.png Icone menu.png Icone prox.png