Tomar Decisões.
Autor: Alexandre Richard | Publicado: 2013-05-01T18:08:00-07:00


Tomar Decisões.

Todas as linguagens de computador oferecem algum tipo de capacidade de tomada de decisão. Em C++ isso é tratado pela declaração if.

O formato da declaração if é direto. Ex:



if (m &gt; n) // Se m é maior do que n...

{

&nbsp;&nbsp; //Aqui o codigo....

}



Ao encontrar if, C++ executa a expressão logica contida nos parenteses. Caso a expressão condicional se m for maior que n. Se verdadeiro, o comando é passado para o codigo entre as chaves. Quando a expressão deixa de ser verdadeira, e passa a falsa, o controle passa para a próxima linha após o fechamento das chaves.



Vamos ver os operadores de comparação e seu significado.



= =&nbsp; Igualdade. Verdade se o argumento do lado esquerdo&nbsp; tiver o mesmo valor que a expressão do lado direito. 

!=&nbsp;&nbsp; Desigualdade. Oposto de igualdade.

&gt; &nbsp;&nbsp; Maior que. Verdadeiro se o argumento do lado esquerdo for maior que o do lado direito direito.

&lt;&nbsp;&nbsp;&nbsp; Menor que. Verdade se o argumento do lado esquerdo for menor que o do lado direito.

&gt;=&nbsp; Maior que ou igual a. Verdadeiro se o argumento esquerdo esquerdo for maior ou igual ao direito.

&lt;=&nbsp; Menor ou igual a. Verdade se o argumento esquerdo for menor ou igual ao direito.



#Dica. Não confunda o operador de igualdade = = com o de designação =.

Vamos ver os operadores em um programa.

------------------------------------------------------------------------------------------------------------


#include&lt;cstdio&gt;
#include&lt;cstdlib&gt;
#include&lt;iostream&gt;

using namespace std;

int main (int nNumberofArgs, char* pszArgs[])
{
&nbsp; &nbsp; //Entrando com o operador1 e operador2
&nbsp; &nbsp; int nOperador1;
&nbsp; &nbsp; int nOperador2;
&nbsp; &nbsp; cout &lt;&lt; "\nEntre com o argumento 1: ";
&nbsp; &nbsp; cin &gt;&gt; nOperador1;
&nbsp; 
&nbsp; &nbsp; cout &lt;&lt; "\nEntre com o argumento 2: ";
&nbsp; &nbsp; cin &gt;&gt; nOperador2;
&nbsp; 
&nbsp; 
&nbsp; &nbsp; //Agora, imprimindo os resultados
&nbsp; &nbsp; if (nOperador1 &gt; nOperador2 )
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; cout &lt;&lt; "\nO argumento 1 e maior do que o argumento 2." &lt;&lt; endl;
&nbsp; &nbsp; }
&nbsp; &nbsp; if (nOperador1 &lt; nOperador2)
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; cout &lt;&lt; "\nO argumento 2 e maior do que o argumento 1." &lt;&lt; endl;
&nbsp; &nbsp; }
&nbsp; &nbsp; if (nOperador1 == nOperador2)
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; cout &lt;&lt; "\nOs argumentos sao iguais." &lt;&lt; endl;
&nbsp; &nbsp; }
system("pause");
return 0;
}
------------------------------------------------------------------------------------------------------------

O programa declara duas variáveis int chamadas nOperador1 e nOperador2.
Após solicitar ao usuário que digite os argumentos, o programa executa três comparações:

Se nOperador1 é maior do que nOperador2
Se nOperador1 é menor do que nOperador2

Se nOperador1 é igual a nOperador2

Feita a comparação o programa exibe o resultado.
Mesmo não sendo necessário utilizar as chaves {} quando temos apenas uma declaração if, o uso é recomendado para evitar qq tipo de erro. #Ficaadica.

Podemos usar também a clausua else (caso contrário, se não) a expressão entre as chaves após o else serão será executada, caso a expressão condicional seja falsa. Ex:

if (m &gt; n)
{
&nbsp;//Aqui vai o código...
}
else
{
//Aqui vai o comando que deve ser executado caso a expressão seja falsa...
}
Vale lembrar que a cláusula else deve aparecer imediatamente após a chave de fechamento do if.

As chaves da cláusula if ou else podem conter &nbsp;uma outra declaração if. Desta forma, teremos uma declaração if alinhada ou nested. Vamos ver um programa:

------------------------------------------------------------------------------------------------------------


#include&lt;cstdio&gt;
#include&lt;cstdlib&gt;
#include&lt;iostream&gt; 


using namespace std;

int main (int nNumberofArgs, char* pszArgs[])
{
&nbsp;//Digite o dia de seu aniversario
&nbsp;int nAno;
&nbsp;cout &lt;&lt; "\nDigite em que nasceu. ";
&nbsp;cin &gt;&gt; nAno;

&nbsp;//Agora, vamos determinar o século
&nbsp;if (nAno &gt; 2000)
&nbsp;{
&nbsp; cout &lt;&lt; "\nVc nasceu no seculo 21" &lt;&lt; endl;
&nbsp;}
&nbsp;else
&nbsp;{
&nbsp; cout &lt;&lt; "Vc nasceu ";
&nbsp; if (nAno &lt; 1950)
&nbsp; {
&nbsp; &nbsp;cout &lt;&lt; "na primeira metade do seculo ";
&nbsp; }
&nbsp; else
&nbsp; {
&nbsp; &nbsp;cout &lt;&lt; "na segunda metade do seculo ";
&nbsp; }
&nbsp; cout &lt;&lt; "21" &lt;&lt; endl;
&nbsp;}

system("pause");
return 0;
}
------------------------------------------------------------------------------------------------------------
Para praticar, vc pode utilizar if alinhado no programa operador1 e operador2. #Valeapratica.
#Dica. Não é necessário o teste de igualdade. Se o operador1 não for menor ou maior que operador2, então ele deve ser igual.


Expressões condicionais compostas.

Os três operadores lógicos que podem ser usados para criar expressões condicionais compostas são:

&amp;&amp; AND (e) Verdadeiro, se o argumento do lado esquerdo e direito forem verdadeiros, do contrário, falso.

|| OR (ou) Verdadeiro, se qq dos argumentos, da esquerda ou da direita forem verdadeiros, do contrário, falso.

! NOT (não) Verdadeiro, se o argumento da direita for falso, do contrário, falso.

Numa expressão condicional composta, o programador esta fazendo uma ou mais perguntas, veja o exemplo no trecho de código:

if (m &lt; nArgumento &amp;&amp; nArgumento &lt; 5)

Este teste não inclui as extremidades, isto é, este teste falhará se nArgumento for igual a m ou n. Use o operador de comparação &lt;= se vc quiser incluir extremidades.