Langage C : énoncé et corrigé des exercices IUP GéniE
Langage C : énoncé et corrigé des exercices. Exercice 10 Ecrire un progra mm e se co m portant co mm e une ca l cu l atrice c 'est- à -dire exécutant.
Corrigés des exercices sur les fonctions
Le seul intérêt éventuel d'une fonction dans un pareil cas est d'améliorer la lisibilité du programme. Ici c'est relativement discutable. Autre remarque :
Algorithmes En Langage C Cours Et Exercices (PDF) - m.central.edu
il y a 8 jours Algorithmes En Langage C Cours Et Exercices as one of the most dynamic ... Chaque chapitre se clôt par une série d'exercices corrigés qui ...
TP avec corrections - Langage C Filière STPI Pr. Rachid MALEK
Le tri pourra se faire par réarrangement des valeurs au sein du tableau lui-même. Exercice 5. Ecrire la fonction NCHIFFRES du type int qui obtient une valeur
Exercices en langage C++
150 exercices corrigés pour maîtriser la langage C++. Complément idéal de Programmer en langage (6 exercices) • Fonctions virtuelles et polymorphisme.
Programmation en C - Sommaire
IX) SOLUTIONS DES EXERCICES DU CHAPITRE 3 : TYPES DE BASE OPÉRATEURS ET indépendante de la machine pour le langage C'
Exercices en langage C++: 150 exercices corrigés (Noire) (French
du C++ (types et opérateurs instructions de contrôle
Les fonctions et les procédures en C
de l'UE « introduction à la programmation ». Bruno Bouzy Fonction déclaration
Exercices corrigés
1. Écrire un module de calcul des racines du trinôme réel : ax2 +bx +c. Le module définit une fonction trinome avec les trois paramètres du
Les fonctions et les procédures en C
de l'UE « introduction à la programmation ». Bruno Bouzy Fonction déclaration
[PDF] Langage C : énoncé et corrigé des exercices - lamsade
Les exercices 1 à 1 6 20 à 2 5 2 9 à 33 4 2 à 43 sont corrigés Les solutions sont données à la fin du polycopié (voir table des matières) 1 1 EXERCICES
[PDF] Corrigés des exercices sur les fonctions
Corrigés des exercices sur les fonctions Exercice 5 1 1 adaptation de programme Question 1 Modifiez le programme pour que le calcul de la division soit
(PDF) Recueil dExercices Corrigés de Programmes en Langage C
28 jan 2021 · Download file PDF (tableaux et matrices) les fonctions la récursivité les structures Programmation langage C exercices corrigés
[PDF] Programmation en C – Exercices - Pages Perso
Programmation en C – Exercices 4 Fonctions mathématiques tableaux boucles constantes symboliques Regarder sorties dans formats-sorties pdf */
Exercices corrigés informatique Langage C PDF [SMA SMI SMP
Télécharger 4 Fichier PDF qui contient des Exercices TD corrigés informatique Langage C Et n'oubliez pas de partager cette article et d'inviter vos amis à
TD et Exercice corrigés Langage C - exomaroc
TD et Exercice corrigés Langage C Lorsque nous aborderons l'écriture des fonctions en C nous verrons que le langage c kernighan ritchie pdf
[PDF] TP avec corrections - Langage C Filière STPI Pr Rachid MALEK
Toutes les variables utilisées dans ce programme doivent être déclarées avec le type double Exercice 5 Soient les déclarations suivantes : int i ; float f ;
[PDF] Langage C : énoncé et corrigé des exercices Talib24
1 - Figure de l'exercice 25 I* Fonction qui retourne le nombre de caractères de la chaîne*/ int strlen (char*)
Exercices de programmation en langage C (les fonctions)
15 déc 2020 · Rappel : un tableau de caractère (chaine de caractères) se termine par le caractère spécial : '\0' Voir le corrigé
Programmer en langage C Avec exercices corrigés - Academiaedu
La programmation modulaire et les fonctions • Variables locales et variables globales • Les tableaux et les pointeurs • Les chaînes de caractères • Les
Comment utiliser les fonctions en langage C ?
Pour définir une fonction, vous devez spécifiez en premier le type de retour de la fonction ( void , s'il n'y pas de retour), puis spécifier le nom de la fonction, puis lister entre parenthèses les paramètres de la fonction. Pour chaque paramètre, il faut d'abord mentionner son type puis son nom.Comment remplir un tableau en C ?
Syntaxe
1T tableau[N];2T tableau[expr];3tableau[i]4i[tableau]5int i; int tableau[10]; /* déclare un tableau de 10 entiers */ for (i = 0; i < 10; i++) /* boucle << classique >> pour le parcours d'un tableau */ { tableau[i] = i; /* chaque case du tableau reçoit son indice comme valeur */ }C'est quoi Stdio h ?
La première instruction #include <stdio. h> est une directive au compilateur dont le but est de réaliser l'inclusion mentionnée : ici, l'inclusion des fonctions d'entrée/sortie intégrées à la bibliothèque standard. On peut également faire appel à d'autres bibliothèques, par exemple une bibliothèque mathématique.Appelez une fonction
1#include <stdlib.h>2int triple(int nombre) {3return 3 * nombre; }4int main(int argc, char *argv[]) {5int nombreEntre = 0, nombreTriple = 0;6scanf("%d", &nombreEntre);7printf("Le triple de ce nombre est %d\\n", nombreTriple);8return 0; }
Université de Perpignan Via Domitia
Licence de Sciences et Technologies
Mention Sciences de l"Ingénieur
Programmation en C - Exercices
Enoncés
Sujets des partiels et examens
Exemples de corrections des exercices
Exemples de corrections des partiels et des examensPh. LANGLOIS
Version du 18 septembre 2013
Programmation en C - Exercices
PhL. version du 18 septembre 20132
Table des matières
I Enoncés des exercices 7
1 Description de l"environnement de programmation 9
1.1 Du code source à l"exécution : cas simple . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91.2 Du code source à l"exécution : cas général . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101.3 Pratique et conseils associés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111.4 Utilisercygwinsous M* Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.5 Pour être sûr d"avoir bien compris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122 Variables, valeurs, constantes, déclarations, types scalaires, opérateurs, expressions, entrées-
sorties simples133 Opérateurs entiers, bit à bit, logiques, tests 15
4 Fonctions mathématiques, tableaux, boucles, constantes symboliques 17
5 Structures de contrôle : répétition, choix 19
6 Fonctions : prototypes, définition, appels 23
7 Pointeurs25
8 Types,makefile27
II Sujets des partiels et examens. 29
9 Sujets31
9.1 Partiel de novembre 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
319.2 Examen de décembre 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
339.3 Partiel de mars 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
359.4 Examen de mai 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
379.5 Examen de juin 2011 (session 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
399.6 Examen de juillet 2011 (session 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41III Exemples de corrections des exercices 43
10 Description de l"environnement de programmation 45
10.1 bonjourlemonde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4510.2 swap1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4510.3 swap2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4510.4 swaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4610.5 swap3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4611 Variables,valeurs,constantes,déclarations,typesscalaires,opérateurs,entrées-sortiessimples 49
11.1 operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4911.2 int2bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4911.3 tabverite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5011.4 formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
513
Programmation en C - Exercices
12 Opérateurs entiers, bit à bit, logiques, tests 53
12.1 vallimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5312.2 op-int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5312.3 int-vs-unsigned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5412.4 div . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5412.5 op-bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5412.6 op-decall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5512.7 masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5613 Fonctions mathématiques, tableaux, boucles, constantes symboliques 59
13.1 somme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5913.2 somme-p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5913.3 felem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6013.4 fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6013.5 fibo-inv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6113.6 fois2fois2etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6113.7 max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6213.8 ind-max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6213.9 last-ind-max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6314 Structures de contrôle : répétition, choix 65
14.1 double-indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.2 des-boucles-for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.3 des-boucles-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.4 un-deux-etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.5 suites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6614.6 equa-prem-deg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6614.7 aleas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6715 Fonctions : prototypes, définition, appels 69
15.1 f-fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6915.2 fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7015.3 f-fibo-main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7015.4 f-masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7015.5 f-masques-main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7116 Pointeurs73
16.1 ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7316.2 arith-ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7416.3 affiche-vect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7416.4 affichons-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7516.5 mystery-inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7616.6 tab-ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7616.7 main-inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7716.8 doubler-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7716.9 tab-dyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7816.10mat-dyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7816.11echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.12echo-inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.13combien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.14max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.15main-tx-var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8117 Types,makefile83
17.1 type-vect-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8317.2 manip-type-vect-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8417.3 makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84PhL. version du 18 septembre 20134
Programmation en C - Exercices
IV Exemples de correction
des partiels et examens. 8518 Correction du partiel de novembre 2010 87
18.1 echauffement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8718.2 tri2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8718.3 tri3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8818.4 expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8918.5 des-expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8918.6 exp-bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8919 Correction de l"examen de décembre 2010 91
19.1 paire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9119.2 code-asci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9119.3 max-prod-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9219.4 moiss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9319.5 f-mois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9419.6 mois2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9520 Correction du partiel de mars 2011 97
20.1 tables-mult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9720.2 xoxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9720.3 compter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9821 Correction de l"examen de mai 2011 99
21.1 rev1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9921.2 rev2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9921.3 rev3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10021.4 rev4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10121.5 rev5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10121.6 aff-tab-carres-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10221.7 aff-tab-carres-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10321.8 aff-tab-carres-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10321.9 aff-tab-carres-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10421.10aff-tab-carres-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10421.11aff-tab-carres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10522 Correction de l"examen de juin 2011 (session 2) 107
22.1 exp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10722.2 exp3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10722.3 un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10822.4 combiendeun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10822.5 suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10922.6 suite2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10923 Correction de l"examen de juillet 2011 (session 2) 111
23.1 moy1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11123.2 moy2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11123.3 moy4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11223.4 concattab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113V Annexes 115
24 C Reference Card (ANSI) 117
25 Résumé des commandes de base UNIX 119
26 Description de l"enseignement 121
PhL. version du 18 septembre 20135
Programmation en C - Exercices
PhL. version du 18 septembre 20136
Première partie
Enoncés des exercices
7Chapitre 1
Description de l"environnement de
programmationCette partie décrit la prise en main de l"environnement de programmationgccutilisé en TD sous envi-
ronnement Linux ou aveccygminsous Windows1. Convention à utiliser pour les extensions des noms de fichiers : .c: fichier source C .h: fichier en-tête (header) C .o: fichier objet sans extension : exécutableOn distingue deux cas, selon que le programme est composé d"un seul fichier (cas simple) ou de plu-
sieurs (cas général).1.1 Du code source à l"exécution : cas simple
Trois étapes sont nécessaires pour créer un fichier exécutable à partir d"un fichier de code source.
1.Compiler : génération du fichier objet .o- nous verrons plus loin que cette étape comporte en fait
des étapes intermédiaires. 2. Linker : édition des liens entr eles fichiers objets et création du fichier exécutable.Ces deux étapes peuvent être aussi regroupées en une seule commande, ce que nous apprendrons
d"abord.1.1.1 Le code source
Utiliser votre éditeur favori pour taper la version C suivante du classique "Hello World" ...en français.
*Vous l"avez reconnu : Bonjour le monde !*/ #includeSauvegarder ce programme dans le fichierbonjourlemonde.c.1. Les principales spécificités de cette configutaion sont décrites à la section 1.4
9Programmation en C - Exercices
1.1.2 Méthode 1 : génération directe de l"exécutable
Le cas simple du code contenu dans un fichier unique permet d"utiliser une seule commande à cet effet.
La version la plus courte est
$ gcc bonjourlemonde.cqui se trouvera au même endroit que le fichier source. Pour l"exécuter il suffit alors d"entrer la com-
mande suivante (dans une fenêtreterminal). $ ./a.out ou plus simplement encore, $ a.out si votre variable d"environnementPATHpermet d"examiner le répertoire courant.Il est plus pratique de pouvoir choisir le nom de son exécutable en le précisant avec l"option-o.
$ gcc -o bonjourlemonde bonjourlemonde.c Vous utiliserez en effet la commande plus longue suivante. $ gcc -Wall -pedantic -std=c99 -o bonjourlemonde bonjourlemonde.c extensions comme celles de GNU par exemple) --pedanticpermet de signaler les avertissements, ouwarnings, selon la norme ISO; et --Wallpermet de signaler un grand nombre d"autreswarningsdécrit dans leman gcc.En effet à la différence d"Ada, la grande permissivité de C réduit l"aide du compilateur (sans option)
pour traquer certaines erreurs et les mauvaises pratiques de programation.1.1.3 Méthode 2 : compiler et lier avant d"exécuter
Dès que votre application comporte plusieurs fichiers, il est nécessaire de procéder en deux étapes :
i) compilation-génération (option-c) d"un fichier objet (extension.o)ii) puis création de l"exécutable (sans extension) par éditions des liens (option-o) entre les différents
fichiers objets.Dans le cas simple, chaque étape (compilation, édition des liens) correspond à une des deux lignes de
commandes suivantes. $ gcc -Wall -pedantic -std=c99 -c bonjourlemonde.c $ gcc -Wall -pedantic -std=c99 -o bonjourlemonde bonjourlemonde.oIl suffit maintenant d"exécuterbonjourlemonde.
1.1.4 Pour bien comprendre
Recommencer lesméthodes1et2àpartirdefichierssourcesmodifiés(contenu,nomdufichier,autres extensions), ailleurs dans votre arborescence. Observer le contenu du répertoir ede travail après chaque commande. Observer les dr oitssur les dif férentsfichiers.1.2 Du code source à l"exécution : cas général
Nous détaillons maintenant le cas habituel d"applications comportant plusieurs fichiers sources et l"uti-
lisation de la commandemake.PhL. version du 18 septembre 201310
Programmation en C - Exercices
1.2.1 Editer-compiler-lier-exécuter
Entre la création du code source (édition) et l"exécution du binaire qui en découle, nous retrouvons les
deux étapes de compilation et d"édition des liens déjà décrits.Lorsque que l"application est constituée de plusieurs fichiers (en général des fichiers.cet les fichiers
d"en-tête.hcorrespondants2), générer l"exécutable nécessite de créer, un à un, tous les fichiers objets
(.o) associé aux fichiers.c(compilation et génération des fichiers objets, option-c) , puis de lier (édi-
tion des liens, option-o) tous ces fichiers objets (et si besoin les bibliothèques extérieures) en précision
le nom de l"exécutable (sans extension en général).Par exemple, notre application est constituée des fichiersF1.c, F2.c, main.c, ce dernier contenant
la procédure principalemain. Nous voulons l"exécuter par le biais de la commande (sans argument)
endavant. On y arrive en effectuant les deux étapes compilation-éditions des liens suivantes. $ gcc -Wall -pedantic -std=c99 -c F1.c $ gcc -Wall -pedantic -std=c99 -c F2.c $ gcc -Wall -pedantic -std=c99 -c main.c $ gcc -Wall -pedantic -std=c99 -o endavant F1.o F2.o main.oIl est courant de devoir modifier un fichier parmi tous ceux qui consitue une application. Dans ce cas,
il n"est pas nécessaire de recompiler des fichiers non modifiés pour créer un nouvel exécutable. Il suffit
de mettre à jour le fichier objet concerné puis de créer une nouvelle versi de l"éxécutable.
1.2.2 Utiliser unMakefile
Cette partie sera décrite une fois la compilation séparée traitée en cours.1.3 Pratique et conseils associés
1.3.1 Une session classique
1.Créer un fichier sour cesous l"éditeur ,
2. le compiler , 3. corriger (sous l"éditeur) les err eurssignalées par le compilateur , 4.le r ecompilerpuis r evenirà l"étape 3 tant que la compilation ne s"achève pas avec succès,
5. exécuter le pr ogrammesur dif férentsjeux de données bien choisis, 6.identifier ainsi les (pr emiers)bugset revenir à l"étape 3 jusqu"à obtenir l"exécution attendue.
1.3.2 Conseils pour l"écriture d"un fichier source
La plupart des conseils suivants ont pour objectif d"améliorer la lisibilité des fichiers sources, la sûreté,
la maintenabilité et la portabilité des développements.Sauvegar derrégul ièrementvos fichiers (ne pas écrir edu code pendant 10 minutes sans sauvegar -
der!).Choisir des identifiants explicites (peuvent êtr elong, utiliser le trait bas (_), mettr edes commentair es
(le point précédent répond aussi à cet impératif).Initialiser chaque variable lors de sa déclaration, sépar erpar une ligne vide les déclarations des ins-
tructions. Limiter la portée des variables au minimum raisonable (compromis entre la localitéun re-
groupement des déclarations et la distance "déclaration-première utilisation" .1.4 Utilisercygwinsous M* Windows.
cygwinpermet d"utiliser le compilateurgccdans l"environnement système M* Windows. Les com-mandes présentées s"appliquent donc dans la fenêtrecygwin. Nous présentons maintenant quelques
spécificités de cette configuration.2. Ceci sera décrit en cours (compilation séparée).
PhL. version du 18 septembre 201311
Programmation en C - Exercices
Installation?Une fois le fichier desetuptéléchargé, l"installation nécessite deux éxecutions succes-
sives de cesetup. En effet,gccn"est pas installé à la première exécution dusetup(suivre la
procédure avec copie des fichiers en local). Une fois celle-ci effectuée, il faut relancer lesetup,
choisir le mode manuel pour sélectionner les paquetsgccetautomakequi seront alors installés et directement utilisables.Où travailler?La fenêtrecygwinfournit une invite de commande (prompt) dans son répertoire d"ins-
tallation et non pas dans votrehome directory. Il faut donc utiliser les commandes Unixcd, ..,˜userd-id, ... pour retrouver une configuration de travail classique (accessibilité directe aux fi-
chiers sources). Un lien sur une page qui présente ces commandes est indiqué sous l"ENT (dans "ressources utiles").1.5 Pour être sûr d"avoir bien compris
1. Coder ,compiler et exécuter le pr ogrammeprésenté en cours. 2. Récupér erl"archivecompiler_fichiers.zipsurl"ENTetcréerl"exécutable.Observerlecontenudu répertoire de travail après chaque commande. Modifier certains fichiers et créer de nouveaux
exécutables. 3.Ecrir eun pr ogrammequi échange deux valeurs entièr es,flottantes et caractèr es.Ces valeurs se-
ront (version 1) d"abord fixées dans le code, puis (version 2) saisies au clavier. 4. Ecrir eun pr ogrammequi lit tr oisvaleurs flottantes au clavier et qui af ficheleur somme. Pr oposer ensuite des versions qui utilisent des structures itératives différentes :for, while, ....PhL. version du 18 septembre 201312
Chapitre 2
Variables, valeurs, constantes,
déclarations, types scalaires, opérateurs, expressions, entrées-sorties simples Exercice 1.(ma_saisie) La fonctionsaisirde l"archive utilisée au TD-1 illustre comment utiliserles fonctions d"entrées-sorties clavier-écranprintfetscanf. En s"inspirant de cet exemple, écrire un
programme qui lit une valeur au clavier puis l"affiche à l"écran. Vous modifierez ce programme pour
affichernfois une valeurVd"un des types vus en cours, les valeurs denetVseront "lues au clavier". Exercice 2.(swap3) Ecrire un programme qui permute deux valeurs entières. Ces valeurs seront lues au clavier. Même question pour trois valeurs flottantes et caractères.Exercice 3.(operateurs) Ecrire un programme qui affiche le résultat des opérateurs entiers pour deux
valeurs arbitraires choisies au clavier. Vous interpréterez les résultats pour un choix de ces opérateurs
laissé à votre initiative (des exercices à venir porteront en particulier sur les opérateurs logiques, bit-à-
bit et composés).quotesdbs_dbs15.pdfusesText_21[PDF] somme et différence de nombres relatifs 4ème exercices
[PDF] le perimetre d un cercle
[PDF] calcul force verin hydraulique
[PDF] comment calculer l'aire d'une forme géométrique quelconque
[PDF] calcul superficie forme irrégulière
[PDF] calcul surface quadrilatère irrégulier
[PDF] calcul surface polygone irrégulier
[PDF] sécurité incendie habitation 2ème famille
[PDF] porte coupe feu reglementation incendie
[PDF] reglementation incendie dans les immeubles d'habitation
[PDF] règle c+d incendie
[PDF] réglementation et mise en sécurité incendie des bâtiments d'habitation pdf
[PDF] escalier encloisonné habitation
[PDF] reglementation incendie 3eme famille b