quarta-feira, 4 de novembro de 2009

'Abreviações' (Economizando os dedos rsrs !!!)

No post anterior, terminamos a nossa série sobre os comandos de decisão, e vimos um operador que é uma forma abreviada dos comandos if/else. Hoje, como prometido, veremos outras 'abreviações' usadas pelo C.

Abreviar... Para facilitar ou complicar???
Até agora vimos códigos pequenos, com no máximo 50 linhas, ou nem isto. Imagine, se tivéssemos que fazer um código de umas 1000 linhas, repleto de comandos.
Um bom programador, geralmente, é um bom digitador. Mas isto, na maioria das vezes não é verdade. A verdade é que é muito cansativo digitar várias vezes as mesmas palavras.
Hoje com o uso de Messenger, Google Talk, e afins, é cada vez mais normal o uso de abreviações.
Existem alguns comandos no C que são muito comuns e que, para evitar a repetida digitação deles (e economizar os dedos do programador), foram abreviados.
O nome técnico para essas 'abreviações' já é conhecido. São os operadores (lembra do operador de decisão?). Já vimos os lógicos, os relacionais, o de módulo e o de atribuição. Hoje veremos os matemáticos.
Vejamos um código fonte onde eles aparecem, depois vamos conhecê-los um a um.


//EXEMPLOS DE ABREVIAÇÕES DO C
#include <stdio.h>
#include <stdlib.h>
 
int main(){
   int num1=0, num2, num3, total=0;
 
   num1++;
   num3 = num1--;
   num2 = ++num3;
   num2 *= 10;
   total += (++num1 + --num2);
   printf("O valor final da variaveis eh num1: %d num2: %d num3: %d total: %d\n",num1, num2, num3, total);
   system("pause");
}


A 1º operador que nos chama a atenção está na linha 8. Este é um dos mais comuns, senão o mais comum, do C. É o operador de incremento.

 num1++;

Incrementar é aumentar.
O comando da linha 8 incrementa o valor da variável num1; que passa de 0 (zero) para 1 (um). E tem o mesmo efeito do comando abaixo:

 num1 = num1 + 1;

Outro detalhe importante sobre este operador é que ele pode fazer um pré-incremento ou um pós-incremento (hein???).
Observe a linha 10. Este operador aparece novamente. Só que dessa vez ele aparece antes do nome da variável num3. Além disto, existe um comando de atribuição na linha 10. Parece complicado, mas é bem simples. Vamos entender.
O valor da variável num3 é incrementado antes de ser atribuido à variável num2; ou seja, o valor de num3 que era 1, é incrementado, e passa a ser 2 e, este novo valor é atribuido à variável num2. Repare que o valor de num3 é incrementado antes de ser atribuído. Isto é um pré-incremento.
Se o comando da linha 10 fosse:

 num2 = num3++;

O valor da variável num3 seria atribuido à variável num2, e depois este valor de num3 seria incrementado. No caso, num2 receberia o valor de num3 que era 1, e depois o valor de num3 passaria a ser 2. Isto é um pós-incremento.
Se o operador só alterar a variável, como na linha 8, tanto faz ser um pré-incremento ou um pós-incremento, porque o valor final da variável será o anterior incrementado. Mas se a variável alterada pelo operador de incremento estiver em uma expressão , ou atribuição (como na linha 10), esta posição altera totalmente o valor final da expressão ou atribuição, como já vimos.

Na linha 9 vemos o oposto do operador de incremento, o operador de decremento.

 num3 = num1--;

Decrementar, ao contrário de incrementar, é diminuir.
Este operador, como o de incremento, também pode realizar um pré-decremento ou um pós-decremento. Neste caso, é realizado um pós-decremento. O valor de num1 (1) é atribuído à variável num3, depois é decrementado, passando a ser 0.

Na linha 11 vemos um operador de totalização.

 num2 *= 10;

Ele é chamado assim porque atribui à variável a qual está associado o resultado (total) da operação indicada neste operador entre o valor da variável e o outro valor informado (que pode ser inclusive o valor de outra variável).
Neste caso, a variável num2 recebe o valor de num2 multiplicado por 10. Sendo assim, o valor de num2 (2) é multiplicado por 10 e, é atribuido a num2, que passa agora a ter o valor 20.
Observe que foi realizada uma multiplicação (*=), mas poderia ter sido uma soma (+=), subtração (-=), divisão (/=) ou módulo (%=).
Na linha 12, é realizada uma soma.
Não irei explicar o que acontece na linha 12, afinal, não existe nada de novo nela.

Agora que já conhecemos 'as abreviações' (operadores), podemos ver onde eles são usados com muita frequencia: os comandos de repetição.

Um comentário:

  1. Muito bom, ajudou! obrigado por postar, aprender essas coisas é meio confuso haha mas os posts ajudam bastante.

    ResponderExcluir