INFO2047: Introduction à la Programmation Benoit Donnet, Thomas Leuther, David
INFO2047: Introduction à la Programmation Benoit Donnet, Thomas Leuther, David Lupien St-Pierre, Firas Safadi 2 Table des matières Introduction i 1 Blocs, Variables, Instructions Simples 1 1.1 Manipulation d’Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 Priorités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Les Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Bloc d’Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Ecriture de Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Structures de Contrôles 5 2.1 Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Lecture de Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 Ecriture de Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Itération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Lecture de Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Manipulation de Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 Ecriture de Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Structures de Données 11 3.1 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1.1 Tableaux Unidimensionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1.2 Tableaux Multidimensionnels . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Chaînes de Caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4 Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Modularité du Code 17 4.1 Lecture de Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Ecriture de Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3 Passage de Paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3 4 Introduction Ce syllabus se veut être un recueil d’exercices permettant à l’étudiant de mettre en pratique les aspects théoriques et techniques vus lors des séances théoriques du cours d’Introduction à l’Informatique destiné aux étudiants de BAC 2 Ingénieur Civil Architecte. La pratique est un aspect important (si pas le plus important) du cours d’Introduction à la Programmation. C’est dans cette optique que ce syllabus a été rédigé. Les compétences désirées à l’issue du cours ne peuvent s’obtenir sans une pratique intense. La compréhension et l’écoute lors du cours théorique sont des conditions nécessaires mais nullement suffisantes. Il faut s’exercer de façon à acquérir l’expérience et l’aisance nécessaires à la réussite de l’examen. Le présent document contient bien plus d’exercices que ce qui pourra être fait, pendant les séances d’exercices. Durant chaque séance, seulement quelques exercices seront effectués (les exercices sur lesquels porteront la séance seront indiqués au début de la séance). L’idée alors est de permettre à l’étudiant de s’exercer par lui-même. Ce travail solitaire est vivement conseillé en vue de réussir l’examen. Les étudiants peuvent toujours contacter, en cours de quadrimestre, le Professeur pour discuter des exercices et de leurs solutions. Un calendrier des disponibilités est donné en début d’année académique. Bien entendu, il est tout à fait permis de prendre de l’avance et de faire les exercices chez soi avant les diverses séances d’exercices pour, ensuite, profiter de la séance d’exercices pour discuter des solutions obtenues et faire des exercices supplémentaires. i ii Chapitre 1 Blocs, Variables, Instructions Simples L’objectif de ce premier chapitre d’exercices est de passer en revue les divers éléments vus au cours théorique.En particulier, les éléments portant sur les bases du langage C. Les points abordés dans ce chapitre sont : – La manipulation des divers opérateurs C (Sec. 1.1). – Les types (Sec. 1.2). – Le bloc d’instructions (Sec. 1.3). – Les premiers pas en écriture de code C (Sec. 1.4). 1.1 Manipulation d’Opérateurs 1.1.1 Affectation Exercice 1 Ecrivez de la manière la plus compacte possible les expressions suivantes : 1. y = x + y; 2. x = x + 1; 3. y = y + 3; 4. b1 = b1 && b2; 5. b1 = b1 == b3; 6. b2 = b2 + 1; 1.1.2 Priorités Exercice 1 Déterminez le résultat des expressions suivantes, avec x = 1 et y = 2 : 1. 2 + 3 * 4 + 12 % 3 2. 1 != (x++ == –-y) Exercice 2 Soit un programme contenant les déclarations suivantes : int i = 8; int j = 5; float x = 0.005; float y = -0.01; char c = ’c’; char d = ’d’ 1 Déterminez la valeur de chacune des expressions suivantes : 1. (3*i - 2*j)%(2*d - c) 2. 2*((i/5) + (4*(j-3))%(i + j - 2)) 3. i <= j 4. j != 6 5. c == 99 6. 5*(i + j) > ’c’ 7. (i > 0) && (j < 5) 8. (i > 0) || (j < 5) 9. (x > y) && (i > 0) || (j < 5) 10. (x > y) && (i > 0) && (j < 5) 1.2 Les Types 1.2.1 Déclaration Exercice 1 Quel type de variable utiliseriez-vous pour stocker : – le nombre d’étudiant en premier Bac ? – le PIB (Produit Intérieur Brut) de l’état Belge en euros ? – π ? – les votes exprimés pour un candidat uploads/S4/ syllabus-tps.pdf