Calculatrice
Le processeur est excellent pour effectuer des calculs : dans ce chapitre nous allons demander à celui-ci d’effectuer les principaux calculs mathématiques dont il est capable et afficherons le résultat de ceux-ci.
Pour afficher des nombres sur une console nous allons utiliser la fonction
printf.
On peut afficher un nombre ainsi
#include <stdio.h>
main()
{
printf(
"Le résultat de %d + %d est %d\n",
2, 2, 2+2
);
}
La fonction printf prend en premier paramètre une chaine de
caractères et va les parcourir un par un. Si elle rencontre
le caractère %, elle le remplacera par l’argument qui suit dans les arguments de la fonction, dans l’ordre. Le nombre d’arguments fournis doit
correspodre au nombre de % à l’intérieur de la chaine. Le d qui suit % est le format dans lequel on souhaite voir l’argument s’afficher. Il est possible de l’afficher au format octal avec %o, hexadecimal avec %x, et décimal avec %d. Au final le programme affiche « Le résultat de 2 + 2 est 4 ».
\n est un caractère spécial interprété par la console comme
un retour à la ligne (new line).
Les 5 opérateurs arithmétiques pour les nombres entiers du C sont + pour l’addition, le - pour la soustraction, le * (astérisque) pour la multiplication, la barre oblique / pour la division entière et le pourcentage % pour le reste de la division entière.
Voici un programme qui utilise ces cinq opérateurs
#include <stdio.h>
main()
{
printf(
"%d, %d, %d, %d, %d\n",
1+1,
1-2,
4*4,
5/2,
5%2
);
}
Affiche 2, -1, 16, 2, 1.
Nombres décimaux
Un nombre décimal ou à “virgule flottante” s’écrit ainsi 1.0, le point sert de séparateur décimal.
Les opération sur les nombres à virgule sont effectués dans
une partie différente du processeur et ont lieu si un des opérandes
dúne opération est un nombre à virgule – si besoin láutre opérande est converti en nombre à virgule. Pour afficher un nombre à virgule avec printf, il faut utiliser le formatteur %f. Les opérateurs arithmétiques autorisés avec les nombres à virgule sont +, -, * et / (sans %).
#include <stdio.h>
main()
{
printf(
"%f, %f, %f, %f\n",
1.5 + 3,
1. - 2,
3.0 / 2,
2. * 5,
);
}
Affiche 4.50000, -1.00000, 1.50000, 10.00000.
Si un des opérandes est un nombre à virgule, l’autre sera converti en nombre à virgule et le résultat sera un nombre à virgule. Si les deux opérandes sont des nombres entiers, le résultat sera un nombre entier.
Si la partie décimale est nulle, elle est optionelle : on peut écrire 1.0 et 1., 0.5 et .5, 0.0, 0. et .0 mais pas ..
Si on veut limiter le nombre de chiffres affichés après la virgule on peut utiliser le formatteur %.2f : printf("%.2f", 1.5); affiche 1.50. Le 2 dans %.2f est le nombre de chiffres que l’on souhaite.