Académique Documents
Professionnel Documents
Culture Documents
TP 2 Mon Premier Programme
TP 2 Mon Premier Programme
Commencez par écrire le programme en vous servant d’un éditeur (gedit, par
exemple). Donnez-lui le nom hello.c et recopiez-y le texte suivant
Pour le compiler, tapez gcc –Wall hello.c : ceci (gcc) compile le programme
hello.c et génère (si pas d’erreurs) un exécutable appelé par défaut a.out.
Pour exécuter votre programme (exécutable), tapez ./a.out. –Wall indique au
compilateur qu’il affiche tous les warnings-avertissements.
Si vous souhaitez donner un autre nom à l’exécutable, vous pouvez le mentionner
à la suite de l’option –o : gcc –Wall hello.c –o prog1, générera un exécutable
de nom prog1 dont l’exécution se fait en tapant ./prog1.
Pour compiler (ce "projet"), il faut taper gcc –Wall hello.c affiche.c –o
prog1 et on obtient l’exécutable prog1 qu’on peut exécuter comme
précédemment et obtenir le même résultat.
elle indique que produit est construit à partir de source et que c’est commande
qui permet de le réaliser.
Nos 3 commandes précédentes peuvent être décrites par les relations suivantes :
hello.o : hello.c
gcc -Wall –c hello.c
affiche.o : affiche.c
gcc –Wall –c affiche.c
CC= gcc
CFLAGS= -Wall
objets= hello.o affiche.o
prog1 : $(objets)
$(CC) $(CFLAGS) $(objets) -o $@
hello.o : hello.c
$(CC) $(CFLAGS) -o $@ -c $<
affiche.o : affiche.c
gcc $(CFLAGS) -o $@ -c $<
Les entrées et les sorties standards (depuis le clavier et vers le terminal) peuvent
être réalisées respectivement avec les instructions suivantes :
int printf(const char *format, ...);
int scanf(const char *format, ...);
Exemples :
printf("Bonjour !") ; affichera sur la console le texte "Bonjour !" (sans les "),
printf("La valeur de var est %d", var) ; idem que précédemment mais le %d
sera remplacé par la valeur de var (supposée être une variable entière),
scanf("%d", &var) ; attend que l’utilisateur introduise une donnée (ici supposée
être entière) puis la stocke dans la variable var.
Exercice 5
5.1. Écrire le code C dans une méthode main qui permet d’afficher des carrés et des
triangles de taille n (entier introduit par l’utilisateur). Dans les exemples ci-dessous,
n = 4.
**** *
**** **
**** ***
**** ****
Carré de taille 4 Triangle de taille 4
Proposez également une solution itérative (boucle for, par exemple), si vous savez
le faire.
5.2. Écrire un programme qui permet de permuter les valeurs de deux variables entières.
Les 2 valeurs seront demandées à l’utilisateur.
Exemple : soient deux variables a et b avec chacune sa propre valeur initiale. À la fin
de l’exécution du programme, a doit avoir la valeur initiale de b et b doit avoir la valeur
initiale de a.
5.3. Écrire un programme qui permet de permuter les valeurs de trois variables entières.
Les 3 valeurs seront demandées à l’utilisateur.
Exemple : soient trois variables a, b et c avec chacune sa propre valeur initiale. À la
fin de l’exécution du programme, a doit avoir la valeur initiale de b, b doit avoir la
valeur initiale de c et c doit avoir la valeur initiale de a.
5.4. Écrire un programme qui calcule la surface et le volume d’un parallélépipède rectangle
à partir des valeurs de longueur, largeur et hauteur saisies par l’utilisateur.
Rappel : La surface d’un parallélépipède rectangle est égale à la somme des surfaces
de ses six faces. Son volume est égal à longueur*largeur*hauteur.
5.5. On rappelle que si n et d sont des entiers naturels avec d ≠ 0, la division euclidienne
de n par d consiste à trouver q et r entiers naturels tels que n = q * d + r avec r
< d. n est le dividende, d le diviseur, q le quotient et r le reste.
Exemple : si n = 29 et d = 3, on aura q = 9 et r = 2.
5.8. Généralisez le programme précédent de façon qu’il fasse la même chose pour un
entier d’un quelconque nombre de chiffres.
5.9. Écrivez un programme qui demande à l’utilisateur d’introduire une valeur (multiple de
5) représentant une somme d’argent et qui calcule et affiche le nombre de billets de
100, 50, 20, 10 et 5 euros qu’elle représente (en privilégiant le minimum de billets).
Exemple :
5.10. Écrire un programme qui demande à l’utilisateur d’entrer une durée en seconde et qui
affiche la durée en heures, minutes et secondes. Les parties heure et minute ne seront
affichées que si elles sont supérieures à 0.
Exemple :