Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

Atalhos com símbolos matemáticos em C: += , -=, *=, /= e %=

Essa é uma das lições mais simples e rápida, tanto dessa seção sobre conhecimentos básicos da linguagem de programação C, como do curso C Progressivo inteiro.

Vamos aprender atalhos, maneiras mais rápidas e eficientes de escrever as operações matemáticas em C que você aprendeu no artigo passado de nossa apostila online de C.

Um dos artifícios mais usados pelos programadores C, que parece um pouco estranho na primeira vez que vemos, são umas abreviações usadas para descrever as operações matemáticas envolvendo uma mesma variável.

Vamos ver, em detalhes, cada uma dessas abreviações.

Fazendo contas com o valor antigo da variável

Suponhamos que declaramos uma variável inteira de nome teste e inicializamos ela com o valor 0:
int teste = 0;

Agora vamos fazer com que essa variável tenha valor 1:
teste = 1;

Agora vamos fazer com que seu valor seja aumentado em 2:
teste = 3;

Agora vamos fazer com que seu valor seja aumentado em 2, novamente:
teste = 5;

Simples, não? Até aqui, nada demais.
Mas tem uma coisa que você não deve ter notado: foi necessário que você, programador, fizesse as contas.

"Mas peraí! Um computador é uma máquina que computa, ou seja, ela serve para contar e eu é que tenho que fazer os cálculos?"

Se quisermos adicionar 1 vao valor inicial da variável, é melhor fazermos:
teste = teste + 1;

Ou seja, a variável teste vai receber um novo valor. Que valor é esse?
É o valor 'teste + 1', onde esse 'teste' é o valor anterior.

Ou seja, antes teste=0,
Depois de: teste = teste + 1 , a variável será 'teste=1'.
É como se tivéssemos feito: teste = 0 + 1 = 1

Agora vamos adicionar 2 unidades ao valor de 'teste':
teste = teste + 2;

Como 'teste', anteriormente, era 1, agora 'teste' recebe valor 3:
teste = teste + 2 = 1 + 2 = 3;

E como fazemos para adicionar 3 unidades ao valor de 'teste'?
Fácil: teste = teste + 3;

Ou seja, estamos adicionando unidades, sem se importa e sem se estressar com o valor anterior da variável.

O mesmo é para subtração, multiplicação, divisão e resto inteiro da divisão. Suponhamos que queiramos fazer uma operação com a variável 'x', podemos fazer:
x = x + 2;
x = x - 1;
x = x * 2;
x = x / 2;
x = x % 3;




Agora vamos para os atalhos!

Atalhos matemáticos: += , -= , *= , /= e %=


+=

Em vez de escrever:
x = x + 2;

Podemos escrever:
x += 2;


-=

Em vez de escrever:
x = x - 1;

Podemos escrever:
x -= 1;


*=

Em vez de escrever:
x = x * 2;

Podemos escrever:
x *= 2;


/=

Em vez de escrever:
x = x / 2;

Podemos escrever:
x /= 2;


%=

Em vez de escrever:
x = x % 2;

Podemos escrever:
x %= 2;


Como podem ver, são notações e atalhos simples, mas extremamente úteis e usadas em nosso curso online e gratuito C Progressivo.

10 comentários:

Beto Silva disse...

Esses 'atalhos matemáticos', na minha opinião, deixa o código mais difícil pra quem vai ler.

No mais, valeu por compartilhar. To adorando o curso!!

Unknown disse...

Show de bola, to gostando muito e aprendendo muito também! Obrigado galera!!!

Vinícius Beruski disse...

Excelentes artigos nesse site, mas fiquei confuso com uma coisa. Como o operador módulo é computado nessas linhas de código? Eu estarei definido o valor do resto da divisão?

Vinícius Beruski disse...

Site muito bom, mas fiquei confuso, com o operador módulo nessas operações, estarei definindo o resto da divisão? Como o computador computa essa linha de código?

Marcela Wadjaya disse...

Vinicius Beruski você pode interpretar assim: " A variável x recebe o valor do resto da divisão dela mesma, o x, por 2"

x = x % 2 - o simbolo %, significa resto da divisão ou módulo como vemos em outras linguagens. Salvo engano em Pascal chama-se módulo.

Tiago disse...

Fiz um exemplo talvez sirva para alguém que não entendeu

#include

// atalhos p simbolos matemáticos em c: +=,-=.*=,/= e %=

int main()
{
int xSom=1,xSub=10,xMult=2,xDiv=10,xRest=10;

xSom=xSom+= 1;
xSub=xSub-= 1;
xMult=xMult*= 2;
xDiv=xDiv/= 2;
xRest=xRest%= 3;

printf("xSom eh 1+1= %d\n", xSom);
printf("xSub eh 10-1= %d\n", xSub);
printf("xMult eh 2*2= %d\n", xMult);
printf("xDiv eh 10/2= %d\n", xDiv);
printf("xRest eh 10/3=3 sobra %d\n", xRest);

return 0;
}

Adrianoag16 disse...

Adorando o curso. Valeu mesmo.

Unknown disse...

Não acho que os atalhos dificultam a compreensão do código. É só ter em mente os operadores aritméticos (+ - * / %).

Para se lembrar facilmente dos atalhos é só pensar em qual dos 5 operadores que você quer utilizar e logo em seguida colocar o sinal de atribuição "=" seguido pelo número ou variável que você deseja calcular.

x = 5;
y = 1;
x += y; //é soma, então basta colocar o sinal de soma e o de atribuição em seguida +=

(x = x + y | x = 5 + 1). Muito simples.

Unknown disse...

Ok, foi compreendido.
Mas porque quanto coloco isto no código ele não calcula e me da um valor exato ?

Unknown disse...
Este comentário foi removido por um administrador do blog.