Buscar

ALGORITMOS - aula_7

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

AULA 7 – Prof. LUIZ DI MARCELLO
*
ALGORITMOS – AULA 7
Prof. LUIZ DI MARCELLO
Rio de Janeiro, 31 de Maio de 2011
AULA 7 – Prof. LUIZ DI MARCELLO
*
AULA 7 – Você precisa saber decidir: para, enquanto ou faca...enquanto?
OBJETIVOS
Construir algoritmos usando a estrutura de repetição enquanto, ou a estrutura de repetição faca...enquanto, além dos comandos/operadores/funções aprendidos nas aulas anteriores. 
Explicar por que alguns algoritmos usam a estrutura de repetição do enquanto, ou a estrutura de repetição do faca... enquanto, ao invés da estrutura de repetição para. 
Codificar algoritmos na linguagem C++ , usando todos os comandos aprendidos até a aula 7. 
Usar o Teste de Mesa para acompanhar seus algoritmos com a estrutura de repetição do enquanto, ou do faca...enquanto.
AULA 7 – Prof. LUIZ DI MARCELLO
*
Vamos fazer um programa que leia as opções de um menu:
1- INCLUIR
2- EXCLUIR
3- CONSULTAR
9- SAIR
PRECISAREMOS DE:
 Uma variável inteira para receber a opção
 Um comando para ler a variável opcao
 Um loop que ficará em execução enquanto a variável opcao for diferente de 9
 Uma seleção múltipla para executar o que cada opção indica
