Estes operadores são tão comuns que as vêzes até esquecemos que são operadores aritiméticos.
Para incrementar o valor de uma variável primeiro ela é declarada depois atribuímos à
variável o valor + 1, veja abaixo:
int a;
a = a + 1;
Más esta prática pode ser resumida já que temos uma abreviação simples pra isto,
que é utilizando o operador de incremento ++, veja abaixo:
a++;//Este é o operador de incremento de sufixo de C.
++a;//Este é o operador de incremento de prefixo de C.
Estes dois comandos acima incrementam a variável a por 1.
Só que temos que observar o modo como o C trata estes operadores de incremento
sufixo e prefixo, não são do mesmo modo.
Quando estamos usando o operador de incremento de sufixo, O C por padrão, usa
primeiro o valor da variável, em seguida vem a operação de incremento.
E quando estamos usando o operador de incremento de prefixo, o valor da variável
é incrementado primeiro, depois que vem o uso da variável.
Quando estamos programando, em algumas situações ocorre a necessidade de retirarmos
uma unidade de um determinado valor, e isto é perfeitamente possível usando o
operador de Decremento de C.
Para decrementar o valor de uma variável primeiro ela é declarada depois diminuímos à
variável o valor - 1, veja abaixo:
int a;
a = a - 1;
Más esta prática pode ser resumida já que temos uma abreviação simples pra isto,
que é utilizando o operador de decremento --, veja abaixo:
a--;//Este é o operador de Decremento de sufixo de C.
--a;//Este é o operador de Decremento de prefixo de C.
Estes dois comandos acima decrementam a variável a em menos 1.
Temos que observar o modo como o C trata estes operadores de decremento
sufixo e prefixo, não são do mesmo modo.
Quando estamos usando o operador de decremento de sufixo, O C por padrão, usa
primeiro o valor da variável, em seguida vem a operação de decremento.
E quando estamos usando o operador de decremento de prefixo, o valor da variável
é decrementado primeiro, depois que vem o uso da variável.
Para mostrar como funciona os operadores aritiméticos de incremento e decremento,
de sufixo criei este programa, que conta o número de ciclo dentro de um laço while();
No primeiro bloco a variável x é inicializada em zero, más a cada entrada dentro do
laço while(); é incrementada em 1 até que seu valor se iguale a macro tam.
No segundo bloco, à cada entrada dentro do laço while(); a variável x que é
inicializada pela macro tam é decrementada em 1, começando pelo valor da macro
e indo até 0 de onde vem a saída do programa.
Esta cadeia de ifs(); utilizadas nos dois blocos servem para posicionar junto com
gotoxy(); as impressões na tela do dos.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <conio.h>
#define tam 9
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 - INCREMENTO E DECREMENTO DE SUFIXO" );
got_color ( 2, 25, 3, 79, 0, 15 );
int i, x;
textcolor ( LIGHTRED );
gotoxy ( 12, 3 );
printf ( "OPERADORES
ARITIMÉTICOS - INCREMENTO E DECREMENTO DE SUFIXO" );
textcolor ( LIGHTBLUE );
gotoxy ( 22, 5 );
printf ( "INCREMENTO" );
x = 0;
for ( i = 0; i < tam; i++ ) {
do {
x++;
textcolor ( LIGHTRED );
if ( x == 1 )
gotoxy ( 23, 7 );
if ( x == 2 )
gotoxy ( 23, 8 );
if ( x == 3 )
gotoxy ( 23, 9 );
if ( x == 4 )
gotoxy ( 23, 10 );
if ( x == 5 )
gotoxy ( 23, 11 );
if ( x == 6 )
gotoxy ( 23, 12 );
if ( x == 7 )
gotoxy ( 23, 13 );
if ( x == 8 )
gotoxy ( 23, 14 );
if ( x == 9 )
gotoxy ( 23, 15 );
printf ( "%dº", x + 0 );
textcolor ( BLACK );
printf ( " Ciclo" );
getche ( );
break;
} while ( 1 );
}
textcolor ( LIGHTBLUE );
gotoxy ( 49, 5 );
printf ( "DECREMENTO" );
x = tam;
for ( i = 0; i < tam; i++ ) {
do {
x--;
textcolor ( LIGHTRED );
if ( x == 0 )
gotoxy ( 50, 15 );
if ( x == 1 )
gotoxy ( 50, 14 );
if ( x == 2 )
gotoxy ( 50, 13 );
if ( x == 3 )
gotoxy ( 50, 12 );
if ( x == 4 )
gotoxy ( 50, 11 );
if ( x == 5 )
gotoxy ( 50, 10 );
if ( x == 6 )
gotoxy ( 50, 9 );
if ( x == 7 )
gotoxy ( 50, 8 );
if ( x == 8 )
gotoxy ( 50, 7 );
if ( x == 9 )
gotoxy ( 50, 6 );
printf ( "%dº", x + 1 );
textcolor ( BLACK );
printf ( " Ciclo" );
getche ( );
if ( x == 0 ) {
textcolor ( LIGHTBLUE );
gotoxy ( 31, 17 );
printf ( "Imprimido
corretamente" );
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 ( );
}
break;
} while ( 1 );
}
return 0;
}