Vous êtes sur la page 1sur 24
3. Alfichage du résultat obten. 3.4 Exercices d'application Exercice 1 Ecrre un programme Pascal qui permet de tester si un nombre entiee donne par uilisateur st pair ou non Exercice 2 Ecrire un programme Pascal qui permet dafficher le minimum de trois valeurs réelles slistnctes données par Iuilisater. Exercice 3 Ferire un programme pascal qui calcule ctaffiche Atel que at b sont deux entirs donnés ar Putilisatur Exercice 4 Ecrire un programme paseal qui calcu ct affiche la somme suivante: 12+ Ist 16+ 5+ 1100, en utilisant la boucle For-do pus la boucle While-do, Exerciee 5 Eerie un programme pascal qui permet de demander un mot de passe &utilisateue, puis \ériferetalficher si le mot de passe est correct ou non Solutions Solution 1 1 PROGRAM pait_impair, 2 USES wincrt 3 VAR 4 nsinteger; 5 Begin 6 Read(n}s 7 If(amod2 <0) then write(n, "est impair); 8 If(mod2=0) then write(a, est pai), 9 End, oubien PROGRAM pai impair, USES winert; VAR integer; Begin DNIPF BOUAKE/LANGAGE PASCAL ANNE ACADEMIQUE 2022-2023, ‘SHAPITRES STRUCTURES DECONTROUE Ecrre un programme Pascal qu perme de calculer et afficher la somme suivante: S=14249+° + 10? Program Exemple boucles_imbriquees; Uses winert; ij puis imeger, Begin $0; For 1 to 10 do {boucle 1} Begin puis=1; for j=1 to 5 do {boucle 2} 3.3.6 Passer d'une boucle _a une autre 1. while-do | > repeat-untit condition do ifcondition then begin repeat Instructions Instructions end; until Notcondition), For-do| > while-do Instructions 3. For-do| > Repeatuntil DNIPF BOUAKETLANGAGE PASCAL ANE ACADEMIQUE 222 ‘CHAPTTRED, stRUCTURESDE CONTROL — Pas besoin d'eneadter les instructions par un "begin end”, le “repeat un cerdle, Begi 2100; REPEAT neath; IF (a mod 9 =0) THEN Writeln(a) ; UNTIL 1200 ; End, Ce programme afliche & Mécran tous les multiples de 9 compris entre 100 et 200. Pour chaque nombre n compris entre 100 et 200, on caleule le reste de sa division par 9, sice reste est égale & 0, alorsn est un multiple de 9, 3.3.4 Diflérence entre les deux boucles conditionnelles While-do Repeat-uniil _ Le testesteffectue avant dentrer dans la _— Le test est effectud apres les instruc oucl tions de la bouele _ On sort deta bouele sia condition est __ On sort de la boucle si la condition fausse cst viaie Les instructions dela boucle peuvent ne __ Tes instructions de la boucle sont jamais étre exécutées, si des la premiere exéoutdes au moins une fo fois la condition est fausse ATTENTION Pas de point-virgule";"aprés le do dans une boucle, et avant le else dans une instruction nelle 3.35 Les boucles imbriquées Les trois types de boucles peuvent tre imbriquées ;e-i-d. le bloc dinstructions dune ‘boucle contient une autre bouele. Les boucles imbriquées sont surtout utilisées pour la manipulation des matrices Exemple: DNIPP BOUAKE/LANGAGE PASCAL ‘Voici ta trace dexécution si nbee~ 5 Condition Instructions: som | num i Expression correcte Solution 2 Program perimetre_cercle; Uses Winert; Const PI-3.14159; Var rayon, perimetre: real; Begin Read(rayon}; Perimetre = 2 * PI * rayon; write('Le périmetre est: périmétre); End Solution 3 Premiére solution: en u 1 Program permut; 2 Uses Winert 3 Var 4 abs integer; 5 Begin 6 Read(a): 7 Read(b); {ou bien on écrit directement Read, b): 8 areath; 9 10 1M Writeln(a~a); 12 Write(b="b ); 13 End. Deuxiéme solution: en utilisant 3 variables Program permut; Uses Winert; Var 2b, tmp : integer; Begin Read{ay: Read(b): tmp =a; ar=b DNIPP BOUAKE/LANGAGE PASCAL “ANNE ACADEMIQUE 2022-2023 28 ‘CHAPITRE 2, LES ELEMENTS Df BASE DULANGAGE PASCAL Exercice 3 Ecrire un programme Pascal qui permet de permuter les valeurs de deux variables entiéres Solutions Solution 1 1 (2641) > (4/3) (Feel + entice) > (entier/entier) 3.6(reel) > 1.333 (reel) ‘True(booleen) 4 > Expression correste (12> 3)>4 ‘True(booleen) > 4(entier) q > Expression ineorreste 3. Not( 12 <> C#16.8/4))and True ‘Not(true) and true = false and true False (Boolean) > Expression correcte 4. 59< 183) 95 <24 False(Boolean) 4 > Expression correcte 5. >24)1Br4-6) False + true ‘erreur q > Expression incorrect 6. M1 mod3 +5.2/2 2+ 2.6=4.6(recl) 4 > Expression correct 7. False or not false and true False or True and True DNIPF BOUAKE/LANGAGE PASCAL ANNEE ACADEMIQUE 2022-2023 21 SHAPITRE 2. LS ELEMENTS DE BASE DU LANGAGE PASCAL Ne pas confondre:= avec le ~ réservé a la comparason des variables dans un est. Une affectation ne peut se faire qu‘entre une variable et une expression de méme "ype (si A est réel, impossible de faire A~"bonjour’ ASB est différente de B:=A, dans la premigre instruction c'est la valeur de A qui est modifige, par contre dans la deuxiéme, cest la valeur de B qui est modifice. ~ On ne peut pas éerire variable1:= variable2:= Expression, ni Expression = Expres- sion2s ~ Six est un réel et y est un entie: on peut écrire x:=y; mais on ne peut pas éerire Aprés exécution = prend la valeur: 10 et X prend la valeur: 8 2.11 Exercices d'application Exercive 1 Ces expressions sont-elles comectes ? si oui, donner le type t le résultat d'évalus 1. (2641) > (4/3) 2. (12> 3)>4 3. Now 12 > C¥16.8/4)jand True 4. 59-< 93) 5. >24)'BH=6) 6, 1 mod3 +5.2/2 7. False or not false and true Exercice 2 Ecrire un programme Pascal qui permet de calculer le périmétre d'un cercle a partir de son rayon. DNIPE BOUAKE/LANGAGE PASCAL AWNEE ACADEMIQUE 2022-2023 %6 9 write (la somme de’) { Parametre est une constante de type string.) 10 write (x) { Parametre est une variable.) 1 write (++) { Paramétre est une constante de type string} 2 write (y) { Paramétre est une variable} 13 write =") { Paramétre est une constante de type string} 14 write (x+y) { Parametre est une expression.) 15 end 2.10 L'instruction d'affectation On appellc AFFECTATION Ia mise dune valeur dans une variable. Celle-ci peut etre sous firme directe (A >= 2, ou A:=B) ou sous forme d'une expression (A:=B*C). Elle est représentée parle signe dans le langage algorithmique et (:=) dans le langage PASCAL. 2.10.1 Affectation par une variable ou une valeur constante ~ affectation (variable = valeur) permet de changer la valeur dune variable, affectation modifie le contenu de la variable. La valeur de la variable _a gauche du signe := est remplacée par la valeur _a droite de =. — Liaffectation (variablel := variable2) permet de changer la valeur de variable! par celle de variable2. 2.10.2 Affectation par une expression affectation (variable :~ expression) est effectuge par 1. Evaluation de expression 2. placement du résultat dans la variable & gauche. Remarques: _ Apres une affectation, Mancienne valeur de la variable est éerasée par la nouvelle valeur. Dans une instruction affectation, on extrait les valeurs des variables qui se situent 8 droite du (=). La parte gauche de (=) toujours est un nom d'une variable (un identificateur) qui va recevoir le résultat, Exemple: x= x +N apour effet de mettre le résultat de la somme de la valeur de x avec la valeur de N dans la variable x. Lesigne : 8 gauche" (mettre le ruta du calul (contenu de B) fis (contenu de C) dans A). DN/IPE BOUAKE/LANGAGE PASCAL ANNEE ACADEMIQUE 2023.2024 25 ‘SCHAPTTRE2, LES ELEMENTS DE BASE DULANGAGE PASCAL ‘Contenus des variables aprés Read APIO BPS C22 2.Readin(a.b,c}; Readin(d.e); A10b-20 c=15 D-22 21 3.Readin(a.b); Readin(e,d); Readin(e); A=10 B20 CH1S de16 E=22 4 Readin(a); Readin(b); Reading); A=10 B15 C=22, de21, vous deves entrer une valeur pour la variable ¢ '5.Readin(a.b); Readin; Readin(c); A=10 b-20 C=22, Readin sans paramétres provoque un saut de ligne entrée. ~a,b.¢,d,e sont des variables de type integer. 2.9.2. Instruction WRITE/ WRITELN (€crire) Write : permet dafficher tous les paramétres varl, var2, la fin du contenu affiche. vam spéeifiés et laisse le curseur Syntaxe Algorithmique Langage PASCAL, 1 Berire(varl,var2,....varn) 1 Write (varl, var2,.., varn) __ La liste des paramétres d'une instruction write (writeln) peut contenir des con- stantes, des variables et des expressions, _. Liinstruction writeln(x) permet d'afficher la valeur de x avec un retour a la ligne ala fin de Faffichage. __ Liinstruction Writeln sans parameétre permet de sauter une ligne. Exemple Program affichage; Uses winert; var x,y + integer; Begin ‘writeln(Enirer deux enters); {Paramétre est une constante de type string.) read(x, y); DN/IPE BOUAKELANGAGE PASCAL ANNEB ACADEMIQUE 2023-2024 on ‘CHAPITRE2, LS ELEMENTS DE BASE DULANGAGE PASCAL Exemple. Instructions Données | Conems es variable apes Read 1 Read); 5 xs | 2.Read(a,b,c); 678 | 26, b=7, c=8 | 3. Read( 28 | | a7 | 28, e-47 4 Ready.) 463658 | yd6, 7365 | “a,b,c, x.y sont de type intéger, et z de type rea. Si le nombre de valeurs entrées est supérieur celui des paramétres dans instruction read, le systéme conserve le reste des valeurs pour un prochain read sil exist, si non le systéme les néglige(voir 4 dans Pexemple précédent). Sil n'existe pas suffisamment de valeurs entrées sur une ligne pour remplir les paramétres de read, le systéme lit automatiquement a partir de ligne dentrée suiv- ante voir 3 dans Pexemple prévédent) _— Les deux éeritures sont identiques: 1 Read(vall, val2,.. valn); 1 READ(vall); 2 READ(val2); 3 4 READ(valn); ‘deux procédures, cest que READIN permet un retour a la ligne aprés la lecture de la liste des variables spécifiges comme paramétres. Ce changement de ligne ne prend effet ‘qui la prochaine lecture par un autre READ ou READIN. Exemple Supposons qui existe deux valeurs entiéres sur chaque ligne d’entrée : 1020 15 16 2221 DNIPF BOUAKE/LANGAGE PASCAL ANNE ACADEMIQUE 2003-2024 Programe 2 Données ampere ea} cutput} quelle deanée 2 émalcate Bevaiar 2 |] [ Résuteat 2 ce programme dot étre UL ___t ‘changé pour pouvoir utiliser dlautres données ce programme peut utiliser importe quele donnée, sans tre changé Read Cate proce pemet de ie nyleus crs pare cavirt es affextent aux warnles all, val2.,valn, specifies comme paramétes. symtaxe Algoritmigue Langage PASCAL Readvall, va, val); intéprer, real, char Lalit des prametes ue instton raed) ne peut conte eds variables. ypu variables dans une ite de parame, es valeursrespetins bes, lrsueles sont entrées parle clave, doivent tre sépurées une de autre par au moins un espace. DWHPP BOUAKE/LANGAGE PASCAL ANNE ACADEMIQUE 223-2024 SHAPITRE 2, LES ELEMENTS DE BASE DULANGAGE PASCAL Fonctions de conversion Fonetion Signification | type de Fargument ‘Type du résultat ‘Trune(X) Panic emtitre deX | Réel Entier Round(x) Amondi de X _a| Réel Entier Tenticr te plus | proche | ORDEX Rang de X Entier, Caractére, ou Booléen CHRO) Caractére ayant le | Enter Caraetére rang X Fonetions ordre - T, — ] | Fonetion ‘Type de argument Type du résultat PRED(X) | Valeurqui préctde X | Enlier,Caractre, ou De méme type Booléen SUCCOX) | ValeurquisuitX | Enlier,Caractre, on De méme type Boolean opps) Vea si Xestimpaire, | Entier Booléen | Faux siX est pair | 2.9 Les entrées/sorties 2.9.1 Instruction READ/READLN (lire) ‘Un programme a besoin de données sur lesquelles il opére Si nous éerivons toutes les valeurs des données dans le programme Iuieméme, sous forme de constantes ou daffectation, nous devons rééerire le programme chaque fois que nous voulions Vappliquer & un autre ensemble de valeurs different. Pour éviter cela, les données doivent re séparées du pro= gramme jus ce quil soit exéoute, ensuite les instructions du programme copient les valeurs des données dans les variable du programme. Aprés la mémorisation de ces valeurs, le programme peut effectuer des calculs avec eux (voir la figure qui suit) Le processus de placement des valeurs d'un ensemble de données extemes dans des variables d'un programme est appelé : les entrée (input). Pour entrer des données dans un programme en cours d'exécution, le langage pascal nous ofire les procédures READ et READIN, DNIPF BOUAKE/LANGAGE PASCAL -ANNEB ACADEMIQUE 2023.2024 21 ‘CHAPITRE2.__LES ELEMENTS DE BASE DU LANGAGE PASCAL, 3. 14 mod 3-+4.2/ 2421941 4. Not( 12 <> C*15/5))and True Not( 12 <> 9) and True = Not( True) and True = False and True = False Autres exemples expressions numérique (Sot les variables : A~6,B2, 3) _ AtBIC = AH(BIC)= 6+B/3)= 610.66-6.66 _ A/B mod C = (A/B) mod C= F/2)mod 3=3 mod 30, _ BIA + 24°C B*A) BC) = B*6)¢B*3)-1246-18 Exemples dexpressions incorrectes Leexpression boolgenne: a < bande -0 | Reel | siwo) __ Bntier ou Rest Réel | cose Entier ou Réel | Reel | | ARTANGS) Arcte(X) Entier ou Réel | Réel | | LNOO) | Loge) Entier ou Réel | Reet | p09 e Enlierou Réel >-0 |e DNIPF BOUAKE/LANGAGE PASCAL ANNEE ACADEMIQUE 2023-2024 20 Les BASE sc 283° Opérateurs relationnels > Supérieur Supérieur ou égal < —Inférieur = Inféricurou_égat = gal > Different 1. Le=et <> Opérent sur tous les types de variables précédemment définis, par contre les autres opérateurs ne peuvent pas s'appliquer sur des opérandes de type booléen. 2. Le résultat d'une comparaison est un booléen. 2.8.4 — Niveaux de priorités (Cees Forde dans lequel sont appliquées les différentes opérations d'une expression, par exemple Fexpression :x+/¥z est évaluée en calculant(y*2) puis Ie (résultat +x), parce que la multiplication est prortare par rapport & addition. ‘Voici la table des provtéselassées par ordre dSeroissant, les opérateurs sur une meme ligne ayant une priortés égale, 0 les parentheses, fonction() 2 + not (unaire) 3 */ div mod and | 4 + -or 5 Remarque les opérations du méme niveau sont appliquées de gauche & droite Exemples 1, 10#D*4) div2= 10+ 16 div 2. 17 mod E div 2= 17 mod2 =10+8=18 DNIPE BOUAKE/LANOAGE PASCAL ANNEE ACADEMIQUE 2023-2004 19

Vous aimerez peut-être aussi