Programmation en C
Premier programme - les fonctions
Notions abordées
- Utilisation des fonctions
Description du programme
On crée une fonction simple qui renvoie la somme de deux nombres.main.c
#include <stdio.h> int addition(int a, int b) { return a+b; } int main() { int nb1, nb2; nb1=4; nb2=7; int resultat = addition(nb1, nb2); printf("%i + %i = %i \n", nb1, nb2, resultat); return 0; }Pour compiler le programme, on tape dans le terminal
gcc main.c -o test
En tapant la commande ls, vous devriez voir un exécutable appelé test. Pour l'exécuter on tape:./test
Dans le terminal, on obtient le résultat suivant:4 + 7 = 11
Deuxième programme
Description du programme
On reprend l'exemple précédent mais cette fois-ci on demande à l'utilisateur de rentrer ses propres valeurs.main2.c
#include <stdio.h> int addition(int a, int b) { return a+b; } int main() { int nb1, nb2; printf("Donner un premier nombre : "); scanf("%i", &nb1); printf("Donner un deuxieme nombre : "); scanf("%i", &nb2); int resultat = addition(nb1, nb2); printf("%i + %i = %i \n", nb1, nb2, resultat); return 0; }Pour compiler le programme, on tape dans le terminal
gcc main2.c -o test2
Pour exécuter on tape:./test2
Résultat obtenu:
Donner un premier nombre : 4
Donner un deuxieme nombre : 7
4 + 7 = 11
Troisième programme - Instruction switch/case
Notions abordées
- fonction
- Instruction switch/case
Description du programme
Cette fois-ci on va créer deux fonctions: addition et multiplication. On va laisser le choix à l'utilisateur de choisir l'opération à effectuer. On utilisera pour cela l'instruction switch/case.main3.c
#include <stdio.h> int addition(int a, int b) { return a+b; } int multiplication(int a, int b) { return a*b; } int main() { int nb1, nb2, choix; int resultat; printf("Tapez un choix: \n 1. Addition \n 2. Multiplication\n"); scanf("%i", &choix); printf("Donner un premier nombre : "); scanf("%i", &nb1); printf("Donner un deuxieme nombre : "); scanf("%i", &nb2); switch (choix) { case 1: resultat = addition(nb1, nb2); break; case 2: resultat = multiplication(nb1, nb2); break; } printf("Resultat : %i \n", resultat); return 0; }Compilation
gcc main3.c -o test3
Exécution:./test3
Résultat:
Tapez un choix:
1. Addition
2. Multiplication
2
Donner un premier nombre : 5
Donner un deuxieme nombre : 3
Resultat : 15
Qatrième programme - Pointeurs
Notions abordées
- Passage d'arguments par valeur et par adresse
Description du programme
On crée deux fonctions dans lesquelles on passe une variable comme argument. Dans le premier cas la variable n'est pas modifiée lors de l'appel de la fonction dans le main. Pour que la variable soit modifiée dans le programme principal il faut passer l'adresse de cette variable en argument dans le main et l'on doit utiliser les pointeurs dans la fonction.main4.c
#include <stdio.h> void modif_valeur1(int a) { a=44; } void modif_valeur2(int *a) { *a=44; } int main() { int nb1; int nb2; modif_valeur1(nb1); modif_valeur2(&nb2); printf("Valeur nb1 : %i \n", nb1); printf("Valeur nb2 : %i \n", nb2); return 0; }Compilation et exécution
gcc main4.c -o test4 && ./test4
Résultat:
Valeur nb1 : 4200049
Valeur nb2 : 44
Cinquième programme - les tableaux
Notions abordées
- Création d'un tableau d'entier puis d'un tableau de caractère
- Affichage des éléments d'un tableau avec une boucle for
- Utilisation d'un tableau de caractère afin de simuler un type string
- Utilisation du formateur %s pour afficher une chaîne de caractère dans un printf
Description du programme
On déclare un tableau d'entier et on initialise seulement les deux premiers éléments de ce tableau. On constate que si les éléments du tableau ne sont pas initialisés alors les nombres générés par défaut sont aléatoires. On peut déclarer et initialiser en même temps un tableau, ce que l'on fait avec notre chaîne de caractère.main5.c
#include <stdio.h> void afficher_tab(int tab[4]) { int i; for (i=0;i<4;i++) { printf("tab %i=%i \n", i, tab[i]); } } int main() { int tab[4]; tab[0]=2; tab[1]=42; afficher_tab(tab); char chaine[20]="bonjour"; printf("Chaine : %s \n", chaine); return 0; }Compilation et exécution
gcc main5.c -o test5 && ./test5
Résultat:
tab 0=2
tab 1=42
tab 2=-1078080452
tab 3=4298401
Chaine : bonjour
Sixième programme
Notions abordées
- tableau de caractère
- fonction scanf appliquée à une chaîne de caractère
- fonction strcmp pour comparer deux chaînes de caractère
Description du programme
On demande à l'utilisteur de rentrer son nom. S'il rentre "alexandre", le programme affichera le message "Tu es trop intelligent!!!". Dans le cas contraire il affichera "Tu es un gros cretin".main5.c
#include <stdio.h> #include <string.h> int main() { char nom[20]; printf("Donnez votre nom : "); scanf("%s", nom); if ( strcmp(nom, "alexandre") == 0 ) { printf("Tu es trop intelligent!!! \n"); } else { printf("Tu es un gros cretin \n"); } printf("Votre nom est : %s \n", nom); return 0; }Compilation et exécution
gcc main6.c -o test6 && ./test6
Résultat:
Donnez votre nom : alexandre
Tu es trop intelligent!!!
Votre nom est : alexandre
Donnez votre nom : toto
Tu es un gros cretin
Votre nom est : toto