TP11 : Pointeurs de fonction utilisation de gdb
fonction et être appelée. Exercice 1. Utilisation simple des pointeurs de fonction. Ecrire une fonction fois_deux qui multiplie par deux un entier.
Langage C : énoncé et corrigé des exercices IUP GéniE
Exercice 1 . Déc l arere z un entier i et un pointeur vers un entier p
Programmation C++ (débutant)/Les pointeurs
l'occasion d'étudier les fonctions avec passage de paramètres par pointeur . Ce passage de paramètres peut A l'occasion d'exercices nous verrons une.
Programmation Objet - apprentissage 1A notions : Tableaux
Exercice 2. Indices pointeurs. Écrire les fonctions suivantes en utilisant des indices pointeurs pour laquelle un élément de tableau.
Programmation en C – Exercices
en utilisant le tableau et le pointeur. Exercice 38. (affiche-vect) Ces fonctions d'affichage de vecteurs pourront être utilisées par la suite.
Module de POO / C++ -- Année 2018/19 Master 1 Maths TP2
Exercices sur les tableaux & pointeurs. Partie 1 de commencer à entrevoir une possibilité d'écrire un code réutilisable : les pointeurs sur fonctions.
Pointeurs et Allocation Dynamique
On parlera alors de pointeurs de fonctions. Exercice int v1 = 5 v2 = 15; int *p1
Programmation en langage C
3.5.2 Pointeurs et tableaux `a plusieurs dimensions . 4.8 Pointeur sur une fonction . ... 4.9 Fonctions avec un nombre variable de param`etres .
TP 5 : Tableaux structures et pointeurs Exercice 1 : Structure
Exercice 1 : Structure nombre rationnel et tableaux On testera ces fonctions en déclarant un tableau de 5 rationnels et en écrivant.
TP 1 - Pointeurs -
Exercice 1. Fonctions auxiliaires. Pour commencer ce TP écrire les fonctions suivantes qui serviront `a tester vos programmes.
Structures et Pointeurs - Université des Antilles
Structures et Pointeurs I Les structures 1 Définition Ensemble de plusieurs objets de types éventuellement différents regroupés sous un même nom Exemples de structure : En mathématiques un vecteur A peut être vu comme un structure dont les composant x y etc sont les différents champs
Programmation en C – Exercices - univ-perpfr
Exercices et probl emes corrig es en C++ M1 Math ematiques Appliqu ees 2019-2020 Version du 6 avril 2020 Lien vers la version en ligne Exercice 1 : Pointeurs On consid ere que l’on dispose d’un tableau de ottants d eclar e de la mani ere suivante : floattab[3]; On supposera que ce tableau a egalement et e initialis e
Travaux dirigés 2 : pointeurs et tableaux
Travaux dirigés 2 : pointeurs et tableaux Correction – Lepremierexercicefaitreferenceaucours L’arithmétiquedespointeursn’aétéabordée que rapidement à la ?n du cours donc il est nécessaire de faire un bref rappel avant d’attaquerl’exoderappeldecours – Pourledernierexerciceilpeutêtrebondeleurrappelerlaprocédureàsuivre:
Programmation en C – Exercices - univ-perpfr
Exercice 47 (main-tx-var) Ecrire une fonction tx-varqui calcule le taux de variation d’une fonction f entre a et b La fonction f et les paramètres ?ottants a et b sont passés en paramètre de tx-var Le taux de variation de f entre a et b vaut (f(a) f(b))=(a b)
Algorithmes et programmation II : Les pointeurs - LIP6
Si le compilateur a placé la variable i à l'adresse 4831830000 et j à l'adresse 4831830004 alors : Lvalue Adresse Valeur i 4831830000 1 j 4831830004 1 Remarque L'adresse d'une lvalue est un entier (16 bits 32 bits ou 64 bits) et ce quelque soit le type de la valeur de lvalue S Baarir (Pris10/LIP6)aLes pointeursL2 Mia - 2010/2011 6 / 27
TP 1 : tableaux et pointeurs
la chaîne ct et renvoie une aleurv négative si csct 1 2 Exercices Les fonctions suivantes traaillenv t sur un tableau de chaînes de caractères char** tab ousV pourrez par exemple les tester sur la ligne de commande du programme passée en argument à la fonction main du
TD 1 : les pointeurs - LIP6
TD 1 : les pointeurs Version du 1ermars 2011 Exercice 1 Soient i une variable de type int p et q des pointeurs sur int On suppose que : – i se trouve à l’adresse 4830000 – p à l’adresse 4830010 et – q à l’adresse 4830020
Exercices en langage C++: 150 exercices corrigés (Noire
150 exercices corrigés pour maîtriser la langage C++ Complément idéal de Programmer en langage C++ du même auteur cet ouvrage vous propose 150 exercices corrigés et commentés pour mieux assimiler la syntaxe de base du C++ (types et opérateurs instructions de contrôle fonctions tableaux pointeurs ) et les concepts objet du langage
TD 4 : Pointeurs Tableaux et Structures Exercice 1
TD 4 : Pointeurs Tableaux et Structures Exercice 1 : Tableaux et arithm etique des pointeurs Soit un pointeur p qui pointe vers un tableau tab comme suit : int tab [ ] = f1 2 3 4 5 6 7 8 9g ; int p ; p = tab ; Quelles valeurs ou adresses fournissent les expressions suivantes 1 *p+2 5 tab+3 2 *(p+2) 6 &tab[3]-p 3 p+1 7 p+
TP 4 : Pointeurs et structures - Conservatoire national des
Exercice 4 Écrivez une fonction struct matrice alloue_matrice( int colonnes int lignes) qui alloue une matrice Ajoutez de l'a chage permettant d'observer quels sont les pointeurs créés (à chaque utilisation de malloc()) Utilisez le format p dans printf() pour a cher un pointeur
8 Les Pointeurs - ENIT
• En C les pointeurs jouent un rôle primordial dans la définition de fonctions: 3 –Comme le passage des paramètres en C se fait toujours par la valeur les pointeurs sont le seul moyen de changer le contenu de variables déclarées dans d'autres fonctions –De même le traitement de tableaux et de chaînes de
Searches related to exercices pointeurs et fonctions filetype:pdf
MODULE : Algorithmique et Structures de Données 2 (ASD 2) SERIE D’EXERCICES SUR LES POINTEURS Exercice 1 (TD/TP) : Soient trois entiers A B et C et deux pointeurs de type entier P1 et P2 A B C P1 P2 0xf0 0xf4 0xf8 0xfA 0xfC 1 Déterminez quelle est la valeur des différents éléments donnés dans le tableau Pour
Comment calculer la différence entre deux pointeurs ?
- (arith-ptr) Ecrire un programme qui compare la différence des adresses entre deux pointeurs p et q=p+1 pour des types d’objets pointés différents : char,int,double. Comparer avec le résultat de la fonction sizeof(type) (qui retourne un unsigned long). Exercice 37. (tab-ptr) Déclarer un tableau de double et un pointeur sur son premier élément.
Comment calculer l'addition et la soustraction d'un pointeur?
- Arithmétique des pointeurs : l'addition et la soustraction. I Soit i un entier et p un pointeur sur un element de type type , I l'expression p 0 = p +i (resp. p 0 = p i ) désigne un pointeur sur un element de type type , I la valeur de p 0 est égale à la valeur de p incrémenté (resp. décrémenté) de i sizeof (type ).
Comment utiliser les pointeurs pour accéder aux éléments du tableau ?
- Écrire le programme en utilisant explicitement les pointeurs pour accéder aux élémentsdu tableau, c’est-à-dire sans utiliser une variable d’indice. Correction. #include /* EXIT_SUCCESS */ #include /* printf */ 3. Faire la trace de cette deuxième version.
Quels sont les exercices de programmation en C ?
- Programmation en C – Exercices (e)mettre à 1 les bits de position 1 et 4; (f)mettre à 0 les bits de position 1 et 2; (g)af?cher l’octet de poids faible; PhL. version du 18 septembre 201316 Chapitre 4 Fonctions mathématiques, tableaux, boucles, constantes symboliques A propos des fonctions mathématiques.
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).Opérateurs arithmétiques : +, -,*, /, %
Opérateurs r elationnels: ==,!=, <=, >=
Opérateurs logiques : &&, ||,!
Opérateurs bit-à-bit : &, ˆ , ~ , ", » Af fectationcomposée : +=, -=,*=, /=, %=, &=, ^=, |=, "=, »= Incrément et décrément : x++, ++x, x--, --x Exercice 4.(int2bin) Ecrire un programmeint2binqui calcule la décomposition binaire d"un entier(valeur arbitraire lue au clavier). On rappelle que cette décomposition s"obtient par les restes successifs
des divisions entières par 2. Faire afficher cette décomposition dans l"ordre du calcul. Proposer une
solution pour afficher cette écriture dans l"ordre de lecture classique (bits de poids décroissant de la
gauche vers la droite).Exercice 5.(tabverite) Ecrire un programme qui calcule et affiche les tables de vérités des opérateurs
logiques&&, ||,!. Vous pourrez utiliser le typeBooldesont de la forme%suivi d"un caractère, le caractère pouvant êtred, i, o, O, x, X, c, f. Utiliser
ces différents formats d"affichage et comparer les sorties obtenues en les appliquant par exemple aux
valeurs entières 74 et 137. Commenter ce que vous observez. 13Programmation en C - Exercices
PhL. version du 18 septembre 201314
Chapitre 3
Opérateurs entiers, bit à bit, logiques,
testsExercice 7.(op_int). Calculer et afficher les différents résultats des opérateurs arithmétiques entiers
/,%(quotient, reste). Faites varier les signes des opérandes; par exemple,(5, 3),(-5, 3),(5, -3),(-5, -3). Exercice 8.(int_vs_unsigned). Observer l"effet de la conversion de type entre des valeursintetunsigned int, en particulier dans le cas de valeurs négatives. Utiliser la fonctionsizeofainsi que
les formats d"affichaged, u, ld, lu, x, lx(précédés du caractère %). Même question avec les
typeslongetunsigned long. Exercice 9.(minmax) Ecrire une fonctionminmaxqui affiche le minimum et le maximum de deux va- leurs entières saisies au clavier. pourint i, j;? Donner une réponse puis vérifier pouri=1etj=4.quotesdbs_dbs14.pdfusesText_20[PDF] exercices ponctuation dialogue 6ème
[PDF] exercices pourcentage 5ème
[PDF] exercices pourcentage 5ème pdf
[PDF] exercices pourcentages pdf
[PDF] exercices pratiques cnv
[PDF] exercices pratiques communication non verbale
[PDF] exercices pratiques conduite de réunion
[PDF] exercices pratiques excel 2010 pdf
[PDF] exercices pratiques gestion mentale
[PDF] exercices pratiques relation d aide
[PDF] exercices prépositions fle
[PDF] exercices priorité des opérations
[PDF] exercices prise d initiative terminale s
[PDF] exercices probabilités conditionnelles et indépendance corrigé pdf