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.