Baixe o app para aproveitar ainda mais
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: * * * * * * * * *
Compartilhar