QUAL ESTRUTURA DE REPETIÇÃO USAR?
AULA 7 – Prof. LUIZ DI MARCELLO
*
int main ()
{
 int opcao;
 cout << " MENU\n";
 cout << " 1-INCLUIR\n";
 cout << " 2-EXLUIR\n";
 cout << " 3-CONSULTAR\n";
 cout << " 9-SAIR\n";
 cin >> opcao;
 
switch (opcao)
{
 case 1: cout << "VAI INCLUIR\n";
 break;
 case 2: cout << "VAI EXCLUIR\n";
 break;
 case 3: cout << "VAI CONSULTAR\n";
 break;
 case 9: break;
 default: cout << "OPCAO INVALIDA\n";
 } 
 system ("pause");
}
O BÁSICO NÃO MUDA:
AULA 7 – Prof. LUIZ DI MARCELLO
*
int main ()
{
 int opcao;
 cout << " MENU\n";
 cout << " 1-INCLUIR\n";
 cout << " 2-EXLUIR\n";
 cout << " 3-CONSULTAR\n";
 cout << " 9-SAIR\n";
 cin >> opcao;
 
switch (opcao)
{
 case 1: cout << "VAI INCLUIR\n";
 break;
 case 2: cout << "VAI EXCLUIR\n";
 break;
 case 3: cout << "VAI CONSULTAR\n";
 break;
 case 9: break;
 default: cout << "OPCAO INVALIDA\n";
 } 
 system ("pause");
}
O BÁSICO NÃO MUDA:
MAS A CADA EXECUÇÃO O PROGRAMA PARA...
E, ENTÃO, QUAL ESTRUTURA DE REPETIÇÃO USAR PARA QUE ISSO NÃO ACONTEÇA ???
AULA 7 – Prof. LUIZ DI MARCELLO
*
int main ()
{
 int opcao;
 for ( opcao = 1; opcao !=9 ; )
 {
 cout << "MENU\n";
 cout << " 1-INCLUIR\n";
 cout << " 2-EXLUIR\n";
 cout << “ 3-CONSULTAR\n";
 cout << “ 9-SAIR\n";
 cin >> opcao;
 
 switch(opcao){
 case 1: cout << "VAI INCLUIR\n";
 break;
 case 2: cout << "VAI EXCLUIR\n";
 break;
 case 3: cout << "VAI CONSULTAR\n";
 break;
 case 9: break;
 default: cout << "OPCAO INVALIDA\n";
 } 
 }
 system ("pause");
}
QUE TAL UTILIZARMOS O “for”...
AULA 7 – Prof. LUIZ DI MARCELLO
*
int main ()
{
 int opcao;
 opcao = 1;
 while (opcao !=9)
 {
 cout << "MENU\n";
 cout << " 1-INCLUIR\n";
 cout << " 2-EXLUIR\n";
 cout << “ 3-CONSULTAR\n";
 cout << “ 9-SAIR\n";
 cin >> opcao;
 
 switch(opcao){
 case 1: cout << "VAI INCLUIR\n";
 break;
 case 2: cout << "VAI EXCLUIR\n";
 break;
 case 3: cout << "VAI CONSULTAR\n";
 break;
 case 9: break;
 default: cout << "OPCAO INVALIDA\n";
 } 
 }
 system ("pause");
}
QUE TAL UTILIZARMOS O “while”...
AULA 7 – Prof. LUIZ DI MARCELLO
*
int main ()
{
 int opcao;
 do
 {
 cout << "MENU\n";
 cout << " 1-INCLUIR\n";
 cout << " 2-EXLUIR\n";
 cout << “ 3-CONSULTAR\n";
 cout << “ 9-SAIR\n";
 cin >> opcao;
 
 switch(opcao){
 case 1: cout << "VAI INCLUIR\n";
 break;
 case 2: cout << "VAI EXCLUIR\n";
 break;
 case 3: cout << "VAI CONSULTAR\n";
 break;
 case 9: break;
 default: cout << "OPCAO INVALIDA\n";
 } 
 }
 while (opcao !=9);
 system ("pause");
}
OU, ENTÃO, PODEMOS UTILIZAR O “do...while”...
AULA 7 – Prof. LUIZ DI MARCELLO
*
Calcular o fatorial de um número n
int main ()
{
 int fat;
 int n,i;
 fat=1;
 cout << "Numero: ";
 cin >> n;
 for (i = n; i> 0; i--)
 fat = fat * i;
 cout << n <<"! = " << fat << "\n";
}
UM PROBLEMA PARA O “for”
AULA 7 – Prof. LUIZ DI MARCELLO
*
for ( ; ; )		 loop infinito
for ( ; x>0; )	 x é inicializado antes do for e 			seu valor é alterado dentro do 			bloco
for ( x=0; x< 10; )  o valor de x é alterado 				 dentro do bloco
for ( x=0; x < 1000; x++); 	 “temporizador”
CASOS PARTICULARES DO “for”
AULA 7 – Prof. LUIZ DI MARCELLO
*
Dado o saldo inicial, permitir compras enquanto o saldo for positivo
int main ()
{
 float saldo, 
 compra;
 compra=0;
 cout << "Saldo: ";
 cin >> saldo;
 
 while (saldo > 0) 
 {
 cout << "Valor da compra: ";
 cin >> compra;
 if (compra > saldo)
 cout << "Compra nao aprovada\n";
 saldo = saldo-compra;
 }
 cout << "saldo final R$ “;
 cout << saldo + compra<< "\n";
}
UM PROBLEMA PARA O “while”
AULA 7 – Prof. LUIZ DI MARCELLO
*
while (1)		 loop infinito
while (x)		 permance em execução 				enquanto x for diferente de 0 ou 			de NULL
while ( x == 1); 	 loop infinito também
while ( x = 1); 	 outro loop infinito
CASOS PARTICULARES DO “while”
AULA 7 – Prof. LUIZ DI MARCELLO
*
Adivinhar um número entre 0 e 100 gerado aleatoriamente
int main ()
{
 int n,resp,vezes;
 srand( time( 0 ) ); 
 n = 1 + rand() % 100;
 vezes=0;
 
 do {
 cout << "Numero: ";
 cin >> resp;
 if (n > resp) cout << "Maior\n";
 if (n < resp) cout << "Menor\n";
 vezes++;
 } while (n != resp);
 cout << "Acertou com "<< vezes ;
 cout << " tentativa\n";
}
UM PROBLEMA PARA O “do...while”
AULA 7 – Prof. LUIZ DI MARCELLO
*
do ... while (1);		 loop infinito
do ... while (x);		 permance em execução 				enquanto x for diferente de 0 				ou de NULL
do ... while ( x == 1) ; 	 o valor de x pode ser 				alterado no bloco. OK.
do ... while ( x = 1) ; 	 loop infinito; será 					 sempre verdadeiro
CASOS PARTICULARES DO “do...while”
AULA 7 – Prof. LUIZ DI MARCELLO
*
1. Se você souber quantas vezes vai repetir um ou mais comandos quando estiver construindo um algoritmo, qual seria a estrutura mais simples para ser usada?
1) Estrutura do while. 2) Estrutura do for. 3) Estrutura do do ... while. 
2. Qualquer uma das três estruturas de repetição, na linguagem C++, pode simular qualquer outra estrutura.
1) Verdade. 2) Falso.  
3. Qualquer que seja o exercício com um número de repetições desconhecido, é indiferente o uso da estrutura do while quanto ou  a do do...while.
1) Verdade. 2) Falso. 
 
REGISTRO DE FREQUÊNCIA
AULA 7 – Prof. LUIZ DI MARCELLO
*
1. Se você souber quantas vezes vai repetir um ou mais comandos quando estiver construindo um algoritmo, qual seria a estrutura mais simples para ser usada?
1) Estrutura do while. 2) Estrutura do for. 3) Estrutura do do ... while. 
2. Qualquer uma das três estruturas de repetição, na linguagem C++, pode simular qualquer outra estrutura.
1) Verdade. 2) Falso.  
3. Qualquer que seja o exercício com um número de repetições desconhecido, é indiferente o uso da estrutura do while quanto ou  a do do...while.
1) Verdade. 2) Falso. 
 
REGISTRO DE FREQUÊNCIA
AULA 7 – Prof. LUIZ DI MARCELLO
*
1. Se você souber quantas vezes vai repetir um ou mais comandos quando estiver construindo um algoritmo, qual seria a estrutura mais simples para ser usada?
1) Estrutura do while. 2) Estrutura do for. 3) Estrutura do do ... while. 
2. Qualquer uma das três estruturas de repetição, na linguagem C++, pode simular qualquer outra estrutura.
1) Verdade. 2) Falso.  
3. Qualquer que seja o exercício com um número de repetições desconhecido, é indiferente o uso da estrutura do while quanto ou  a do do...while.
1) Verdade.
2) Falso. 
 
REGISTRO DE FREQUÊNCIA
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais