Le C est réputé pour être le langage le plus complet qui soit. La difficulté par rapport au pascal est qu'il existe plusieurs solutions pour arriver au même résultat.
Voici la structure générale d'un programme en C.
Plusieurs choses à remarquer :
- Les fonctions peuvent être prédéfinies dans un fichier .h. Ce fichier est déclaré en début de programme, soit entre <>, soit entre "". La plupart du temps, ces fichiers ne seront pas écrits par vous : ce sont des librairies de fonctions comme par exemple les fonctions mathématiques ("math.h") qui contiendront la définition des fonctions sinus, cosinus, ...
- Le fichier "stdio.h" est le fichier des fonctions standard d'entées/sorties (standard input-output), donc les fonctions comme lire (scanf) et écrire (printf) en algorithmique. Il est presque toujours présent dans tous les programmes, et de toute façon, ça ne peut faire aucun mal de le mettre.
- La partie début programme et fin programme est traduite par main ( ) { } ("main" signifie "principal"). C'est le coeur du programme. En fait, tous les début et fin de l'algorithmique sont remplacés par { et } en C.
- Toutes les instructions sont suivies d'un point-virgule.
- Il n'y a pas de partie déclaration de variables très marquée comme en algo ou en pascal. Elles sont généralement placées en début de programme principal (ou de fonction) pour plus de lisibilité.
- Il y a deux façons d'écrires les commentaires :
/* commentaire */
// tout ce qui suit sur cette ligne est en commentaire.
Les fonctions
Chaque fois qu'il y a { } dans une fonction, vous n'êtes pas obligé de le mettre si le contenu est une seule instruction. Cependant, mettez-le, et vous ne vous tromperez jamais...
Les variables et constantes
Types de variable les plus courants :
Entiers int i, j;
Reels float taux, racine_x;
Booléens bool possible, sortir;
Caractères char choix;
Réel double double exponentielle;
Chaîne (ici de longueur 20) char nom [20];
Pour donner une valeur à une variable ( équivalent de "=" en algorithmique, appelé instruction d'affectation ), on utilise l'opérateur "=" qui se lit "prend pour valeur".
Exemple : a = 10; /* a prend pour valeur 10 */
Instructions Lire et Ecrire
L'intruction printf ( ) écrit à l'écran ce qu'il y a entre parenthèses.
L'instruction scanf ( ) prend ce qui est entré au clavier et le met dans la variable qui suit le caractère "&" et qui signifie "adresse de" (om met la valeur à l'adresse de la variable) .
Pour mettre un retour à la ligne, il faut rajouer \n à la fin des guillemets.
%d fait appel à un entier, mais il faut mettre le type de la variable que l'on veut lire ou écrire.
%d int
%x int (en hexadécimal)
%c char
%f double
%e double (ecriture scientifique)
%s char[]
Instruction Si - Alors - Sinon - Fin Si
Les { } ne sont pas obligatoire si il n'y a qu'une seule instruction.
La partie else n'est pas non plus obligatoire si on ne fait rien lorsque la condition est fausse.
Le type Booléen : les conditions
Les tableaux et les vecteurs
On aura un tableau de 10 sur 10 rempli d'entiers et qui s'appelera montableau.
Un tel tableau peut-être pratique pour programmer une bataille navale...
La définition de type
La boucle Pour
les mots { } ne sont pas nécessaire si il n'y a qu'une instruction.
compteur++ équivaut à l'instruction compteur = compteur + 1.
Si vous voulez compter dans l'ordre décroissant, vous pouvez faire compteur-- à la place de compteur++...
La boucle Tant Que
La boucle Répéter - Jusqu'à
Contrairement aux autres boucles, celle si ne nécessite pas { }, quelque soit le nombre d'instructions...
La structure Selon
Ici, l'instruction break fait sortir de la structure switch. Ainsi, si vous ne mettez pas break, il regarde les autres cas, et s'ils correspondent à la valeur de la variable, ils sont éxécutés.
Cette propriété peut quelquefois être pratique et explique qu'il n'y a pas de { } dans chaque cas.
Fonctions et Procédures
Pour la fonction x_carre, au début de la ligne, il y a "double", cela veut dire que la fonction renvoie un réel double. Il faut spécifié le type de variable que renvoie la fonction (ou le type de la fonction...).
Une procédure est simplement une fonction qui ne renvoie rien (void).