Calculatrice
La principale du processeur est d’effectuer des calculs séquentiellement. Le C permet de séquencer et d’ordonner ces calculs à la vitesse maximale de travail que peut fournir ce processeur.
Dans ce chapitre nous allons demander à celui-ci d’effectuer des calculs et afficherons le résultat de ceux-ci.
Pour afficher un nombre à l’écran nous allons utiliser la fonction
printf
et sa capacité d’afficher des nombres.
On peut afficher un nombre ainsi
#include <stdio.h>
main()
{
printf(
"Le résultat de %d + %d est %d",
2, 2, 2+2
);
}
La fonction printf
parcourt la chaine de caractères qu’on lui passe en paramètre et remplace chaque occurence de %
qu’elle rencontre par l’argument qui suit dans les arguments de la fonction, dans l’ordre. Cette fonction accepte théoriquement un nombre infini d’arguments, mais ce nombre doit correspondre au nombre de %
à l’intérieur de la chaine. Le d
qui suit %
est le format dans lequel on souhaite voir le nombre. 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
».
Les 5 opérateurs 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.
Voici un programme qui utilise ces cinq opérateurs
#include <stdio.h>
main()
{
printf(
"%d, %d, %d, %d, %d",
1+1,
1-2,
4*4,
5/2,
5%2
);
}
Affiche 2, -1, 16, 2, 1
.
Il n’existe pas d’opérateur ‘puissance’, pour cela il faut utiliser la librairie math
et travailler avec des nombres à virgule flottante.
Nombres décimaux
Un nombre décimal ou à “virgule flottante” s’écrit ainsi 1.0
, le point sert de séparateur décimal.
Le C effectue une opération à virgule si un des opérateurs est un 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 %
).
La librairie mathématique est volumineuse et par défaut gcc ne l’inclut pas dans l’exécutable, pour ce faire il faut ajouter -lm
à la commande de compilation : de la sorte gcc programme.c -lm
.
#include <stdio.h>
#include <math.h>
main()
{
printf(
"%f, %f, %f, %f, %f",
1.5 + 3,
1. - 2,
3.0 / 2,
2. * 5,
pow(2, 2)
);
}
Affiche 4.50000, -1.00000, 1.50000, 10.00000, 4.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.