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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '=Objetivo= *Aprender sobre o comando de repetição ''while'' controlado por condição; *Saber usar o comando ''while'' e ''do while''. =Introdução= Nesta sessão vamos est...')
 
Linha 4: Linha 4:
 
*Saber usar o comando ''while'' e ''do while''.
 
*Saber usar o comando ''while'' e ''do while''.
  
=Introdução=
+
=while( )=
  
Nesta sessão vamos estudar sobre o comando ''while'' e ''do while''. Nesta estrutura de repetição, o bloco de instruções é executado no mínimo uma vez, já que a condição que controla o laço pode ser testada no início ou no final do comando. A diferença entre o comando ''while'' e o ''do while'' é justamente o local onde a condição que controla o laço é testada. No comando ''while'' a condição é testada antes do bloco de instruções, e caso a condição seja falsa a repetição não será executada. No ''do while'' o bloco de comandos é executado pelo menos uma vez de forma obrigatória, independente do resultado da expressão lógica. [1]
+
Uma das operações mais frequentes que os programas executam é repetir um grupo de instruções até que uma condição inicialmente verdadeira se torne falsa. É para isso que serve o comando '''while'''. A sua sintaxe é a seguinte:
 
 
==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="color:white;background: #1E90FF;" | Fluxograma
 
! style="color:white;background: #1E90FF;" | C
 
! style="color:white;background: #1E90FF;" | 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="color:white;background: #1E90FF;" | Fluxograma
 
! style="color:white;background: #1E90FF;" | C
 
! style="color:white;background: #1E90FF;" | 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>
 
<syntaxhighlight lang=c>
main()
+
while (expressão) {
{
+
      bloco de instruções;   
  while(1) {
 
        /* Este bloco se executará infinitamente */
 
  }
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
O bloco de instruções será executado enquanto o parâmetro expressão for verdadeiro. A Figura 1 mostra o comando '''while''' e '''do while'''.
  
=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 16h23min de 14 de agosto de 2018

Objetivo

  • Aprender sobre o comando de repetição while controlado por condição;
  • Saber usar o comando while e do while.

while( )

Uma das operações mais frequentes que os programas executam é repetir um grupo de instruções até que uma condição inicialmente verdadeira se torne falsa. É para isso que serve o comando while. A sua sintaxe é a seguinte:

while (expressão) {
       bloco de instruções;     
}

O bloco de instruções será executado enquanto o parâmetro expressão for verdadeiro. A Figura 1 mostra o comando while e do while.



Referências

[1] http://linguagemc.com.br/comando-do-while/



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