domingo, 21 de agosto de 2016

Operador lógico OU

Em primeiro momento é bom não confundir o operador lógico OU ( || ) do C
com o operador OU bit a bit.
Este operador OU do qual estou falando testa duas expressões
Booleanas ( 0 ou 1 ) cujo os resultados são verdadeiro ou falso.
Já o operador OU bit a bit é muito usado para manipulação de bits.
Na verdade o operador OU (||) parece ser menos rigoroso que o operador E (&&)
Usando o operador E as duas condições tem que ser verdadeiras para que seja
executado os seus comandos em seu corpo.
Já o operador OU  precisa que apenas uma de suas condições seja verdadeira
para que os comandos em seu corpo seja executado.
Se ambas condições forem falsas nada é executado no seu bloco de comando,
e o programa segue seu curso normal chamando o que vem pela frente.
Para mostrar como isto acontece criei este exemplo prático e funcional.

Veja abaixo imagens do programa em execução:



Veja abaixo o código do programa em execução:

#include <stdio.h>
#include <conio.h>
void got_color ( int tam_lin_ini, int tam_lin_fim, int tam_ini_col,
         int tam_fim_col, int a, int b ) {
     int i, c;
     if ( a >= 1 && a <= 16 ) {
         textcolor ( a );
     }
     if ( b >= 1 && b <= 16 ) {
         textbackground ( b );
     }
     for ( i = tam_lin_ini; i < tam_lin_fim; i++ ) {
         for ( c = tam_ini_col; c < tam_fim_col; c++ ) {
              gotoxy ( c, i );
              printf ( " " );
         }
     }
}
int main ( ) {
     system ( "title OPERADOR LÓGICO OU" );
     got_color ( 2, 25, 3, 79, 9, 15 );
     int dia, mes;
     textcolor ( LIGHTRED );
     gotoxy ( 33, 3 );
     printf ( "OPERADOR LÓGICO OU" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 5 );
     printf ( "Digite o mês do seu nascimento: " );
     textcolor ( LIGHTRED );
     scanf ( "%d", &mes );
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 7 );
     printf ( "Digite a data do seu nascimento: " );
     textcolor ( LIGHTRED );
     scanf ( "%d", &dia );
     if ( ( mes == 1 ) || ( dia <= 21 ) ) {
         textcolor ( LIGHTBLUE );
         gotoxy ( 30, 9 );
         printf ( "Seu sígno é capricórnio" );
         Sleep ( 1800 );
         textcolor ( BLACK );
         gotoxy ( 30, 11 );
         printf ( "Bom verão capricorniano" );
     } else {
         textcolor ( LIGHTBLUE );
         gotoxy ( 30, 9 );
         printf ( "Duas condições falsas" );
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 26, 14 );
     Sleep ( 1800 );
     printf ( "Por: " );
     textcolor ( LIGHTMAGENTA );
     printf ( "Samuel Lima" );
     textcolor ( BLACK );
     gotoxy ( 26, 15 );
     printf ( "sa_sp10@hotmail.com" );
     Sleep ( 1800 );
     textcolor ( LIGHTRED );
     gotoxy ( 37, 23 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
}




Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.