Vous êtes sur la page 1sur 261
INCL FONDATION Cours et exercices TBANOUE corrigés GUC ar Ogle ttavalgE Iggane / M. Lahby ZA.Zbakh / L. Bouhou Table des matiéres 1 PARTIE 1: Architecture matérielle et logicielle 1 1 Architecture simplifige d'un ordinateur 1.1 Objectif du chapitre : 1.2 Qu'est-ce qu'un ordinateur? . 1.3 Mémoires oo... eee eee : 1.4. Unité centrale de traitement (CPU) . . 1.5. Périphériques ..... . 2 Systéme d'exploitation d'un ordinateur 10 21 Obj . 10 2.2 Qu'est qu’un systéme d'exploitation . . . . if du chapitre 2.3. Les principales fonctions d'un systéme dexp 0 2.4 Gestion des fichiers : i 2.5 Invite de commandes ... . B 3. Représentation des données en ordinateur 15 3.1. Objectif du chapitre .... . tenes 15 3.2 Mémoire d'un ordinateur... ..... sae 1s 3.3. Systéme de numération . . . we 16 3.4 Codage des nombres entiers . . oe 18 3.4.1 Nombres entiers naturels : 18 3.4.2 Nombres entiers relatifs . eee 1s 3.5 Codage des nombres avirgule..........00- 20 3.6 Codage des caractéres et de chaines de caractéres . . . B 3.6.1 Codage des caractéres ............., 23 3.6.2 Codage de chaines de caractéres . . mM 3.7 Exercices 2... eee oe be eeeee oe severe 26 I PARTIE II : Algorithmique et programmation 27 4. Les éléments de base d'un algorithme 29 4.1 Objectif du chapitre teens . see eee eee . 29 4.2 Algorithme et Programme .........., beeen 30 4.2.1 Qu’est ce qu'un algorithme . . towte eee 30 4.2.2 Quest ce qu'un programme ..... . is oe . 30 4.3 Structure d'un algorithme ..... . . beeeeeae 30 4.4 Notions de base sur les variables . Ve vevvees . al pefinivion dune variable - 441 a 4.4.2, Identificaten ragles 6+ , has. Types des variables «+ 5° °° sees 4 sions ’ : ' 4a Lesexpressi ca : Xu seas Déclaration une variable «- «27 97 : it ase d'un algorithme + + voeeeeeee 45. Les instruct ions de ba oe algor : agi. Linstruction de affectation « piece eees sates x 45.2 instruction de lecture (Lire) eee 45.3. Vinstruction d’écriture (ictire) 26 eee . s 46 Brercices ee os be cenee tenets ‘ 5 Les instructions conditionnelles 0 5.1, Objectif du chapitre : . . * 5.2 Lastructure conditionnelle . « . ° 5.3. Linstruction Si-Alors . « . th 5.4 Linstruction ceceeueue of 5.5. Linstruction conditionnelle imbriquée .... + ‘ 5.6 Exercices . a : s 6 Les instructions itératives 0 6.1 Objectif du chapitre bees 6.2 Lastructure itérative . . 6.2.1 Définiion......--. 62.2 Laboucle déterministe Pour... .. . « 6.2.3 Laboucle conditionnelle Tant que... .. « 63 Les boucles imbriquées .... . . seseseees 64 Les instructions de branchement inconditionnel 7 64.1 Linstruction break»... 0.000005 ore : 64,2 Linstruction continue... . . . 65 Exercices .... : 7 Les fonctions 7.1 Objectif du chapitre 7.2 Notions de base sur les fonctions 7 : bieeeeee 2 ‘3 Implémentation des fonctions en python o ‘ 73.1 Syntaxe python . corres a “ 732 Chronologle delete, pisses 6 73.3 Foreman en oe exteation d'un programme comportant une fonction 1 6 Fae, Ramet snpesan valeur de retour aw ‘34. Fonction simple sane betes va beans ans parame tee Valeurs par défaur Se se GB vA = 6 Arguments nommés cinrreeess ce s lables locales et globales uo : see neeetes a “ #6 ‘Table des matitres 7.5. Exercices 8 Les tableaux 4 une seule dimension 8.1 Objectif du chapitre 8.2 La structure tableau B.3- Acces et parcours d'un tableau vase eeud ¥ B.A. Accés aux éléments d'un tableau cee 4 8.3.2. Parcours d'un tableau 83.3. Quelques reégles 8.3.4. Fxemple : 8.4 Implémentation de la structure tableau en python tion avec une liste 8.4.1 Implémen 8.4.2. Implémentation avec le module numpy . 8.5. Les algorithmes de recherche. « « 8.5.1 Recherche séquentielle . . . . % 8.5.2 Recherche dichotomique . « B 8.6. Exercices . : os 80 9 Les tableaux & deux 82 9.1 Objectif du chapitre 6... 4+ . an : 82 9.2. La structure tableau & deux dimensions ons HEAT 82 9.3. Manipulation d'un tableau A deux dimensions... «++ + + se 9.4. Implémentation d'un tableau 4 deux dimensions en python vee 8S 9.4.1 Implémentation avec une liste... 66 e+ sos 86 9.4.2 Implémentation avec le module numpy. . . « - « wee 87 9.5 Copie d'une matrice en python... cee ee 88 9.6 Exercices 0 severe eee ee a ee 88 91 Il PARTIE IIT : Les structures de données en python 10 Les Listes 10.1 Objectif du chapitre . 10.2 Quiest ce qu'une liste . 10.3 Utilisation d'une liste . . 10.4 Opérateurs surleslistes . 6... eee eee IOS ranches sccreneie oeieite eiainetegie'e 4 10.6 Comprehension delist... 0 ee cereus 10.7 Copie d'une liste 10.8 Méthodes de listes 10.8.1 Méthodes d'insertion . . . 10.8.2 Méthodes de suppression 10.9 Exercices +++ a : te 411 Les chaines de caractéres 11.1 Objectif du chapitre - - : : 11.2 Quest ce qu'une chaine de caractéres 7 11.3 Traitement d'une chaine de caracteres . ‘s 11.4 Opérateurs sur Tobjet stt 6 seven eee eee . , 11.4.1 Opérateurs arithmétiques et logiques thee ye so i 11.4.2 Opérateurs de conversion 6... eee eee eee ee eee ee sy 11.5 Tranches de chaines de caracteres 6 eevee eee ees i. 11.6 Méthodes de chaines de caractéres vv. eevee ees vee Stn 11.7 Exercices ... - ween sone eee In 12 Fichiers Texte is 12.1 Objectif'du chapitre ....... 7 12.2 Qu’est ce qu'un fichier texte us 12.3 Manipulation de fichiers texte . 6 12.3.1 Ouverture d'un fichier texte: open)... eee eee ee eee eee eee 6 12.3.2 Fermeture d'un fichier texte: closeQ) . - cee 16 12.3.3 Lire des données dans un fichier tex - 16 12.3.4 Berire des données dans un fichier texte : write) ©. eee eee ee HS 12.4 Exercices . . pete e emer ecfeeesewen ef : 10 13 Les tuples 122 13.1 Objectif du chapitre ... . 13.2 Qu'est ce qu'un tuple... - 13.3 Utilisation d'un tuple... 2... 13.4 Opérateurs sur les tuples . 13.5 Fonetions de conversion (casting)... . . . a 13.6 Tranches (slicing). 6.6.02... 0.0.4 vere 13.7 Méthodes pour les tuples . 13.8 Exercices 3 28 14 Les Dictionnaires ° 14.1 Objectif du chapitre 3 14.2 Queest ce qu'un : os = 143 Manipulation d'un dietionnaire . . . . a 14.4 Opérateurs sur les dictionnaires .._ __ a 1455 Copie d'un dictionnaire..... || . " 14.6 Méthodes pour les dictionnaires : - M7 Brercices " — ‘Table des matitres ft 15 Pile et File 137 15.1 Objectif du chapitre 6.0... eee eee eee eee eters a7 WS2PHle. eee eee eee 137 15.2.1 | Qurest ce qu'une pile : 1aF 15.2.2 Applications ug? sa 153 File... 6... Me 15.3.1 Quiest ce q ut 15.3.2 Applications. . . . : Bt 15.3.3 Implémentation . . . . 143 15.3.4 Primitives 143 15.4 Exercices 165 16 Introduction 4 la programmation orientée objet 148 16.1 Objectif du chapitre ....... 148 16.2 Notion de classe... « 149 16.3 Attributs et constructeur : Ist 16.3.1 Attributs de classe... « ee ISL 16.3.2 Attributs d'instance . . « : vee 1ST 16.3.3 Constructeur . . eke vee 152 16.4 Méthodes de classe / Méthodes statiques wee 153 16.4.1 Méthodes de classe. . - wee +. 153 16.4.2 Méthodes statiques . . « ne eTE ene e eget ee enees 13 16.5 Héritage et Surcharge»... « : eee 1M 16.5.1 Heritage. . « : a .. 1S4 16.5.2 Surcharge d'une méthode... : 2s 155 16.6 Exercices .. 0.0000 bene : . 137 17 Les exceptions 159 17.1 Objectif du chapitre ... - « cope cn nmejet BR Gn ee ees esata? 159 17.2 Quiest ce qu'une exception? on eee ee cece 160 17.3 Gestion des exceptions .... - ce eR theses = 160 17.3.1 Un apergu sur un exemple d'exception . ee -. 160 seve ao +. 161 17.3.3 Traitement des exceptions : try except... 6s vv es = beeen es 162 17.3.4 Traitement des exceptions : else... eve ee es cos 163 17.3.5 Traitement des exceptions : finally . . : : - 163 174 Liste des exceptions . 2 eens 13 17S Assertions o.. 0 eee eee : sees cos 163 . 164 IPO ENCICICES ove ee eee eee eee ee i etsi - ngénierie numérique PARTIE IV Ine ‘e =0 1g résolution approchée Je fo ‘iy ReaeMfande deicnomic TTT 8 Menpncpe oes voi Te2 Imnplémentation en python «oo so ++ wees i 1 18.2 Méthode de Newton «= > bate taste ene m tg.2.1 Onirede convergence due suite + «+ coe 18.2.2 Méthode du point fixe + = - wee a 18.23 Principe de la méthode de Newton RaphsOn oe vee ees coe 18.24 Implémentation en python oe see e eee ee es : 18.255 Ordre de convergence de la méthode de Newton . ts 18.2.6 Exemples d'application . eves ee a 183 Méthode de la sécante . . « « : is 183.1 Principe... 22-2 e eee a 18.3.2 Implémentation en python. . . . - ino - 1 18.4 Méthode de "Regula Falsi" (fausse position). . 18.4.1 Principe . . 7 18.4.2 Implémentation en python. . - - 18.5 Utilisation de la bibliothéque scipy.optimize . . . - « 18.6 Comparaison des méthodes de résolution de f(x)=O.. -. +++ 19 Caleuls approchés d’intégrales 187 19.1 introduction. ....-+-+++ eeeee cree 1 19.2 Méthode des rectangles eth sae 18 19.2.1 Principe de la méthode des rectangles 4 gauche . 138 19.2.2 Principe de la méthode des rectangles a droite . 19 19.23 Principe de la méthode des rectangles en point milieu... +0. - 000000 19.2.4 Code en python... ee eee ee ere eee sees 9 a1 19.2.5 Majoration de erreur des méthodes des rectangles « « 19.3 Méthode des trapézes .. 0-2. oe es 19.3.1 Principe . . oe . ve 19.3.2 Code python... see c eee e eee e rere 19°33 Caleul de erreur dela méthode des trapezes. . « 19.4 Méthode de Simpson. ....... + neg decree 19.4.1 Principe... ee ee 19.4.2 Code python 19.4.3 Majoration de Ferreur de Ia méthode de Simpson 19.5 Utilisation de la fonction quad du module scipy.integrate . 19.6 Comparaison des méthodes d'intégration . . 19.7 Exercices . . . ‘Table des matidres Y_ Corrigé des exercices 1 Exercices du chapitre 3 2. Exercices du chapitre 4 3. Exercices du chapitre 5 4. Exercices du chapitre 6 5. Exercices du chapitre 7 6 Exercices du chapitre 8 7 Exercices du chapitre 9 8 Exercices du chapitre 10 9. Exercices du chapitre 11 10 Exercices du chapitre 12 11 Exercices du chapitre 13 12 Exercices du chapitre 14 13 Exercices du chapitre 15 14 Exercices du chapitre 16 15 Exercices du chapitre 17 16 Exercices du chapitre 19 Bibliographie 221 224 228 232 236 240 242 245 249 251 254 257 Premiére partie PARTIE I : Architecture matérielle et logicielle Cuaprrer | Architecture simplifiée d’un ordinate Sommaire VA ObjectiCduchapltre ve vee eevee eee e eee 1.2 Qurest-ce qu’un ordinateur? LS Mémoires o.oo eee eee eee eee IONE tenes 14 Unité centrate de traitement (CPU). LS Périphériques 1.1 Objectif du chapitre Dans ce chapitre, nous présentons briévement 'architecture de base d'un ordinateur et les principes de son fonctionnement. Il s'agit aussi dans ce chapitre de voir les caractéristiques de chaque composante matérielle d'un ordinateur, 1.2 Qu’est—ce qu’un ordinateur? Un ordinateur est une machine électronique capable de traiter de les informations de ma- nice automatique. Il est capable d'acquérir de l'information, de la stocker, de la transformer en effectuant divers traitements, puis de la restituer sous une autre forme. Remarque 1.1 — On distingue généralement différents types d'information images... ete. ‘extes, nombres, sons, — Toute information est manipulée sous forme binaire (0 ou 1) par l'ordinateur Pour pouvoir effectuer des traitements automatiques de l'information, Vordinateur doit posséder les organes suivants : — Un ensemble de périphériques servant & interagir avec extérieur : clavier, écran, sours, carte graphique, carte réseau, ete; , 3 Mle pour mémoriser le programme en cours d's sicurs unités de stockage, [ "xécution — Une ou plusicv ding aque les données quill manipule; ti processor permettant Fexgetion des instructions du programme et des esi — Un proces données qu'il manipule. es diférents éléments sont reliés par des connexions appelées bus, Il agit tout simplemeny conductcurs wtilisés pour assurer la communication entre ces différents éléments , architecture de base de tout ordinateur est congue selon le modéle de Von Neuma (ig 1.1) présente les éléments de base de cette architecture : de fi, La figure Périphérique de sortie Programmes y Unité de commande Mémoire Unité arithmétique et Données logique Périphérique d'entrée FIGURE 1.1 ~ Architecture d'un ordinateur (le moddle de Von Neuman) 1.3. Mémoires . . , formations ‘Une mémoire est un dispositif permettant d'enregistrer, de conserver et de restituer des i eee Yun ordi aaa ‘ise distinguent par leur cap! Au sein d'un ordinateur, il existe différentes sortes de mémoires qui se distinguent par et leur temps d'accést fig 1.2). 4 Chapltre t. FIGURE 1.2 — Les différents types de mémoires dans un ordinateur, PLes registres : sont des cases mémoires situées dans le processeur, dont la taille ne dépasse sou- vent pas une dizaine d'octets et le temps d'accds est trés court, > La mémoire cache : est un espace mémoire rapide servant A stocker temporairement des données ev/ou des instructions qui seront exécutées par le processeur. Cette mémoire permet ainsi au proces- seur d’améliorer le temps d’accés. nt les instructions et les données des programmes en cours d'exé- La mémoire principale : cont cution. On distingue deux catégories : — Une mémoire morte (ROM=Read Only Memory) : contient les premiers programmes exécutés 4 la mise sous tension de ordinateur. C’est une mémoire a lecture seule. — Une mémoire vive (RAM=Random Access Memory) : contient les instructions et les données des programmes exécutés par le processeur; elle se compte actuellement en giga-octets. Son contenu est perdu a la mise hors tension de ordinateur; c'est une mémoire volatile, La mémoire vive se présente comme des petites barrettes en plastique avec des puces et circuits intégrés que Yon insére dans la carte mére (fig 1.3). Les mémoires de masses : sont des mémoires secondaires de grande capacité utilisées pour le stockage permanent ou la sauvegarde des informations. Elles utilisent pour cela des supports magné- tiques (disque dur fig 1.4) ou optiques (CDROM, DVDROM). En termes de temps d'accés, ce sont des mémoires beaucoup plus lentes que les autres mémoires, BURE 1.3 ~La mémoire vive RAM ‘Remarque 1.2} Plus la mémoire RAM est importante, Plus Tordinateur fonctionne facilement et rapid etl peut gérer des tiches différentes, ler Figure 1.4—Le disque dur 1.4 Unité centrale de traitement (CPU) Vunité centrale de traitement, ou encore Processeur (CPU : Centra veau de lordinateur qui interprite Gun processeur (fig 1.5) sont : Processing Unit) est l et exécute les n programme, Les parties essentie instructions d’ ~ Unité Arithmétique et Logique (UAL) ; Prend en charge les leuls arithmétiques élémenta (somme, différence, i Aral e base) sur deus des Produit, rapport) et les tests (opérations logiques de base) sw a roisitme. 5 deux des registres pour stocker le résultat obtenu dans un trois — Unité de commande : Phériques dey pei | | : \émoire, drige le fonctionnement de toutes les autre UAL, In 16¢s / sorties, ete. Elle des instructions d'un ou de unité eodage re et du décodage est responsable de la lecture en mémoire et d plusieurs programmes, Chapitre 1. Architecture simplifiée dun ordinateur: Remarque 1.3} Le processeur contient également des registres (des cases mémoires plus rapide que moire RAM) servant A stocker temporairement les données et les instructions en cours de mé- traitement par unité centrale, s> ae" 1 @\, IGURE 1.5 ~ Processeur (CPU) I est important de noter que tout processeur est caractérisé par sa fréquence , cest-i-dire la vitesse 4 laquelle il travaille, qui détermine la rapidité de lordinateur. Cette fréquence s'exprime en Giga Hertz (GHz). Actuellement, les ordinateurs sont devenus "multicocurs" c'est--dire qu’ils possédent plusieurs processeurs pour effectuer plus rapidement les taches demandées. Par exemple Dual Core = 2 coeurs; Quad Core= 4 coeurs. 1.5 Périphériques Les périphériques sont des équipements électroniques pouvant étre raccordés 4 un ordinateur. Ils permettent de fournir, conserver ou récupérer des informations manipulées par ordinateur sous ente quelques exemples de périphériques. diverses forme. La figure (fig 1.6) p: Les périphériques sont classés en 3 catégories en fonction de ce quiils permettent : — Périphériques d’entrée : servent a fournir des informations (ou des données) & ordinateur, Exemples : clavier, souris, scanner, webcam, micro ..., etc. — Périphériques de sortie : servent a faire sortir des informations du systéme informat écran, imprimante, casque ..., etc Exemple: — Périphériques d'entrée et de sortie : permettent de fournir des informations, mais également sortir des informations de ordinateur, Exemples : clé USB, carte mémoire, modem .. ete. 1.8 Périphérques Feran Houts. parties & sours FIGURE 1.6 ~ Périphériques d'un ordinateur FIGURE 1.7 ~ La carte mere Chapitre 1. Architecture simplifige d°un ordinateur Remarque 1.4 La carte mére (fig 1.7) permet la coordination de Fensemble des éléments intervenant dans Je fonctionnement dim ordinateur : procesceur, mémoires , cartes d'extensions (fig 1.8) et péripheriques. La carte mére contient essentiellement des circuits imprimés et des ports de connexion, On retrouve les ports de communication externes (fig 1.7 : zone 4), mais aussi des ports internes multiples, en particulier les ports PCI (fig 1.7 : zone 3) qui permettent la connexion des cartes Ethernet, son,... ete gui seront ensuite alimentées par de cfbles partant de Talimentation, On retrouve également sur la carte mére le socket processeur (fig 1.7 : zone 2) et les supports de RAM (fig 1.7 : zone 1), carte graphique carte réseat caxtereon 9 FB CHAPIT Systéme d’exploitation d’un Ord 'natey, ‘Sommaire 2A Objectifdu chapitre 6... 0. eee 22. Qu'est qu'un systime d’exploitation .... 5. « 23 Les principales fonctions d'un systime d'exploitation . 24° Gestion des fichiers 2.8 _ Invite de commandes 1 Objectif du chapitre Dans le chapitre précédent nous avons vu la partie matérielle d'un ordinateur, Dans ce chapice nous nous focalisons sur la partie logicielle d'un ordinateur qui est indispensable pour faire fonction ner la partie matérielle, 2.2 Qu’est qu’un systéme d’exploitation Pour qu'un ordinateur soit capable de réaliser toutes ses taches, nous avons besoin d'un ensemble de programmes (logiciels) qui permettent d'exploiter les ressources matérielles (périphériques. moires, processeurs) et logicielles. Ce logiciel est le systéme d’exploitation(Operating Sys!) Apres le BIOS ', le systéme d'exploitation est le deuxiéme programme lancé par ordinateur is stocké en mémoire vive a l'allumage de ordinateur et y reste jusqu'au moment ou machine. on geet 2.3 Les principales fonctions d’un systéme d’exploitation Un systeme d'exploitation posséde principalement les rdles suivants : — Gestion du processeur : Le processeur d'un ordinateur peut exécuter plusieurs programs quasi simultanément, Ainsi, le systéme exploitation, i " met grace A un algorithme d'ordonnancem*" gére efficacement l'utilisation du processe Par les programmes en cours d'exécution. Facies i: BIOS (Basi InpuvOutp Sysiem) te premier programme qui s'exécue lors du démarrage d'un ordinateur, Ce prograe ‘contenu dans la mémoite morte ROM seit & vérifiet le foncti du matériel et tester f a aint intonnement du matériel et teste es composant, I passe ensuite systéme d’ exploitation, _ ' q iaplire 2 Systéme d’exploitation d’un ordinateur ————_________________ Ghaapitre 2 systtme tat inateur — Gestion de Ia mémoire principale : Le systéme d'exploitation veille A Toptimisation de lutili- sation de la mémoire principale de Vordinateur par les programmes en cours d'exéeution, — Gestion des entrées/sorties : le systéme dexploitation gére Futilisation des différents péri. Phériques d'un ordinateur par les programmes en cours d'exécution par le processeur. Chaque Ps teme d'exploitation. hérique posséde son propre contrdleur et son pilote qui permettent de Tutiliser par le sys — Gestion des fichiers : le systéme d'exploitation offre In poss deffectuer plusieurs opéra tions sur les fichiers et les dossiers : sauvegarde des fichiers sur les mémoires , ouverture, copir en te Enfin pour résumer le systéme d'exploitation est interface qui permet de faire le lien entre utilisa teur, les programmes (logiciels d'applications) et les composants de ordinateur, Systéme ‘exploitation Matériel informatique Figure 2.1 —Le réle d'un systtme d'exploitation Sur le marché mondial des logiciels, il existe trois grandes familles de systimes d'exploitation : — Windows de la société Microsoft, il est actuellement le plus répandu des tous les systémes d'ex- ploitation. La version vendue actuellement est Windows 10. — MacOS de la société Apple (construit sur un noyau Unix). Ce systéme d'exploitation n'est présent que sur les ordinateurs de la marque Apple (Macintosh). — Linux dérivé d'Uniix, il est gratuit et libre, est surtout u sances en informatique. sé par ceux qui ont de bonnes connais- 2.4 Gestion des fichiers Afin dorganiser les dossiers(répertoires) et ranger les fichiers, il convient d'utiliser une structure arborescente. Cette structure de trier les données pour gagner en termes du temps de recherche. tion propose A Tutilisatcur une interface facile ear epic Hiemst icme son espace mémoire sous la forme de mm ts ys cierto lesquels il peut ranger des fichiers (fig 2.2). oe ca Documents Exeries [_ cours] [ exerctes Algo.pdf — Codage.doc Réseaux.pdt Ficune 2.2~ Exemple partic! d'arborescence de dossiers et fichiers sous Windows Le dossier le plus haut (le disque C :\) est la racine de arborescence (Gig 2.2), Ce dossier conties: des fichiers et des dossiers. Ces derniers contiennent également des fichiers et des dossiers et ainsi de Suite: La succession des dossiers joignant la racine & un fichier particulier s‘appelle le chemin dace dv fichier en question. Ge chemin sera spécifié par les noms des dossiers séparés par le caractire. et suivi du nom du fichier. Far exemple dans 'arborescence (fig 2.2), le chemin d’aceés du fichier Algor ithmique.pdf est domi par: € :\Documents\Cours\Algo.pdf Pour construire ce chemin, on énumére la liste des dossiers quil faut traverser au sein d'une arborescence pour atteindre le fichier en question. I y a deux points de départ possibles pour ce chemin : — Je répertoire racine : on parle alors de chemin absolu — le répertoire courant : on parle alors de chemin relatif Chaque fichier et répertoire dossier) fini ys attribue A chacun des groupes dutilisateurs définis par le $Y téme, des droits daccés. Ces droits se classent en 3 types : — lecture (r- read) — écriture (w -write) — exécution (x -execute) 12 Chapitre 2 Systéme d’exploitation d'un ordinateur Le droit en lecture permet de lire un fichier mais pas de le modifier (il faut pour cela bénéficier du Groit d'écriture), le droit d'exécution permet d'utiliser un programme. Dans le cas d'un répertoire, te droit de lecture permet de lister son contenu, le droit d'exécution permet daccéder a ce répertoire, le droit d'écriture permet d'y ajouter ou d'en supprimer des fichiers. Sous le systéme d'exploitation Windows, on a acces & ces droits (et bien d'autres inforima- tions) en choisissant les options "propriétés" puis "sécurité" aprés avec avoir effectué un lic droit avec la souris (fig 2.3). 7 Pept eGo hn Pat St Vea pnts Poorer Honda Cnn mrnae Canen OT ewe) [wether reer FIGURE 2.3 ~ Droits d'accés & un dossier sous Windows 2.5 Invite de commandes Les environnements habituels de travail des systémes d’exploitation sont souvent trés conviviaux et autorise l'utilisation d'une interface graphique pour explorer l'arborescence des fichiers et des dos- siers et exécuter d'autres actions. Il est aussi possible d'utiliser l'invite de commande(fig 2.5) sous Windows ou le shell sous Linux pour exécuter ces actions a l'aide de commandes textuelles. 25. Invite de commandes Exemple 2. Hest possible dou ouvert en util cuter qui peut dans la fenttre Exécuter. Quelques exemples de command — dir: Affiche Ia liste des fich — mkdir : Crée un répertoire Figure 2. Vinvite de commande sou — ed: Affiche le nom du répertoire 1s Windows 10 en utilisant util ccourel Windows + Ret en tapant en lisant le ra 1s pour explorer une arborescence de fichiers hiers et sousdossiers contenus dns le répertoir courant ou change le répertoire courant ow un sous-répertoire cy eircom stunner nde sous Windows 10 5 — Invite de comm 2A) CHAPITRE Représentation des données en ordinateur ‘Sommaire M_ Objectifdu chapitre . . 32. Mémoired’un ordinateur... 33° Systéme de numération . 5 “16 34 Codage des nombres entiers 8 341 Nombres ents naturels 18 342 Nombres entiers relatifs 18 35 Codage des nombres A virgule 2... 5.6 » 36 Codage des caractires et de chanes de caracttres 6... 3B 36.1 Codage desearactees oe eee vee bees fo B 362 Codage de chatnes de caractdres m4 BY _Bverciees esse sees eee eens sees seeeeee 26 3.1 Objectif du chapitre Les informations traitées par un ordinateur peuvent étre de différents types (texte, nombres, images, etc.) mais elles sont toujours représentées et manipulées par ordinateur sous forme binaire, ‘Toute information sera donc traitée comme une suite de "0" et de "1" que l'on appelle bit. Dans ce chapitre, nous présentons les principes de cette représentation pour les nombres et les textes, 3.2 Mémoire d’un ordinateur la mémoire centrale d'un ordinateur est un élément tres essentiel a Vexécution d'un programme, Welle contient le programme & exécuter et les données. Toutes ces informations sont codées sous forme dune suite de "0" et de “I” (langage binaire), Cette mémoire est composée d'une suite de cases (ou blocs) rangées consécutivement, chaque case est repérée par une adresse et accessible indépen: damment des autres. Une case mémoire est elle-méme composée de plusieurs bits, et mémorisant deux érats (0 ou 1). On appelle octet une case de huit bits. Attention, un octet se dit byte en anglais: un byte est un groupe de huit bts, et non pas un seul bit. Lorganisation de Ia mémoire peut se représenter logiquement de cette maniére : 43 Systeme de numération Emplacement Adresse opoyt i fopiyips 0 ttt} 4 2 3 N-2 cH & bitde potds faible FIGURE 3.1 — Organisation de la mémoire hombre 36 par exemple), et sa ‘chine, qui est une suite de bits, représentée par différents symboles, selon le systéme de nud dienes nous avons Uhabitude d'utiiser le systeme dé vs lécimal représenté par 234 peut s'écrire 50us fore Maines + 3 dizaines + 4 unités). Cette écriture peut Se set dusleonque. Ains, Véeriture (cyey,.cy)o re-présente date le spate YSU Ley xP OUD S 6 < b pour i = 0,14 P=" Chupitre 3 Représentation des données en ordinateur Quelques exemples de bases les plus utilisées dans les systémes informatiques sont — Base décimate :{01,1,2,3,4,5.6,7.8,9) — Base binnire :(0,1) = Rase octale :{0,1.2.3.4,5.6.7) — Base hexadécimale :{0.1,2.3.4, }.6,7,8,9, A, B,C,D. EP) © Conversion binaire-décimal Pour convertir du binaire au décimal on effectue des multiplications de chaque bit par 2 4 la puissn son indice. Les indices débutent par 0 de droit a gauche. Par exemple, le nombre (10)11)2 exprimé en base 2 a pour valeur : (1011)2 = 1x PF 40x 241% 241% (jo La notation (..)p indique que le nombre est écrit en base b. Pour passer du décimal au binaire, on effectue des divisions successives du nombre & convertir sur 2 jusqu’a obtenir un quotient nul. Puis on constitue le nombre binaire correspondant en lisant la suite des restes (0 et 1) de bas en haut. Par exemple le nombre (34) 19 = (100010) 34] 2 o 17/2 1 8|2 0 4|2 0 2|2 0 1{2 10 -hexadécimal Pour convertir un nombre codé en binaire en un nombre codé en hexadécimal, il sufft de séparer 8 pantir de la droite ce nombre en groupes de 4 bits. Puis, chaque groupe de 4 bits est directement exprimé par un chiffre de 0 a F., Par exemple, convertissons ((01011011100)3 : (001011011100)2 = 0010 | 1101 | 1100 = (2DC)yp 2 |p le 7 Remarque 32 hexadécimal en son équivalent en binaire il sulfide —— pre en hexadé equ ' Four converir un nome par son équivalent binaire sur 4 bits. acécimal pa Ca Ce ete ain (10002 = (Sie (1100) = (C)yq ne "placoy oe = 11)2 = (Dig (0000). 12 = (Be (1001) = (Mie (1 ? (o00t)2 = (116 oan rw (OW) =(A)rw (1110)2 = (22) 4g oe Oe (altta= Che (Ottis = (2s (I) = (Pg (0011)2 = (3h 3.4 Codage des nombres entiers 34.1 Nombres entiers naturels Un enter naturel est un nombre entier positif ou nul. Un entier naturel codé SUN octet est cément compris entre 0 = (000000002 et 255 = (1111 1111)p, Lorsquiil est code s gst compris entre 0 et 4294967 295, Dune fagon générale, un codage sur n bits pourra représenter des nombres entiers naturels compris entre O et 2" — 1). Exemple 3.2} — Représentation de lentier naturel 24 sur 8 bits: (24)10 = (0001 1000) — Représentation de lentier naturel 128 sur 8 bits : (128): = (10000000) 3.4.2 Nombres entiers relatifs Les nombres entiers relatifs sont les nombres entiers Positifs ou négatifs : 0, 1, 2, 3, 4 etc, mis aissi 1, ~2, ~3, ~4, ete Il faut done pouvoir coder ces Hombres de telle facon que Yon puisse savor Sil Sagit des nombres positifs ou des nombres négatifs, ™ Représentation par valeur absolue On réserve le bit de p ids fort (Le bit situé a lextréme gauche de la représentation binaire dv nombre) pour le signe : — © Pour les nombres positifs, — tour les nombres négatits ‘es autres bits de la représentation binaire du nombre codent la valeur absolue du nombre. 18 Chapitre 3 Représentation des données en oreinatevr {Exemple 3.3} $_$_ — Representation de lentier naturel 24 sur & bite : (24)x0 — (0001 100). 24 sur 8 bits: (—24)r9 = (1001 1000) — Représentation de lentier relatif — Avec n bits on peut coder tous les nombres entiers NV tels que ~(2" — (est codé deux fois. Par exemple sur § bits 0 sera codé par 000.0000 et 11 — Mest difficile d'effectuer des opérations (addition, soustraction, ...ete)str les nombres car le bit de signe doit étre traité a part. Représentation en complément a 2 le principe de la représentation en complément & 2 (sur » bits ) est le suivant : mn. On le représente avec m bits dont le premier bit (de — Pour un entier positif on ne change poids le plus fort) est 0. — Pour un entier négatif on représente son opposé positif en base 2. Ensuite on inverse les bits de telle sorte a ce que les 1 deviennent 0 et les 0 deviennent 1, on obtient le complément a 1. Enfin leur 1 & ce complément. on rajoute fa vi Exemple 3.4 — [a représentation en complément & 2 de Ventier positif 8 (sur 8 bits) : (0000 1000) — Ie représentation en complément 4 2 de lentier relatif —8 (sur 8 bits) : On exprime & (oppose positif ou valeur absolue de -8) en binaire, soit (0000 1000}2. Le comp! ment a 1 de cette représentation est (11110111)z ( on inverse les bits). On rajoute (11110111) + 1 et on obtient le résultat : (1111 1000)2. Ten <2") 1 valeurs — Pour n bits, on code en complément 8 2 : — Le codage en complément & 2 permet de ne plus avoir deux fagons pour coder le 0, et facilite également les additions et les soustractions des nombres signés, ) Codnge des nombres h virgule _ Exemple 3.5 Soit A caleuler Je résultat de Tope 174 (-12). ion: 17 12. Cette somstracton devient un ayy. >) Adina | — tn representation en compliment 82 de Fenticr post 17 (sur 18): (oa yp, n tion en complement A 2 de Fentier relat 12 (He Whitey vc re, soit (0000 1100)9, Le complément 1 de: _ In repre : On prime 12 en bin: tte représeny ation ajoute Let on obtient fe résultat Oo), (11110011) Con inverse les bits). On tee Seder Tels ofa 1T]1{1]1{0]1}o}o ~fofofofofofifolr Operation en dev Le résultat de cette opération en binaire 00000101 est positif (le bit de signe est 0), done sy | valeur en décimal est 5. Dans le cas d'un résultat en binaire qui est négatif (Ie bit de signe est 1), on obtient sa valeur | en décimal en faisant son complément a 2. 3.5 Codage des nombres A virgule ntidre et d'une partie fractionnaire aprés— virge Un nombre décimal est composé d'une partie 11 existe de nombreuses méthodes pour représenter ces nombres, parmi lesquell — représentation en virgule fixe; — représentation en virgule flottante. Représentation en virgule fixe En base b, un nombre réel x s'éerit: (2b = dnttn-y a9, erey Il se convertit en décimal en : (a) = an 0 + yg OE, ay x bey x OT! be x Om? Exemple 3.6) — En base 10: (128,750 = 1 x 10742 10h 8 x 10 ET x LOE Bx 1 — En base 2: (101,01)2 = 1% 2240x2441 Ox 27h Le QnF Chapitre 3 Représentation des données en ordinateur Pour convertir un nombre réet en binaire, on procede comme suit : — On fait comme pour les entiers pour la partic enti’re, — On transforme la partic décimale selon le schéma suivant — On multiplic Ia partie décimale par 2 et on note Ia partic entiére obtenue — On recommence avec partie décimale restante — On siarréte quand la partie décimale est nulle ou quand Ia précision souhaitée est atteinte Conversion de (42, 125)19 en binaire : — Ia partic entiére : (42), = (101010)2 — la partie décimale : (0, 125)10 = (0,001)2 0.125% 2=0,250 0 0.250% 2=0,500 0 0,500 2= 1,000 1 On obtient alors le résultat (42, 125)19 = (101010, 001)2 — Cette méthode a linconvénient d'utiliser beaucoup de bits aprés la virgule si le nombre a coder comporte beaucoup de chiffre aprés Ia virgule (par exemple pour le calcul scientifique) — Auention : Un nombre a développement décimal fini en base 10 ne lest pas foreément en base 2 (Essayer la conversion de 0,3 en binaire) 1 Représentation en virgule flottante Lareprésentation en virgule fixe ne permet pas d’écrire des nombres trés grands ou tres proches de zéro. Pour palier & ce probléme nous utilisons en informatique la représentation en virgule flottante. Un nombre en virgule flottante x en binaire a une représentation de la forme : z= (-Iixmxe Ou s est la valeur du it de signe, m la mantisse, b la base et e Vexposant. La précision de Ia repré- Sentation dépend du nombre des bits alloués a Ia mantisse Cette représentation est du méme type que la notation dite scientifique utilisée par les calculatrices. Par exemple le nombre 201, 4 s'écrit ai 2, 014£2 puisque 201, 4 = 2,014 x 102, En binaire, on peut adopter une notation similaire, en écrivant Ja mantisse et Vexposant en base deux, 2s Coddage des nombres A virgtle er. {Exemple 3.8} . te nombre (1011, 101102)> peut avoir plusieurs représentation en virgule flottante . Le nombre (16 i (2011, 101101)z = (1011, 101101)2 x 2° (1011, 101101)p = (101,1101101)g x 2! (1011, 1011012 = (10,11 101101): x 2? 1011, 1011012 = (10111011012 x 2% =s représentation normalisée La mamisse est normalisée de sorte que le premier chiffre est toujours 1 et la Vitale plac rele juste derriére. a norme TEEE 754 définit le codage d'un nombre décimal en simple Précision sur 32 bits «1. double précision sur 64 bits. IEEE 754 Signe (s) | Exposant (¢) | mantisse (m) Simple précision | 1 bit 8 bits 23 bits Double précision | 1 bit 11 bits 52 bits — Le signe s (le bit de poids le plus fort) : 0 pour Positif, 1 pour négatif = 1 Cn représente le noms — Eexposant e peut étre positif ou négatif. Il est est décalé de 2"! aan de bits de Vexposant). Ce décalage dans le cas de la simple précision est égale 2°! ~ Par contre dans le cas de la double précision 21!-! — 1 = 1929, " . ratre représet! ~ [a mantisse m peut toujours s'écrire m = 1,,... Le chiffre 1 n'a pas besoin d'érre Seuls les chiffres aprés la virgule de la mantisee cont retenus, Chapitre 3 Représentation des données en oriinaten Le codage du nombre décimal —54, 25 au format IEEE 754 simple précision : Le nombre —54, 25 est négatif donc le premier Sa valeur absolue en binaire : 110110, 01 En normalisant on trouve : 1, 101 1001 x 2° On ajoute 127 (le décalage) & Vexposant qui vaut 5 ce qui donne 132, soit en base 2 : 1000 0100 la mantisse est constituée de la partie décimale du nombre en base 2 norma- lisé :101 101 on complete cette mantisse en ajoutant des 0 & droite pour quil occupe 23 bits : 101.1001 0000 000.0000 0000 Ainsi, la représentation du nombre décimal —54, 25 au format IEEE 754 simple précision : 1 10000109 201 1001.00000000 00000009 3.6 Codage des caractéres et de chaines de caractéres 6.1 Codage des caractires On appelle caractére tout élément de l'ensemble : — Alphabet : 'a',’b'/c’, — Signe de ponctuation : ')1,°3',"", — Caractére spécial : 7", — Chiffres : 7 Le codage d'un caractére (jeux de caracteres) consiste & attribuer une valeur numérique unique pour ce caractére, ensuite coder ce caractére en binaire. Il existe plusieurs codes : ACSII, ISO 8859-1, UTE: 8, UTF-16, Le code ASCII (American Standard Code for Information Interchange) Dans ce code, chaque caractére est codé sur 7 bits son caractéres accentués : 63,4, onvénient est qu'on ne peut pas coder les de chinies de cuernetores —— hee cormereres et su Cstnge t 0: Fremple 9.1 ; ASCH dts cnrnetire "N eet 65, — Ie coe te code ASCH du carnctére ‘a’ eet 97 te code ASCH du caractére '0" est 48 ® Le code ASCH etendu (ISO 8859-1) Dane ce code, chaque caractére est codé sur & bits. De plus, il perm: et de Conder les casein. tués€,aLilete, La figure 15.2 présente le code ascii étendu de chaqu ‘ He caractére, W Autre jeux de caractéres Tl existe autre jeux de Caractéres qu'on peut utiliser pour coder les caractéres, Parmi ces co citons par exemple : 7 — UTF-8 : est un cod: lage de caractéres informatiques concu pour coder Vensemble des caram sur 8 bits. — UTF-16 ; est un codage étendu de UTE8 sur 16 bits. 3.6.2 Codage de chaines de caracttres On appelle une chaine de caractéres toute suite de teprésentation d'une chaine de cai caractére de la chaine en utilisant caractéres ("Maroc’, "CPGE. 2020 ractéres selon un jeu de caractéres donné consiste ce jeu de caractéres, ao {Exemple 3.11} ~ Ie code ASCH de la chaine "BTS" est donné par la suite binaire 1000010 1 1010011, 100 — Te code ASCH étendu de ta ch; 010 1010100 01010011, ite binaire 01000 laine "BTS" est donné par la suite binaire 01 Chapitre 3 Représent caracthre | Oe __Caractire | Cale _Caractive | One Cade _Caractire i i few ntl | 09 E 116 fh a 0 to F aT 0 165 y (m2) 6 Ista, sonore] | 71 G 18 vo 166 } a3 0 Ieee aribro} | 92 " mw 167 § | aM o tabulation} | 73 1 eo x | 168 | yap) x [swt ligne] 74 J 121 y 169 2° m6) =o [tab vert] 75 K 122 x mw)! air o Isout pagel | 76 1 123 { m . 218 0 fret chariot} | 77 M | 12 | mw my 78 N 125 } 173) 220 G lespacel | 79 ° 126 a (7) a y 1 | 80 > i 175) 222 ® . BL Q 128 € 176 . | 223 6 ' k2 i. 17 + | 24 a s 83 s 178 2 | 285 a % at T (BF i) 26 a & 85 Uo 132 as 180) 0° 27 a %& Vv | 1% | BL 228 a ( 87 WC 184 + | 182 | 1 | 229 a ) | ex | as t 183, + 230 = : 89 Y | 136 - 184 ; 231 ¢ ee en 1 i gOS 186 | ° : 92 a) “ 187 » 234 ° 93 1) 0 | 188 Wo BS a7 1 i | 189 % | 236 1 48 0 oe} _ | 2 190 % ar) ot 49 1 com eee 191 fn 50 2 | oT a | : 2) A | 239 i 51 3 ge ob | . 193, & 20 0 52 4 m9 oc | : i re a 53 5 a - 195) A | 22 ° 54 6 101 . | : 196 A | as 6 55, 7 woz) ff - 197, A | 244 ° 56 8 13 og es ee 6 a7 S| 104 ho jase} 9) ¢ | 246 o 58 (105i oh | 200 £ | ar + 50, : | 106 | J 1s 201 £ 248 ° 60, «| 107 k 155) > 202 | a or . 108 } 1 156 203 | a 62 > | 109 m Be] 204 a 6 2 009 158 2 205 a 64 e@ |i) oo 19902C~COY 206 y 65 A | Mz) op 160 espace} | 207 p eal: je ie ; c 114 r mp iiss 3s | 210 FIGURE 3.2-Le code ASCII etendu pps 3.7 Exercices Exereice 1 pour une base b> 2 de chiffres c+ 1. Comment sécrivent les nombres 0 et 1? ri ur i? scl est Fintervalle po ; et b? Et ses puissances U"? "écrit le nombre 3, Comment s'écrit le no paisa 44. Quel est le plus petit nombre de 3 chiffres? Et le plus grand ? Exercice 2 1. Convertir (101011110000)2 en base 16. 2, Convertir (BAFFE);g en base 2. 3. Expliquer le mécanisme de conversion d'une base }) A une base b” et réciproquement, Exercice 3 1, Donner les intervalles de codage des entiers relatifs (signe/valeur absolue) sur 8 bits et srs bits. 2. Coder les entiers (+97)io et (~34),o sur 8 bits en représentation (signe et valeur absolus) 3. Coder les entiers (+97)19 et (~34)jy sur 8 bits en complément A 2. 4. Additionner les codes des entiers (+97)19 et (—34),9 sur 8 bits en complément a 2 5. Convertir le résultat de la question précédente en décimale. Exercice 4 1. Coder sur 8 bits les parties fractionnaires suivantes : (0.85)19 et (0.1119 2. Coder en IEEE 754 en simple précision (32 bits) les réels ; (40.25) 19 et (0.110 3 Convertir les représentations en simple précision des réels (—40.25),0 et (0.1)io en be 16 4, Dé i. ; Décoder les réels exprimés en norme IEEE 754 donnés en simple précision (et en) ° 19 (41F£8000)16 et (3£480000) 15 %6 Deuxiéme partie PARTIE II : Algorithmique et programmation CHAPITRE 4 Les éléments de base d’un algorithme Nomnmnntre — M1 OMAN INP cee cee ee eee . see D 42 Algorithme ot Heo lieteneeees sb eesines Be Qu'eat ce qu'un algonihine 7 422 Qw'eet ce quiom programme oD AN Stewetre Mum algae eee eee cece cence ene e ee 4A Notions tte hse sur lee vurlihen oo ccc cece cece cee neeeeeeseeeeeeees W 441 Petition dune vane 3 442 Menuticaews : rages 3 44.) ‘Typesites variables... bones 2 AAA Levexpressions 3 2 445 Déclaration d'une variable Je have dun alyorithine «s+ 4s AST Linetruction de Patfectation 45.2 Linwtruction de tecture (Lire) écrit erire) 451° Lnstrued AG Vxerchees 41 Objectif du chapitre ‘Tout comme Fhomme, la machine calcule! Si vous avez déja ouvert un livre de recettes de cuisine ou déchitfé un mode d'emploi traduit directement du coréen pour faire fonctionner wn magnétoscope ‘ou un répondeur 1éléphonique réticent, sans le savois, vous aver déja exécuré des algorithmes, Les al- ». fvaluer leur efficacité permet de classer gorlthines sont des outils pour Ia résolution de problem ces problénes celon leur difficulté intrinséque. Now. allons dans un premier temps définir préeisément ce qu'est un algorithme. Nous présen- tons ensuite les outils mathématiques nécessaires 4 Pévaluation de leur efficacité. Nous proposons une ypologie des problemes de déeision qui sappule sur la difficulté caleulatoire de leur résolution. Nous proposons également ce méme type de typologie pour les problémes de recherche. 4.2. Algorithme et Programme 42.1 Quest ce qu'un mgorithme Lin alpha eet une suite fife ct non ambigue opétations ow Winstons perm tre une clasee de problémes. Le mot algorithme vient di nom d'un mathématicien peep réaoundre une clasee ¢ me 11 Kina, Dans nore sie quotienne de nombreux algorithmes sont exécanes st? hag instant, 4 titre d’exemple nous citons — Une recette de cuisine est un algorithme. — Le guide «installation d'un appareil ou un logiciel. ‘garg, — Indiquer le chemin & un touriste — ete Dans ce livre, nous nous focalisons sur des algorithmes en informatique. En général un algorthn, formatique réalise trois taches principales : — Tlit des données en entrée : & l'aide d'un périphérique d’entrée comme le clavier, algorithm récupére des données qui seront utilisées. TI réalise des caleuls : le microprocesseur va exécuter les instructions de l'algorithme pow traiter les données d'entrée et produire un résultat, I doit afficher ce + lorsque lalgorithme a obtenu un résultat, — Il écrit des données en sorti résultat en utilisant un périphérique de sortie comme l'écran. 4.22 Qu’est ce qu'un programme Un programme est un ensemble d'instructions écrites dans un ordre précis sous un lange: & Programmation dont le but de les exéeuter par Ia machine afin de résoudre un probléme quelee que Dans ce qui suit, on utilise le langage python, pour traduire les algorithmes proposés dans ce li & 4.3. Structure d’un algorithme En pseudo-code un algorithm peut étre structuré en trois parties : — La premiere ligne indique le nom de Yalgorithme. — 1a deunieme partie, la déclaration, située aprés le mot clé variables, contient les données ® pulées par 'algorithme, . 7 " hoe — 1a trolsieme partie, le traitement, située entre les mots réservés Debut et Fin, contient Ie * instructions. Une instruction est un ordre donné A un programme et qui sera réalisé P2! microprocesseur, La structure d'un algorithme est ta suivante : 30 Chapitre 4 Les éléments de base d'un algorithme Algorithme 4. Algorithme : hom_algorithme; Variables liste des varaibles ; Début Dloc d'instructions ; Fin, Le premier exemple d'un algorithme qu'on peut donner, consiste a affiche le message "Bonjour tout Je monde”, Pour cela, nous avons besoin de instruction Eerire("message"). Le code de cet algorithme est donne ci-dessous : {Algorithme 4.2 Algorithme : afficher_bonjou Début Ecrire("Bonjour tout le monde’ Fin. En langage python cet algorithme devient : print(’Bonjour tout le monde") 4.4 Notions de base sur les variables 4.4.1 Définition d'une variable Définition 4.1 Une variable est une zone mémoire dont le contenu peut changer au cours d'exécution d'un programme (doit le nom variable). Une variable est définie par : + Un identificateur : cest son nom, qui permet de manipuler la variable au sein d'un programme ow d'une instruction + Un type : entier (relatif), lottant (réel...), complexe, chaine de caractéres, etc... + Un contenu :: il indique la valeur numérique ou expression qui définisse cette valeur numérique. En générale, le contenu est stocké dans la mémoire sous forme binaire. 4.4.2 Identificateurs : régles Le choix des noms de variables est soumis & quelques régles qui varient selon le langage, mais en général — Un nom doit commencer par une lettre alphabétique exemple valide : Al exemple invalide : 14 u “44 Notions de base sur les variables du souligmement _ (&viter Ios, ‘ara rent de lettres, de chiffres et — doit étre constitué unique an invalides : CNC 2015, CNC-2015 de ponctuation et I ia ENC_2015 +: CNC201 ae is du langage de programmation et 1 des mots réservés = doit ee itn nt, oat, else, for, While, clef, return, .., exemple en Ia nom doi tre infrienre A Ta ele maxima speSige parle langage yup, igueur dt a lise — Lalony Remarque 4.1) tr code, il sera mieux de choisir des noms significatifs qui par exemple : TotalVentes2014, Prix IT, Prix_ HTT sont des noms de Pour Ia lisibilité d lerivent lg données manipulé variables valides et significatifs 443. Types des variables Les différents types utiisables dans le langage algorithmique sont : les entiers, les réels, les cary teres et les booléens. 443.1 Le type entier Le type entier (int en python) est une représentation des nombres entiers. En langage algo rique, une variable de type entier est généralement codée sur 4 octets. Dans ce cas les valeuts pos sibles sont entre -2~% et 291-1 Les opérations possibles sur les données de type entier sont toutes les opérations arithmétiq) s css siques : laddition (+), la soustraction (-) ; le produit (x) et la division réelle (/), la divisio: eatire (DIV) et le modulo (MOD). On pourra aussi appliquer sur les variables de type entier, les opérateurs de comparaison cls que ><#2=>2 443.2 Le type réel Le type réel (float en python) permet de représenter des nombres réels avec une certainep En langage algorithmique, une variable en virgule flottante est généralement codée sur 4° 8 utilisant la norme IEEE 754, wea Les opérateurs arithmé i opérateurs arithmétiques et de comparaison sur les nombres réels sont identiques aux oP* arithmétiques classiques sur les enties, 4433 Letype caractére ont (stren python) permet de représenter des caractéres alphabétiques Ci de type caractére o 9) et de ponctuation (';,’:4’1,..¢7'). En langage algorithmique, We Les sels opr Benétalement code sur 1 octet en utilisant le code ASCH. st Pérateurs qu'on peut appliquer sur des données de type caractére sont les oper 32 Chapitre 4 Les éléments de base dun algorithme comparaison. En fait, In comparaison de deux caracttres repose sur 1a comparaison de leurs code ASCII. AAA Le type boolgen Le type booléen (bool en python) permet de représenter tne expression logique qui peuvent étre soit vraie sot fausse Les opérations autorisées sur des données de type booléen sont réalisées & Taide des opérateurs lo- giques, notés (and en python) * OU (or en python) '* NON (not en python) 44.4 Les expressions Définition 4.2. Une expression est une suite de caractéres définissant une valeur. Pour calculer cette valeur, la machine évalue expression. Une expression est évaluée de gauche a droite mais en tenant compte de priorité de chaque opérateur. Les expressions entre parenthéses sont exécutées prioritairement les parentheses intérieures vers des parenthéses extéricures. En l'absence de parenthése, la priorité des opérateurs est la suivante (du plus au moins prioritaire) : “7% 44,5 Déclaration d'une variable Définition 4.3 La déclaration d'une variable consiste a informer le microprocesseur sur le nombre d'octets quil faut réserver pour cette variable. En algorithmique, la déclaration d'une variable se fait de la maniére suivante ; variables [liste d'identificateurs] : type 33 445 Les instrctons de base d'un algorithme ‘Exemple 4.1 Variables i, j,k : entiers x.y reel OK : booléen chi, ch2: chane de caracttres Remarque 42) Avant Ia version 3.5 du Python : il n'y a p — A partir de la version 3.6 du Python : ily as la léclaration des variables en python ala possibilité de déclarer des variables en python — Dans ce livre, on va pas déclarer les types des variables. — Les variables doivent étre déclarées avant d’étre utilisées. 4.5 Les instructions de base d’un algorithme 45.1 Liinstruction de l'affectation (Définition affectation consiste & attribuer une valeur & une variable (ca consiste en fait & remplir of 4 modifier le contenu d’une zone mémoire). L'affectation écrase l'ancien contenu de la case mémoire. En pseudo-code la syntaxe de l'affectation est donnée par l'expression suivante: var « c. ‘» © peut étre une valeur, une autre variable ou une expression; + var et ¢ doivent étre de méme type ou de types compatibles. » Exemple Dans cet algorithme on va calculer le carré et le double d'un nombre réel donné. of ‘Algorithme 4.3 Algorithme : carre_double; Variables : a,¢,4, :réel Début acs; coat dezta; Fin, Chapitre 4 Les éléments de hase d'un algorithme La question qu'on peut se poser par Ia suite est comment se déroule Nexéeution de cet algorithme. ions dune Pour répondre & cette question, nous rappelons que le microprocesseur exécute les instru manire séquentielle, De ce fait, Valgorithme se déroule de manidre séquenticlle et ligne apres lige Dans chaque exécution d'une ligne, les différentes variables changent leurs valeurs en fonction de cette instruction. Le table: uivant indique Ia trace dexécution de cet algorithme. Au départ, lors de In déclaration de ces trois w: bles, leurs valeurs sont inconnues, pour cela an utilise le symbole ?. La 2 : 3s 0 traduction de cet algorithme en langage python devient [® En python i Cette instruction consiste & demander au microprocesseur de prendre une valeur & partir du clavier et de l'envoyer vers un emplacement mémoire. En pseudo-code, la syntaxe de cette instruction est : lire(nomVar) ; Lexécution de cette instruction consiste 4 : 1. Demander 4 l'utilisateur de saisir une valeur; 2. Modifier la valeur de la variable passée entre parentheses. au clavier et laffecte a la Par exemple, 'algorithme suivant permet de récupérer une valeur s variable a : Algorithme lire_valeur; variables a :entier; Début lire(a); fin En Python, cet algorithme se traduit par : Les instructions | de base d’an algorithme 45 ta fonction input() en Python est de type chatne de ea, acter. Tout ce qu’on lit avec (str). i est nécessaire dutiliser une Fonction de conversion selon le type de Ia yn, saisir (int, float(),etc...). ; Par exemple, pour lire une valeur entiére au clavier en Python : a=int: ( input ()) A 453. instruction d’écriture (Ecrire) ia abe, Définition 4.6 Cette instruction consiste & demander au microprocesseur d'aller vers une zone mémzin (onnée parle nom de la variable), ensuite prendre une copie de la variable et de Venicyy vers l'écran. | En pscudo-code on utilise la syntaxe suivante : Eerire(expression) ; Une expression peut étre : 1. Ia valeur d'une variable; 2. une chaine de caractéres; 3. le résultat d'une opération arithmétique ou logique. Par exemple, l'algorithme suivant permet d'afficher le message "a=" suivi de la valeur di vari cet la valeur de a +6 sur une nouvelle ligne . : ithme Algor Algorithme Ecrire_valeur; variables a, b :entier; Début 2410 fo a Fi bes print (a= print(a) sprint (ash) — On peut regrouper plusieurs instructions Eerire dans une seule instruction dans la- quelle les expressions sont séparées par une virgule. — Vinstruction Eerire("\n") permet de passer & la ligne suivante. 4.6 Exercices Exercice 1 1, Trouvez toutes les erreurs se trouvant dans le programme ci-dessous, et indiquer briévement Ja fagon de les corriger. Print(*donnez 1a valeur de a:") alasinpuroy || Print(“donnez la valeur de b:") «| beinpur seatb [site Cte same est 2 9 2. Que fait ce programme? Modifier ce code pour calculer le produit de a et b? 3. Modifier le programme obtenu dans la question précédente pour avoir laffichage suivant : |[coones Ta valeur ae 2:6 Vacnner 1s valeur de b:3 Exercice 2 1, Ecrire un programme python qui demande un nombre enter: positif a l'utilisateur, puis il calcule et affiche Ia racine carrée de ce nombre. On souhaite obtenit Valfichage suivant : Tapex un entier positif svp:25 La racine carrée de 25 est 5.0 7 a pres Exereice 3 j permet de saisir un caractére au clavier, engy; ‘thon qui permet ¢ hens jre un programme PY Ag 1, Eerire un p' soigner haffichage. . Je ASCII A Téeran. ; colle non qui permet de saisir un entier (Code ASCH) au clap 2, Kerire un programme Py Ph eette valeur. ve ey * caractet correspond A cette va . affiche le caractére qui Exercice 4 1. erre un programme qui vous demande de susie Votre ROM US votre Prénom ag seuite vorre nom complet, On soubaite obtenir Vaffichage suivant : it, ensuite eo (Enerez votre nom svp: Gaamouche 7 Entrez votre prenom svp: Amal Bonjour GramoucheAmal Oe e000]! 2. Modifier le programme précédent pour avoir l'affichage suivant : Entrez votre nom svp: Gaamouche + Entrez votre prenom svp: Amal Bonjour Gaamouche Amal Exercice 5 1. Ecrire un programme qui demande deux entiers a l'utilisateur, puis il permute le conten: ces deux nombres. On souhaite obtenir l'affichage suivant : [Entrez un premier entier:20 = Entrez un second entier:10 Avant la permutation a=20 et b=10 Aprés la permutation a=10 et b=20 Exercice 6 1. Ecrire un programme qui demande a Putilisateur la valeur de deux entiers a et b 2t affe* le résultat de leurs division euclidienne sous la forme a = bq + r (q et r sont des eit vérifient: r< b). On souhaite obtenir l'affichage suivant : Entrez un premier entier:37 Entrez un second entier:11 Division euclidienne :37=1143 + 4 Exercice 7 1. Ecrire un programme qui demande a I’ 3 variables : pour les heures, h, en secondes, Un exemple d’exécution : la forme tutilisateur de lire le temps représenté sous | ier! it le we" les minutes, m et les secondes, s, ensuite il convert 38 [Donner Mhewe | Donner tex winute: i Jon serand Le temper Ihinn2on 2, erin un progam en heie, minutes ot Un exemple [i ' nd | a0 remtiont oo qu demanede th lon eon Jone Vhidmn20e Cy a ilbateu « onde cette valeur a) 00 Hew Cénventn de hase dan alyorithune ys en necones, I convert x” ‘Objectif du chapitre + * &2_Lastructure conditionnelle « 1 Linstruction Si-AlOrs «+ + + 54 Liinctraction SI-Alors-Sinom + + «= “< Wnstruction conditionnelleimbriguse ++ + 5.1 Objectif du chapitre A priori, dans un programme les instructions s’exécute cied le microprocesseur exécure une instruction par instruction xécute une seule fois). Généralement, ce tes te aussi d'une maniére unique( chaque instruction se on peut avoir un mécanisme de rupture qui évite Pexécution séquentielle ctx ‘on disposent de deux mécanismes de rupture, i $3 nt d'une maniere linéaire (séquentle) n dans l’ordre donné dans Valgorith=: pas roujours le cas, aigonthme. Tous les langages de programmar de: © Les tests : ils permettent d’effectuer des choix, de se comporter différemment suivant les ct constances. structions. un cnsemble donné d'ins « Les boucles : elles permettent de répéter plusieurs f¢ is nous focalisons sur les différentes instructions pour réaliser un test. Dans ce chapitre nou: 5.2 Lastructure conditionnelle Giese “ Définition 5.1; ta structure conditionnelle permet 4 un algorithme de tester une con tion est vraie Palgorithime ex¢cute un bloc d'instructions , dans le cas contri exécute un autre bloc d'instructions. dition, si cette condi: aire, Valgorim Pas exemple, nous pouvons utiliser une structure conditionnelle pour : © Vérifier si un nombre est paire ou non; Chaptire § Les ington # Vérifier si un nombre est premier Tester le signe d'un nombre; ote nditionnelle On distingue trois formes possibles pour la struc 1, Linstruction Si- Alors : elle est utilisée dans le cas d'un seul chal; 2. instruction Si-Alos-Sinon : elle est utilis Jans te eas e deux choix possibl 3. instruction tests imbriqués : elle est appliquée dans Je eas de plusieurs ehods prosuties s contraire, Pour cette primitive, sila condition est vérifiée, on fait quelque chose, dans le on ne fait rien. En langage algorithmique, cette structure s'écrit sous la forme : Si (condition) Alors Bloc d'instructions Finsi Linstruction « Si » sous sa forme la plus simple permet de tester la validité d'une condition. Si In condition est vraie, alors le "bloc d/ instructions" sera exécuté, Dans cet exemple, on va écrire un algorithme qui demande & l'utilisateur de lire un réel x, ensuite il calcule et affiche sa valeur absoluc. + iced Ia] = -« sindonmer un reel x10 F lia valeur absolue de 10 eet 10 slspadonner un reel x15 la valeur abvolue de 15 est 15 Pour cette primitive, sila condition est vérifiée, on fait quelque chose. on fait une autre chose. En algorithmique, cette primitive s'écrit sous la forme : Si (condition) Alors bloc d'instructions A Sinon bloc d'instructions B Finsi Le bloc d'instructions exécuté dépend de la valeur booléenne de la condition. Si la condition vaut Vrai, seul le bloc "d’ instructions A" est exécuté, tandis que le bloc "d’ instructions 5" ne sera pas exécuté. Si la condition vaut Faux, seul le bloc "d’ instructions B" est exécuté, On reprend le méme exemple précédent qui calcule et affiche Ia valeur absolue en utilisant zr siz20 cette primitive. le|= { = sinon 3 ~N Algorithme valeur_abeolve ~ variates wreck debut Eerines donne un reel x") Hires? Si ox>9) Alors ye Sinon ye Finsi Eerireia valeur absolve de’,x,"est fin Nous analysons maintenant dans le tableau suivant le déroulement de l'algorithme ligne par! ous cupposons que l'utilisateur va saisir 15 pour la valeur de x. — 7 ‘ran | Variables = uy créet z Rien | Berine dommet on rex 2 donner un rél ] Ten |? Rien | $9 OAiom s (e Rien | [ee [8 | Rien [sien [1s | Ren [oe as [as | Ren | Fins 15 15 Rien | ee ee ee Voyons maintenant la traduction de cette structure en langage python. if condition: +, Fattention pour I’indentation et deux | bloc ¢'instructions A Telse: bloc d'instruction 8 7 vane en WO Par exemple, Valgorithme qui calcule et affiche la valeur absolue d'un nombre peut série comme suit : [ar floa: Ginpue donner un réel x:")) Jetse?™ 44 _——d Chapitre © 4 | oe print(“la valeur absolue de Spodonnez un reel x:20 :/la valeur adsolue de 20 est: 20 peodonnez un réel x:-20 «la valear absolue de -20 est: 20 5.5 Liinstruction conditionnelle imbriquée Lorsquill s‘agit de plusieurs tests, on utilise le test imbriqué. En algorithmque, cette sécrit sous la forme : ‘Syntaxe 5.3 Si (condition 1) Alors Inscructions_A Sinon Si (condition 2) Alors Instructions_B Sinon Si (condition 3) Alors Instructions_C Sinon Instructions_D Finsi Finsi Finsi Un algorithme qui teste le signe d’un nombre entier lu au clavier : © Négatif sin <0 © Null sin=0 © Positif sin >0 4s ‘instruction conditionnelie Imbriquéc _ ore $3} $$ Algorithme ——_signe_nombre; variables n : entier début Ecrire(‘donnez un entier n :") lire(n) Si (n<0) Alors Ecrire(n,"est strictement négatiC’) J / Sinon Si(n=0) Alors Ecrire(n,“est nul") Sinon Ecrire(n, est strictement positif’) Finsi = fin En python le test imbriqué s'écrit sous la forme suivante : [if (condition 1): Bloc 1 d’instructions [else: «| if (condition 2): | Bloc 2 d'instructions s} else: if (condition 3) ' Bloc 3 d'instructions else: | Bloc 4 d*instructions Par exemple, l'algorithme signe_nombre peut s'écrire en Python sous forme : {n=ine (inpuc(*donnez un entier n:*)) 2] if neo: . Print(n, "est strictement négatif") else: if n==0 of print(n,"est nul") else: . Print(n,*est strictement positif™) quip Dans certain programme, on peut avoir plusicurs niveaux d'imbrications de plusieurs if, ¢& etre Vorigine d'ambiguité et d'erreurs de U'indentation. Afin d'améliorer la lisiblité du pros™™ on peut utiliser Vinstruction elif. Cette instruction permet de remplacer else if et d'assuret lisibilité pour le code, La syntaxe python de instruction elif est donnée ci-dessous : ad Chapitre § 1 if (condition 1) Bloc 1 d‘instructions elif (condition 2) a) Bloc 2 d unstrections elit (condition 3) Bloc 3 d*instructions +) Bloc 4 d'instructions Par exemple, Valgorithme signe_nombre peut sécrire en Python sous forme : ceine(input(*donnez un entier az) if n<0. print(n,*est strictement négatif”) j | elif ne=0 proac(n, "est nul*) | + else | print(a,"est strictement positif™) 5 5.6 Exercices Exercice 1 1. Trouver toutes les erreurs se trouvant dans le programme ci-dessous, et indiquer briévement la facon de les corriger. : {asint (input (*Donnez une valeur entiére:")) | kf w2=0 Prinr(a," est pair") Sf a¥2ico s| printf (a," est impair") 2. Que fait ce programme? 2. Ecrire Je programme précédent en utilisant la primitive if-else Exercice 2 1. Trouver toutes Jes erreurs se trouvant dans le programme ci-dessous, et indiquer britvement la fagon de les corriger. \ fxetloat Ginput (“Donnez un réel x:7)) jysMloat Cinput (‘Donnez un réel y:")) s|opsinput (“"Donnez un opérateur (+ ou |if (opa's ) s| resultarexty [else + | resaltarex - y: | priot(x,op,y_resaltat) a 56 Brercices_ — —— 4 Jeulatrice ler une petite ca code afin de simul 2. Modifier ce Exercice 3 thon qui lit deux nombres entiers (A et B) au clay 0 eee vag 2 ia ro pour afcher le minimum de trois wombres enters (A,B et Exercice 4 selon i formate de Lorent, te poids idéal d'une personne est ealeulé & parti yy ; em) ot de son sexe $ comme suit + 48 w “¢ Pour les hommes : Poids idéal = (T- 100) ~ ((T~ 150)/4) Pour les femmes : Poids idéal = (T- 100) ~ ((T- 150)/2.5) Ecrire un programme qui permet de calculer et afficher le poids idéal d'une personne g ,. de sa taille et son sexe (caractére 'H' ou 'F’) entrés en données. % 1 Exercice 5 1. Ecrire un programme qui demande deux entiers (A et B) a l'utilisateur, et qui affiche le Sipe du produit de A et B sans faire la multiplication. Exercice 6 1. “Une année est bissextile si elle est multiple de 4, mais ceci nest pas vrai pour les amis multiples de 100 sauf pour celles multiples de 400 ". Ecrire un programme python qui perme, dafficher si une année est bissextile ou non. - Ecrire un programme python qui permet d’obtenir le nombre de jours d’un mois donné (i: noterez que l'année est aussi une donnée du probléme, puisqu'elle influe sur la durée du 20: de février). Exercice 7 1. Borin a, © un programme python qui demande & l'utilisateur de lire deux nombre réels A et B® afficher la solution de l'équation du premier degré : AX+B=0 - Eerie wu i et elfcher eo Python qui demande a l'utilisateur de saisir trois nombres réels 45° les solutions de Téquation du deuxiéme degré : AX? 4 BX4C020 Chapitre 5 Ley instructions conditionnelles Exercice 8 1, Ecrire un programme python qui demande & l'utilisateur de lire au clavier 'heure et les minutes, etl affichera Vheure qu'il sera une minute plus tard. Par exemple, si l'uulisateur tape 21 puis 32, le programme doit répondre : “Dans une minute, il sera 21 heure(s) 33°. (n’oublie pas Safficher un message d'erreur si la saisie de Theure n'est pas valide ; les heures est entre 0 et 23, les minutes entre 0 et 59). 2, Ecrire un programme python qui demande a I'utilisateur de lire au clavier l'heure, les minutes et les secondes, et il affichera l'heure qu'il sera une seconde plus tard. Par exemple, si l'utilisateur tape 21 puis 32 puis 56, le programme doit répondre : “Dans une seconde, il sera 21 heure(s) 32 minute(s) 57 seconde(s)”, 9 Les instructions '\ ratiyg ® vee 4 621 Defintion = einess * 622. Laboucle déterministe Pour - « vocee este nes wk 162.3 Labovcle conditionnel Tant que “ 6.3. Lesboueles imbriquées - - dct estostraction de brancementincnatinnal 6669257 5 sc Vinson beak ee cece esse s 642. Liinsiruction continue 6.1 Objectif du chapitre 1a table de raul? Nous souhaitions élaborer un algorithme (programme python’ cl tions él gorithme (progi python), qui affiche I (code a tion d'un entier de 1 jusqu’’ 10, Lalgorit ; rithmique 1). jusqu’a 10, Lalgorithme qu’on peut proposer est donné ci-dessous est clair que cet algorit , fois. Nowe beet See ae bien structuré, on répéte le méme bloc d'instructions plusieo* seuctnts hte pitre consist & résoudre ce genre de probleme en itroduls! 4 pitre 6 Les instructions itérat ‘Algorithme 6.1 Algorithme Table Multiplication; variables n :entier Début Eerire(“donnez un entier n : lire(n) Eerire(1**,n7=" Ecrire("\n") Ecrire(’ Ecrire(" Berire("10**, Ecrire("\n") Fin 6.2 La structure itérative 6.2.1 Définition Lexécution itérative permet de répéter une instruction ou bloc d'instructions plusieurs fois. Linstruction (le bloc d'instructions) ne sera exécutée plusieurs fois que sous certaines conditions. Plus précisément, le programme teste une condition, tant que la condition est satisfaite le programme répéte une instruction, dans le cas contraire, le programme fait une autre chose. Par exemple, on utilise les structures itératives pour : * Calculer la somme : Sfigk =0+1+.0+n * Calculer le produit : [Jy f= 1+2+...¢n + Calculer la puissance 2" sete On distingue deux formes possibles pour la structure itérative : 1. La boucle déterministe Pour : on l'appelle aussi la boucle indexée, dans cette primitive, on connait 4 lavance le nombre de fois qu’on doit répéter une instruction ou bloc d’instructions. 2. La boucle non déterministe Tant que : on l'appelle aussi la boucle conditionnée, dans cette Primitive, on ne connait pas 4 l'avance le nombre de fois qu'on doit répéter une instruction 51 . _ 62 Lm strweture Mérative__. —Y (62 La structure Ie bloc instructions sera répére y, | " | finstructions. Dans ce cas, he, cow bloc din | toujours vraie. 6.2.2 Laboucte déterministe Pour on 62}§ $$ our, on connat Favance fe nombre de répétition is insye, ny, En algorithmique, cette primitive s'écrit sous la forme : Pour i \J jusqu’a VF faire instruction_A FinPour bloc d'instructions. — i: est une variable qui représente un compteur. — Vi: la valeur initiale du compreur, — VF : 1a valeur finale du compteur. — instruction_A représente des instructions quelconques, c'est-a-dire : * instruction simple * bloc d'instructions * instruction composée (test ou boucle) Dans cet exemple, on va donner uni 4 Taide de boucle Pour, (Rigriine 63} Algorithme Table Multiplication ; variables n ,j:entier Début Ecrire(“donnez lire(n) Pour 1 jusqu’a 19 faice ire," n,7= 4p) Ecrire(", 2") FinPour Fin solution pour le probléme de la table de multiplication un entier n :") 52 tives Chiaplire & Les inatrvctions ité Afin de comprendre Texécution de cet algorithme, nous donnons ta trace d man seogrammne donee \ ére pour comprendre correctement le fonctionnement dn eumon Cost Tinténeure de ordinateur Dans notre cas, nous analysons le résultat envoyé par Falgonthme (chaque passage dans le corps de la boucle) + Iteration 1: On affiche sur 1 Est-ce que i<10? oui : an: 1*5=5 puis i devient i=2 + Itération 2 : i=2 Est-ce que i< 10? oui On affiche sur Iécran : 2*5=10 puis i devient i=3 + Iération 3 : i=3 Est-ce que i<10? o On affiche sur Mécran : 3°5=15 puis i devient i=4 + Iteration 4 : 1=4 Est-ce que i<10? oui: On affiche sur I'écran : 4*5=20 puis i devient i=5 Itération 5: On affiche sur Péer -ce que i<10? oui: 5*5=25 puis i devient = Itération 6 Est-ce que i<10? 0 On affiche sur "écran : 6*5=30 puis i devient i=7 # Itération 7 : i=7 Est-ce que i<10? oui : On affiche sur lécran : 7*5=35 puis i devient « Itération 8 Est-ce que i<10? oui: On affiche sur Pécran : 8*5=40 puis i devient i= « Itération 9 : i=9 Est-ce que i<10? oui: On affiche sur I’écran : 95=45 puis i devient i= 10 10 Est-ce que i< 10? oui: 0 puis i deviemt (=11 * Itération 10 On affiche sur Mécran : 10°5: © Iération 12 : i= 11 Est-ce que i 10? non : (On sort de la boucle Pour. ‘YVoyons maintenant la traduction de cette structure Pour en langage pythor fort im range (VI,¥Pv pas): ] Remarque 6.1 — expression range(VILVF +1) est équivalent & range(VILVF + 1,1) — expression range(VF+1) est equivalent & range(0,VF #1,1) 33 62 La structure itérative Lialgorithme de Ia table de multiplication en Python : » “ un entier sfneintCinput(*donnez un ci for i in range(1.11,1) +] princi sien) ee «edger we enter nes 5 3] 265=10 35=15 20 585=25 >| 625230 765-35 2] 865=40 O5=45 11 [1065=50 6.2.3 La boucle conditionnelle Tant que Pour cette boucle, on ne connait pas & l'avance le nombre de répétition d'une instruction 9 bloc d'instructions. Dans ce cas, le bloc dinstructions sera répété tant que la condition ex toujours vraie. En algorithmique, cette primitive s'écrit sous la forme : Tant que (condition est vraie) faire Bloc_instructions FinTantque ssi déterine Dans cet exemple, on donne un algorithme qui Il lit en donnée un entier a puis il déter Je premier entier N tel que : 14+24..4+N>0 a . it est Evident qu'on ne peut pas utiliser la boucle Pour pour trouver cet enties, corona combien de fois qu'on doit faire Ia somme. Pour cela nous proposons Valgorthme st ui utilise une boucle Tant que ‘Algorithme 6.2}——— Algorithme moyenne_informatique variables a,s,i sentier opt :entier Début Herire("Donnez la valeur de a :") lire(a) Tant que s Exemple ; On consider le code python ci-dessous : for i in range (1,4, for j in ray Inge (1 Print (isj, anaes De Pri — Nération 1; is 1 tee 6 Les Instructions i = Itération 2: + Sous itération 2-1 : j= Lon afliche 3 © Sous iteration 2-2 : j=2 on affiche 4 = Iteration 3: So itération 3-1: j=1 on af he 4 + Sous itération 3-2 : j=2 on affiche + Sous itération 3-3 : j=3 on affiche 6 > Résultat d'exécutic 2)34 456 tives 64 Les instructions de branchement inconditionnel 64.1 Ltinstruction break Définition 6.5. Linstruction break sort de la plus petite boucle for ou while que englobante, » Exemple : while True. S| print (i | if ims. ‘ break +1 ‘xécution : 68 Exercees » xemple : Vin ranges 11) iL Bene primes) _ » Résultat d'exécution 65 Exercices Exercice 1 1. Trouver toutes les erreurs se trouvant dans le programme ci-dessous, et indiquer brie facon de les corriger. . [For i in range(1;101;1): . | print ("la racine carrée de",i,"est",sqrt(i) 2. Que fait ce programme? Modifier ce code en utilisant la boucle while? Modifier ce code pour que le programme s'arrétera lorsqu‘on lui fournira la valeur0. tlre les valeurs négatives Exercice 2 Ecsite un programme python quilt un entier n au clavier et qui calcule et affchelavake* somme suivante : DM=oeie +n Ecrire un Programme python qui la factorielle : it un entier n au clavier et qui caleule et affiche la vale n=] #243ean Exercice 3 En utili | & uulsant ta bout xen entrés au clavier } jaune . imime question en utilisant la boudle while le for, iplicati ; calculer par multiplications successives X d'un réel 3B 7 7 Mathémaniquement, In mite d: Way 0, est pait 2Uy +1 Sil’, est impair nme Python permettant de calculer et dafficher les 11 pre 1 entre un prog a est un nombre entier Iue par luilisateur au cl de Ia suite de Syracuse , Eerire un programme qui calcule indice du premier terme de la suite 1 Exercice 5 saetb, ensuite Hl ealeule 1. Ecrire un programme qui demande a l'utilisateur de saisir deux enti et affiche le pged de ces deux entiers Exemple d’exécution: Donnez un entier a:20 Donnez un entier b:16 + peed (20,16) =4 Exercice 6 Ecrire un programme qui demande a l'utilisateur un entier positif et l'affiche a l'envers. Par exemple, si lentier est 3524, le programme affiche 4253, Modifier le programme afin de calculer Je nombre lu a rebours d'un entier n entré au clavier Exercice 7 Un nombre parfait est un nombre présentant la particularité d'étre égal a la somme de tous ses diviseurs, excepté lui méme, Le premier nombre parfait est 6, il est bien égal a 1 + 2 ~ 3. qui sont des diviseurs de 6. 1. Ecrire un programme python qui demande a l'utilisateur de lire un entier, puis il affiche si ce nombre est parfait ou non 2. Ecrire un programme python qui permet d'afficher les 4 preni 15 nombres parfaits, Exercice 8 ‘Sendant sur un nombre 1. Ecrire un programme python qui affiche un triangle rempli d’étoil de lignes fourni en donnée. Donnez Ja hauteur:4 6.5 Exercices ies owes en downs fourni en donnée. “et Les fonctions Sommaire - 7A Object du chapitre Notions de base sur tes fonctions... . 3 Implémentation des fonctions en python « “ TAA Symaxe python “ 732. Chronologie de Mexécution d'un programme comportant une fonction. 6s 7.3.3 Fometion simple sans valeur de retour ° 7.34 Fonction simple sans parametres . #s o 73S. Valours par défaut ° 726 Arguments nommés : o ee 8 sees 8 On souhaite écrire un algorithme qui demande a l'utilisateur de saisir deux entiers p et n et qui saleule et afiche le nombre de combinaisons de p parmi n, Le calcul se fait de la maniére suivante : (})- Un exemple d'exécution de cet algorithme est donné ci-dessous : pt ‘\Donnez un entier n:3 (Donnez un entier p:l (Le nombre est 3 Une solution évidente pour répondre ce probleme consiste 4 ealculer la factorele de trots nombres mp tmp chacun a part. Le code algorithmique de cette solution est le suivant : 7.2 Notions de base sur tes fonctions {Algorithme 7 Algorithme variables n.p.iFN. Debut Kerire("Donnez les entie! nbr_combinaisons FNP.CPN sentiors rsnet P lire(n.p) gecaton} de itt FNC | Pour iv 1 jusqu’a n faire | FNe-EN4 FinPour tycaicul de pit! FPA1 Pour i-1 jusqu’a p faire FP<-FP*i | FinPour #ecalcul de (n-p)!# FNPC1 Pour i~1 jusqu’a n-p faire FNP<-FNP*i FinPour #2Calcul de CPN#F (CPN—(FN*FP)/FNP Ecrire(“le nombre est :’,CPN) Fin icul de la factorielle se rege I est clair que cet algorithme proposé est mal structuré puisque le cal Jhapitre [a notion éU* plusieurs fos. fin de afin de remédier a cet inconvenient, on propose dans ce cl fonction et les principaux concepts qui s'y rattachent. 7.2 Notions de base sur les fonctions Définition 7.1 Une fonction est u “ . * " teeta n bee instructions qui a un nom, dont le fonctionnemenc dépend 0? un résultat, Les fee (les arguments de Ia fonction) et qui le plus souvent 280% — ions permettent de décomposer les programmes en sous-program™™= tiliser des morceaux de programmes Chapitre7 Les fou En algorithmique, Ia definition d'une foncwion =) Fonction NomFonction (liste des paraméires) : TypeRetour Début Bloc d'instructions retourner valeur FinFonetion + TypeRetour est le type de la valeur retournée par la fonction + NomFonction est le nom de la fonction ; Dans cet exemple, on va écrire le code dela fonction fact qui retourne la valeur de 1! ‘Algorithme 7. Fonction —_fact(n :entier) :entier; variables i,fentier Début fel Pour iI jusqu’a n faire fefti FinPour retourner f; FinFonetion ‘Trois étapes sont toujours nécessaires 4 l'exécution dune fonction : 1. Le programme appelant interrompt lexécution de cette fonction, 2. La fonction appelée effectue son bloc d'instructions. Dés qu'une instruction return est recontrée, la fonction s‘arréte, 3. Le programme appelant la fonction, reprend alors son exécution. Exemple 7.2 Afin de comprendre ces trois étapes, nous donnons ci-dessous la solution de V'algorithme ui retourne le nombre de combinaisons en uitlisant le concept des fonctions. ome pour calculer nit Fonction fact(m senticr) variables iF sentiers Debut Fel Pour i+-1 jusqu’a m faire FOP FinPour retourner (F) Finfonetion #2 procranme principales Algorithme nbr_combinaisons; variables n,p.CPN zentiers Debut Ecrire(Donnez les entiers n et p :") lire(n,p) eles CPN—(Fact(n)*fact(p))/fact(n-p) Ecrire("le nombre est CPN) Fin 7.3 Implémentation des fonctions en python 73.1 Syntaxe python {a syntaxe pyliton pour définir une fonction est la suivant 1) def nomFonction(liste des arguments); patie ligne expligue a quoi sect cette fonction" +] bloc instructions [return resultant "reprend Yexemple de In fonction fact(n) qui retourne fa valeur den} en langage pythom —— TT medion retourne la valeur de q!* “cette fo) fl | for i in range (1n+1); ei [return ¢ 64 Les functions Chapitre affiche: le nombre Pour ce deuxiéme exemple, nous traduisons en python Palgorithme qu de combinaisons en utilisant le concept des fonctions. [def facein): | teette fonction retourne la valeur de al” a} fat for i in range(1,n+1): ffi cura f amme principal | neint(inpur(“Donnez un entier n:*)) | «|psint Cinput("Donnez un entier p:")) [tAppel i | epm=fact (n)/( fact (p)= fact (np) print ("le nombre de combinaisons est:*,cpn) 73.2 Chronologie de I'exécution d’un programme comportant une fonction 1a figure 7.1 présente le processus de l'exécution d’un programme qui fait appel A une fonction don- née, def nomFonction (argumenty, arguments... argument): instruction, (valeury, valeur, valew) Resultat ~ nomonet FIGURE 7.1 ~ Chronologie de exécution d'une fonction Définition de 1a fonction “somme * qui prend en paramétre un entier n et qui retourne la Somme des entiers de 04 n suivante + Résultat : {Ta somme de 0 @ 10 est: 5S sin autre appe! de la fonction "somme” {point (input ("Entrer un encier ¢ ") s = somme(n) . . | print(*la somme de 0 a", m ,"esth + s) Résultat : P Entrer un entier : 5 la somme de 0 a 10 est: 15 733. Fonction simple sans valeur de retour Nous pouvons définir une fonction qui ne retourne aucune valeur, en algorithmique cel est appelée procédure. Dans cet exemple, nous définissons une fonction simple qui affiche la table de smuleiplict* un entier nde 1 10. | def tableMutltiplication (n): for i in range(1,11); print (i,"*" jn, *=",ien) a Pour utiliser la foncti ion que not in Je mode interactif de python : us venons & définiy, il suffit de Pappeler par son nom. Ais 7.34 Fonction simple sans parametres Mest possible de définir une fonction sans paramétres en python 1 affiche "Bonjour tout le Dans cet exemple, nous donnons le code d'une fonction simple monde" sur 'écran def afficheBonjour Q: print ("Bonjour tout le monde") 735° Valeurs par défaut On peut, a la fin de la suite des arguments, préciser que certains arguments ont une valeur par défaut lorsque cette valeur n’est pas transmise. par exemple : def somme(a=1,b=5) : return a+b s=somme(10,20) print(s) # affiche 30 s=somme(10) print(s) 4 affiche 15 1 | s=somme() print(s) # affiche 6 7.3.6 Arguments nommés Il est parfois commode de donner un nom aux différents arguments, cela permet dappeler la fonction de fagon assez naturelle et en transmettant les arguments dans un ordre quelconque. Par exemple : def somme(a=1,b=5) : return a+b s=somme(b=20,a=10) print(s) # affiche 30 67 7A Vara loenien et pibaey 7.4 Variables locales et globales bles globales «| . En Python, on distingue deux sortes de variables les varia les a ses rune fonction, Ct pes Les vanables locales sont introduites dans la definition dune Vek reo on. Par contre |e 1 diane a ste de la déhninon moais pas A Texter de fa fonction, Par 6° ' es pana fonction et peuvent E176 WGI! 8 Hing, sont introduites & Fextéricur de fa définivon d'une comme A lexténeur de cette définition. Pendant Fexdeution dune fonction NomFonetion, Python crée une table locale des symoe , seront inserits : — tes noms des arguments de la fonction NomFonction 1s variables et fonctions eréées pendant l'exécution de la fonction a besoin de la valeur d'une variable x, n Fonction, — les noms d va chercher le nem, ‘Au cours de execution, si Python dans la table locale des symboles; — sixne sy trouve pas, il consultera la table globale; — six ne s'y trouve pas non plus, il enverra un message d’erreur ‘Ainsi, sil existe une variable locale et une variable globale portant le méme nom, Ia vara: globale ne sera pas accessible pendant l'exécution de la fonction Dans le programme suivant : x est une variable globale et y est une variable locale, x= 7 variable globale def £0 Sy 28 pvariable locale +) return y4x «ls=f0 print(s.x) # affiche 15 7 Exemple 2: : [eet fox: rewen x+y peint({(3)) # affiche 5 eiprint(y) —# Namekrro yi NameError: name ‘y" is not defined 75° Exercices Exercice 1 1, Ecrire une fonction d’ loyen ye de deux entiers ‘entéte Me ‘ ne(a,b) qui retourne 1a moyenne ese’ 68 re T Les fone ints et affiche bes r4 Eerire le programme principal qui teste les sous progea anaes prece envor's par les différents appels ereice dune sphite de rayon 4 crite une fonction volumeSphere qui calcule et retourne fe vol fourni en argument. On rappelle que le volumé est donné par la formule suivante Vn (faye . erire une fonction volMasseEllipsoide qui retourne le volume et Ia masse d'un ellipsoide. Les paramétres sont les trois demi-axes et la masse volumique. On donnera & ces quatre pa des valeurs par défaut. Le volume d'un ellipsoide est calculé & aide de la formule suivante 4/3)enearbee . crite le programme principal qui teste les sous programmes précédents et affiche les résultats envoyés par les différents appels. Exercice 3 |. Ecrire une fonction d'entéte EstpairF(n) qui retourne 1 sile nombre entier n passé en argument est pair ou 0 sinon. Ecrire une fonction d’entéte EstpairP(n) qui affiche un message si le nombre entier n passé en argument est pair ou faux sinon, .. Ecrire le programme principal qui utilise les deux sous-programmes précédents Exercice 4 Ecrire une fonction d’entéte Min2(a,b) qui retourne le minimum de deux entiers a et b donnés. imum de trois entiers a,b et ¢ . Ecrire une fonction d'entéte Min3(a,b,e) qui retourne le n donnés. Eerire le programme principal qui utilise les deux sous-programmes précédents, Exercice 5 . Ecrire une fonction d'entéte Somme] (n) qui retourne la valeur de la somme suivante : 78 70 meets a de la sony 2 Ferire une fonction d'entéve Somme2(n) qui retourne Ia valeur de It ‘ne +. Kerire une fonction dieméte Somme3(n) qui retourne la valeur numérique du réig comme double suivante : yun os Exercice 6 1 ferire une fonction d'entéte TableMulti(n) permettant d'afficher la table de multiplication nombre entier nde 04 10. 2. Herire une fonction d'entéte TableMultiFraction(n,d,f) permettant d'afficher la table de ~ tuplication d'un nombre entier n de d a f. 3. Ecrire le programme principal qui utilise les sous-programmes précédents Exercice 7 Soit la suite (tin) définie par : 1 2«uy-1 sinon Eenre une fonction d'entéte suite(n) qui retourne Ja valeur du terme un 2. Ecrire une fonction d'entéte somme_termes(n) qui retourne la valeur de la somme suis2=* +n Daswtmt hoo . 5 " 5 - 3. Ecrite une fonction d’entéte rang(a) qui prend en argument un entier a et qui Premier indice n, tel que uy > a Exercice 8 1. beri ‘ in . te re une foncnon d'entéte puissance(x,n) qui permet de calculer par multiplications = . se", avec s un nombre réel et et n un entien Ecrire une fonction Snction d'entéte fact(x,n) qui retourne la valeur de nl. s exp(t) PO 3. Ecrire une f ica nombre del doen ne MYExp() : qui retourne une valeur approchée de Onné + en utilisant les termes du développement limité : exp(z) © 1+ fonctions Exereice 9 On appelle nombres «Armstrong les nombres entiers positifs tels que la somme des cubes de leurs chiffres (en base 10) est égale aut nombre tui méme. Exemple + 153 est effet : 19.453 488 = 153 nombre WArmstrong. En 1. Ecrire une fonction d'entéte Est_Amstrong(n) qui retourne True si fe nombre n est un nombre a’Armstrong ou False sinon, ong ink 2. Kerire une procédure d’entéte Liste_Amstrong(m) affiche tous les nombres d’Ar rieurs oit égale & m. Exercice 10 On rappelle qu'un entier supérieur ou égal 2 est premier si et seulement si il n'est divisible que par 1 et par lui-méme, une fonction d’entéte Est_premier(n) qui prend en argument un en ‘True si 'entier n est premier ou False sinon. jer n et qui retourne 2, Ecrire une procédure d'entéte Liste_premiers(m) qui prend en argument un enticr m et qui affiche tous les nombres premiers inférieurs oit égale & m. n “Hay, Les tableaux 4 une seule dimeng, 7) Sommaire RL Objectif du chapitre . 82 Lastructure tableau, RB Accts et parcours d'un tablean S31 Accés aux éléments d'un tableau. . % S32 Parcours d'un tableau . % 833° Quelques rdgles «eet Dy 834° Exemple fe, veel ag 84° Implementation de la structure tableau MPN -% SS Implémentation avec une liste... : teeny see 7 84.2 Implémentation avec le module numpy | thee, 7 SS Les algorithmes de recherche... , . TTT ete gy SSL Recherche séquemtielle . . : teste. ¥ 852 Recherche dichotomique . 86 Exercices ... 2. ‘Donner 1a nore (Donner ta note 2 |Donnez la note 3 |Donnez ta note 4 *|Donnez la note § Donnez la note 6 7{La moyenne de ta —>7 classe est; Le nombre des étu syanr se? diants ayant une ROE >= 9.00 est.3 Chapitre 8 Les tableaux a ume seute dimensfon [Algorithme 8.1 Algorithme moyenne informatique; variables N1,N2,N3,N4.N5,N¢ ept entier Début Ecrire(Donnez la note 1 lire) noy :téel Ecrire("Donnez la note 6 ire(N6) SCNI+N24D moy+-s/6 opteo SiN1> moy Alors epteeptt Finsi Si N62 moy Alors epteept+1 Finsi Ecrire("Le nombre des étudiants ayant une note > & la moyenne est :",cpt) ; Fin Diaprés le code de cet algorithme, nous remarquons qu'il y a dés instructions qui se répétent : le bloc de la saisie et celui de test, et malgré ga ne nous pouvons pas utiliser les boucles. Cela implique que Valgorithme proposé est mal structuré. Dans ce chapitre nous introduisons la structure tableau pour résoudre ce probleme. 8.2 Lastructure tableau Un tableau est un ensemble des éléments de méme type qui sont stockés d'une manigre consécutive dans la mémoire. La variable tableau est une structure qui permet de regroupet plusieurs variables en utilisant un seul nom (le nom du tableau). En algorithmique,la déctaration d'un tableau se fait de la facon suivante : Variables tableau NomTableau [Dim] :type B " _ 83 Accés ef parcours d'un tablent s de tableau NY « Dim : désigne le nombre des élément «ype: indique Te type des éléments de tableau; {Exemple J * Variables tableau N[6]:réel « Variables tableau age [20] :entter = Variables tableau T[100] sentier comme les variables scalaires, les tableaux peuvent étre initialisés avec n'impor’’ quelle ya, ext possible, comme on le fait pour une variable sealaire, dinitaliser partiellement \ totGleme, tableau lors de sa déclaration, Cette fois, cependant, les valeurs fournies devront obi: gatoiremen::, des expressions constantes. ‘Voici un exemple qui montre comment initialiser un tableau, Variables tableau T[5](10, 20,3, 4,0) :entier; Cette déclaration permet de placer les valeurs 10, 20, 3, 4 et 0 dans chacun des cing élé. ments du tableau T. 8.3 Accés et parcours d’un tableau 8.3.1 Accés aux éléments d’un tableau Soit T un tableau de N éléments réels (ou d'un autre type de données entier,caractére,ctc..) Variable tableau T{N) : reels Vaccés & un élément d'un tableau T se fait par Vindice en se basant sur I'adresse du premier du tableau (& T[0}) obtenue directement par le nom du tableau T : &T li] = &T [0] + i + taille(reel) __ avec taille() est une fonction qui indique le nombre 4’ 1 non réel, ‘octets nécessaires pour stocker — Laces au premier élément d'un tableau T se fait par T[0] — Laccés au dernier élément du tableau T se fait par T[N-1] 4 Chapitre 8 Les tableany A une seule 8.32 Parcours d'un tableau Le parcours de tous les éléments d'un tablem, se fait A Taide lab es d'un tableau T avec Ia valeur 0 jucle Pour ou Tant que Par exemple, le code suivant initialise toutes les fg] Algorithme —_InitialiserTableau; | variables tableau T(6],i semtiers Début Pour i+-0 jusqu’a 5 faire Tho FinPour Fin » Résultat d'exécution La figure 8.1 montre le résultat d'exécution de l'algorithme précédent au niveau de la mémoire cen- trale (RAM) Tro) Tu Tre) TR Tra) 113) FIGURE 8.1 ~ Représentation des éléments du tableau dans la RAM 83.3 Quelques régles 8.3.3.1 Les indices Un indice peut prendre la forme de n'importe quelle expression arithmétique de type entier. Par exemple, si n, p et j sont de type entier, ces notations sont correctes : *TIn+3} © T[n-2*j+p] ‘Aucun contréle de débordement dindice n'est mis en place par Ia plupart des compilateurs. De sorte qu'il est ues facile (si l'on peut dire!) de désigner et, donc, de modifier, un emplacement situé avant ou aprés le tableau, 75

Vous aimerez peut-être aussi