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.
- Leia esse conteúdo Offline: Apostila C Progressivo
Fazendo contas com o valor antigo da variável
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:
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!!
Show de bola, to gostando muito e aprendendo muito também! Obrigado galera!!!
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?
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?
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.
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;
}
Adorando o curso. Valeu mesmo.
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.
Ok, foi compreendido.
Mas porque quanto coloco isto no código ele não calcula e me da um valor exato ?
Postar um comentário