Buscar

Comando de Seleção Composto

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

*
Comando de Seleção Composto
Os problemas abordados podiam ser resolvidos utilizando apenas um comando de seleção. Eram problemas que se limitavam a teste de apenas duas alternativas.
 Foi o caso de testar se um número é par ou ímpar
Em problemas mais complexos é necessário fazer testes com mais de duas alternativas. 
Neste caso, precisaremos utilizar mais de um comando de seleção, até testarmos todas as condições possíveis exigidas para a solução do problema.
*
Vejamos o caso da análise de um valor, para sabermos se esse valor é positivo, nulo ou negativo. 
Neste caso, temos três alternativas para testar. Para isto teremos que utilizar pelo menos dois comandos de seleção. Uma possível solução seria:
*
If (<expressão de condição 1 >)
	{
	 ........//comandos		
	}
else if(<expressão de condição 2 >)
	{
	 ........//comandos		
	}
else
	{
	 ........//comandos		
	}
*
A solução a seguir é possível implementar com o nosso conhecimento até agora. Entretanto, ela é inadequada
#include <iostream>
using namespace std;
int main ()
{ 
 int valor;
 cout << "digite o valor \n";
 cin >> valor;
 if (valor >0 ) {
 cout << "o valor eh positivo \n"; 
 }
 if (valor <0){
 cout << "o valor eh negativo \n"; 
 } 
 if (valor=0) {
 cout << "o valor eh nulo\n"; 
 }
system("PAUSE");
 return 0;
}
*
A solução anterior funciona, porém de forma não muito eficiente. 
Observe que, em caso do número ser positivo, o primeiro comando de seleção ativaria o comando de saída com a mensagem 'Valor lido eh positivo', mas mesmo assim o programa continuaria testando as outras duas condições (N=0 e N<0), considerando-se que os próximos comandos de seleção estão em sequência. 
Teríamos então execução de instruções desnecessárias, o que comprometeria a performance do programa. 
Em programas simples como esse, o problema não seria tão crítico. Porém em programas com grandes volumes de processamento, a estrutura utilizada causaria certamente ineficiência na execução.
*
Para resolver esse problema, o ideal é utilizarmos os comandos de seleção na forma endentada, em que a condição falsa de um primeiro teste implicaria em testar uma nova condição, e assim sucessivamente.
*
#include <iostream>
using namespace std;
int main ()
{ 
 int valor;
 cout << "digite o valor \n";
 cin >> valor;
 if (valor >0 ) {
 cout << "o valor eh positivo \n"; 
 }
 else if (valor <0){
 cout << "o valor eh negativo \n"; 
 } 
 else {
 cout << "o valor eh nulo\n"; 
 }
 
 system("PAUSE");
 return 0;
}
*
Observe que neste caso precisamos utilizar apenas dois comandos de seleção, pois a negação de que N é nulo implica que ele é negativo, desde que a condição de N positivo foi descartada no primeiro comando de seleção 
*
Mais um Exemplo Programa para obter a soma, diferença, produto ou quociente de dois valores lidos: 
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

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

Continue navegando