terça-feira, 30 de agosto de 2016

Operadores aritiméticos de atribuição

Primeiro analise os seguintes comandos abaixo:

int a = 10, b = 20, c = 30, d = 40, e = 50;

        a = a + 7;  ==>  a +=    7;
b = b - 4;  ==>   b -=    4;
        c = c * 5;  ==>   c *=     5;
        d = d / 3;  ==>   d /=     3;
e = e % 9; ==>   e %=   9;

É muito comum quando estamos programando atribuir um determinado valor
a uma variável, aliás, isto é fato, uma variável sem valor pode exibir lixo
na saída, bons compiladores detectam quando uma variável precisa ser inicializada.
Más o que ocorre é que muitas vêzes temos que atribuir o resultado de uma
expressão a uma variável, e se ela já possui um valor será atualizado com o
novo valor da expressão.
O que quero mostrar aqui é uma técnica adotada por C usando uma forma abreviada,
estas abreviações estão do lado direito das atribuições mostrada no exemplo acima.
Estas operações são equivalentes e cabe ao bom programador utilizá-las.
Os operadores +=, -=, *=, /=, e %= chamam-se operadores aritiméticos de atribuição
e o seu uso é fácil e recomendável.

Veja abaixo uma imagem exemplo do programa em execução:


Veja abaixo o código do programa:

#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 <= 16 ) {
         textcolor ( a );
     }
     if ( 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 OPERADORES ARITIMÉTICOS DE ATRIBUIÇÃO" );
     got_color ( 2, 25, 3, 79, 0, 15 );
     textcolor ( LIGHTRED );
     gotoxy ( 22, 3 );
     printf ( "OPERADORES ARITIMÉTICOS DE ATRIBUIÇÃO" );
    int a = 10, b = 20, c = 30, d = 40, e = 50;
     a += 7;
     //a = a + 7 ;
     b -= 4;
     //b = b - 4 ;
     c *= 5;
     //c = c * 5 ;
     d /= 3;
     //d = d / 3 ;
     e %= 9;
     //e = e % 9 ;
     textcolor ( LIGHTBLUE );
     gotoxy ( 12, 5 );
     printf ( "Declaramos as variáveis e atribuímos um valor a cada uma" );
     textcolor ( BLACK );
     gotoxy ( 12, 7 );
     printf ( "int a = 10, b = 20, c = 30, d = 40, e = 50;" );
     textcolor ( LIGHTRED );
     gotoxy ( 12, 9 );
     printf ( "Atribuição normal%19sAtribuição abreviada", " ");//Formatação de saída com printf
     textcolor ( LIGHTBLUE );
     gotoxy ( 12, 11 );
     printf ( "a = a + 7;%14s==>%12sa += 7;", " ", " " );//Formatação de saída com printf
     textcolor ( LIGHTRED );
     printf ( " %d", a );
     textcolor ( LIGHTBLUE );
     gotoxy ( 12, 12 );
     printf ( "b = b - 4;%14s==>%12sb -= 4;", " ", " " );//Formatação de saída com printf
     textcolor ( LIGHTRED );
     printf ( " %d", b );
     textcolor ( LIGHTBLUE );
     gotoxy ( 12, 13 );
     printf ( "c = c * 5;%14s==>%12sc *= 5;", " ", " " );//Formatação de saída com printf
     textcolor ( LIGHTRED );
     printf ( " %d", c );
     textcolor ( LIGHTBLUE );
     gotoxy ( 12, 14 );
     printf ( "d = d / 3;%14s==>%12sd /= 3;", " ", " " );//Formatação de saída com printf
     textcolor ( LIGHTRED );
     printf ( " %d", d );
     textcolor ( LIGHTBLUE );
     gotoxy ( 12, 15 );
     printf ( "e = e %% 9;%14s==>%12se %%= 9;", " ", " " );//Formatação de saída com printf
     textcolor ( LIGHTRED );
     printf ( " %d", e );
     Sleep ( 1800 );
     textcolor ( LIGHTBLUE );
     gotoxy ( 26, 19 );
     printf ( "Por: " );
     textcolor ( LIGHTMAGENTA );
     printf ( "Samuel Lima" );
     textcolor ( BLACK );
     gotoxy ( 26, 20 );
     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.