cours-TI-1
30 pages
Français

cours-TI-1

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
30 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Yannick ChevalierUNIVERSITE HENRI POINCARE - NANCY I, 2000/2001 Deug TI 1AIntroductionau langage Pascal1Yannick ChevalierUNIVERSITE HENRI POINCARE - NANCY I, 2000/2001 Deug TI 1AContents1 Commen cons par un petit exemple... 32 La partie des declarations 42.1 Les di erents types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Les operations qui preservent le type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 Les op qui rendent un type boolean . . . . . . . . . . . . . . . . . . . . . . . . . . 53 La partie algorithme 63.1 Interface avec l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.2 Les a ectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Contr^ ole de ux 74.1 Execution conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.2 Les blocs d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84.3 Les boucles sur des types enumeres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.4 Les b while et repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 D’autres types 135.1 Types enumeres non standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2 Les types intervalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.3 L’instruction ...

Informations

Publié par
Nombre de lectures 31
Langue Français

Extrait

Introduction au langagePascal
1
Contents 1 Commencons par un petit exemple... 2 La partie des declarations 2.1 Les di  erents types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2Lesoperationsquipreserventletype.............................. 2.3Lesoperationsquirendentuntypeboolean. . . . . . . . . . . . . .. . . . . . . . . . . . 3 La partie algorithme 3.1 Interface avec l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Les a ectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Controˆlede ux 4.1 Execution conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Les blocs d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Les boucles sur des types enumeres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Les boucleswhileetrepeat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 D’autres types 5.1 Types enumeres non standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Les types intervalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 L’instructionCASE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Les tableaux 6.1 Les tableaux de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Les types de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Les chaˆnes de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Fonctions et procedures 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Declaration des fonctions, ranemen t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Les procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Algorithmesrecursifs 8.1 Des exemples bien connus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2Arreˆtdunefonctionrecursive.................................. 8.2.1 Le probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.2 Graphe de dependance d’une fonction recursive . . . . . . . . . . . . . . . . . . . . 8.2.3Fonctionsmutuellementde nies............................ 8.2.4 Taille en memoire lors d’un calcul recursif . . . . . . . . . . . . . . . . . . . . . . . 9 Conclusion : Forme d’un programmePascal
2
3 4 4 4 5 6 6 6 7 7 8 9 11 13 13 13 14 15 15 15 15 16 17 17 17 17 19 21 21 22 22 23 24 28 30
1Commenconsparunpetitexemple... PROGRAM circonference; VAR rayon, circonference : REAL; BEGIN readln(rayon); circonference:=rayon*2*3.1416 ; writeln(rayon,circonference); END. Ceprogrammedemandeaunutilisateurdetaperunnombre,etilrendcenombreetlacirconference d’un cercle dont ce nombre est le rayon. Ce n’est pas trop complique. On peut tout de suite identi er les parties les plus importantes. Il y a d’abord le squelette du programme : PROGRAM ... ; (* Calcul de la circonference d’un cercle *) VAR .... ; BEGIN ... END.
1. La partiePROGRAM...;progomaue;rammdatresnnurenno 2. la partie(*...*)stiantessentielspourocpmerdnerecuqfeteronadrdnecoesnemmriatI.seossl un programme. Ils ne sont pas facultatifs ; 3. la partieVAR...;adsertra;diopnultsavsebairalcelrerurnaesabsdletoon 4. la partieBEGIN ... END. C’est la partie qui contient l’algorithme.contient ce que le programme fait. Elle se termine par un point “. la partie”. C’estalgorithmedu programme. Onvamaintenantvoirplusendetailcesdi erentesparties.Jenerevienspassurlenomdupro-gramme.
3
2 La partie des declarations 2.1Lesdi erentstypesdebase VAR rayon, circonference : REAL; Ondeclarequedanslalgorithme,onutilisedeuxvariables,quonappellerayonetdiametre. En plus,ondeclarequecesdeuxvariablessontdetypesREAL qu’on pourra les utiliser un peu. Cela signi e commedesnombresreels.Maisilyadautrestypesquisontde nis: 1. le typeinteger s’agit du type des nombres qui sont des entiers relatifs ;. Il 2. le typeboolean. Il s’agit du type des booleens. Ces variables ne peuvent prendre que 2 valeurs, TRUE(vrai) ouFALSE(faux) ; 3. le typecharslaigdtI.irbaenavecyteledutavpepeaoirliuqepytutneitnocacarscle.Uesert valeur’A’,’b’,’7’,... Le7d’une variable de typechar Il n’est pas question deest un caractere. faire des operations dessus ! 2.2Lesoperationsquipreserventletype On utilise letyped’une expression pour savoir qu’elles operations on peut appliquer. Sur les types de nombres,on a toujours+,-, et*. Question : quesigni e3/5?(divisioneuclidienneoureelle?) Onvoitqueladivisionnevoudrapasdirelameˆmechosepourlesintegeret pour lesreal. Pour lesintegerrapneitstreteeepaeenreemenAutr,onstdituelcisnonn.edieilitinu,ovidilase entiere. Par exemple, 17 = 3estneisr2+S.ruel5snoitareops2leit nend,odivetmod, qui auront pour valeur : 1.17 mod 3a pour valeur2; 2.17 div 3a pour valeur5. Pour lesreal, on utilise le symbole standard de division,/ n’y a pas de surprises.. Il Il est possible defairedesoperationsmelantdesrealet desintegerideressontcons,lasecscan.Dsednarepoxuedse de typereal. Sur les caracteres, Mais ils sont codes dans le codeil n’y a pas d’operations possibles.ASCII faut. Il faireattention,cartouslescaracteresnysontpas,ilnyenaque256.Linterˆetestquilestpossiblede passer d’un entier entre0et255nonafioctisiltlanneture,ecatcnraauCHR. Par exemple, on a : CHR(67)prend la valeur’C’; CHR(51)prend la valeur’3’. Sur les booleens,on a les operations classiques de logique,AND,OR,NOT, ainsi que l’operationXOR.
Exercice : Donner une expression utilisant x, y,not,andetorqueniremdlmeˆeseratlueuqtpoltionerax xory.
4
x\yfalse true false false true true true true xORy
xnotx false true true false notx
x\yfalse true false false true true false true xANDy
x\yfalse true false false true true true false xXORy
Figure 1: les operations booleennes
2.3Lesoperationsquirendentuntypeboolean Il y a ici toutes les operations de comparaison<,>,<=,>= et<>id(re )tne compare entre elles. On deuxexpressionsdunmeˆmetype,sicetypepeutˆetreordonne.Ilestaussipossibledecomparerdes expressions de typerealavec des expressions de typeinteger. Pour les caracteres, on utilise l’ordre du code ASCII. Par exemple : CH R(60)< CH R(49) rendfalse; 3.5>= 3 rendtrue; 3.0<>3 rendfalse.

5

3 La partie algorithme Ilsagitdelapartieouestde nilalgorithme.Onvaletudierunpeuplusendetail.Cettepartieest composee d’instructionspsrareeeapnostquis.sleguir-vntoispde readln(rayon); circonference:=rayon*2*3.1416 ; writeln(rayon,circonference); Il est obligatoire de mettre le point-virgule entre chaque instruction. Le dernier point-virgule, lui, n’est pas obligatoire. Le mettre revient a ajouter une instruction vide. Il faut noter qu’on peut mettre autantdintructionsvidesalasuitequonledesire. 3.1 Interface avec l’utilisateur Les deux commandes : readln(rayon); ... writeln(rayon,circonference); serventainteragiraveclutilisateurduprogramme. readlnliurpoeeslitituseaneeduppatnaylrusurtetq,eilulivareeaplruitilasgneunedonneeent touchereturn. L’utilisateurdoit ce n’est pas le Sidonner une valeur qui correspond au type attendu. cas,leprogrammesarrˆete.Quelquesexemplesdevaleurspossibles: pour uninteger: 3,5,17, . . .mais pas 3.5 ou ’A’ ; pour unreal: 4,3.5,45.74e 1, .07, . . .mais toujours pas ’A’ ; pour unboolean: il Par contre, il n’est pas possible de les demander directement a l’utilisateur. est toujours possible de les ecrire ; pour leschar:3,A,,e,. . . , mais pas ’AA’. 3.2 Les a ectations Ilresteunederniereinstructionavoir,la e ctation: circonference:=rayon*2*3.1416 ; Cette instruction est de nie par:= droite de ce signe, il y a une expression :. A ...:=rayon*2*3.1416 qui rend une valeur de typereal gauche de ce signe. A circonference:=... ilyalenomdunevariabledemˆemetype,realreualaveditroadalsnaC.teetninstockelstructio variableagauche.Lorsque,adroite,onutiliselavariablerayon,avnoafnetutisilierladernierevaluer quiaetestockeedanscettevariable. Il faut noter deux choses : ilyaunrisquederreursionutiliseunevariabledanslaquelleriennaetestocke.Ilfauttoujours veri erquilyaunevaleurdestockeedanslavariableavantdelutiliser; lestypesagaucheetadroitedela ectationdoiventtoujoursˆetrelesmˆemes,saufsiadroitecest une expression de typeintegerpyedeteheungauciablevar,atereal.

6

4Contrˆolede ux 4.1Executionconditionnelle On veut faire un programme qui donne, en sortie, la valeur absolue d’un nombre que donne l’utilisateur. Ce nombre est a priori de typereal qui donne le squelette suivant pour ce programme :. Ce Programvaleur absolue ; (* Ce programme calcule la valeur absolue d’un nombre donne par un utilisateur. Les variables sont assez explicites *) nombre,valeurabsolue :real; begin writeln(’De quel nombre voulez-vous la valeur absolue ?’); readln(nombre); (* calcul de la valeur absolue *) writeln(’La valeur absolue de ’,nombre,’ est ’,valeurabsolue); end. Ilresteasavoircommentcalculerlavaleurabsolue.Onsaitque: sinombre>= 0, la valeur absolue denombreestnombre; sinombre<0, la valeur absolue denombreest l’oppose denombre. Il y a une instruction, enPascal l’instruction : C’est, qui agit comme le “si”. ifexpr booltheninst expr bool Si elle vautest une expression booleenne qu’on commence par calculer.true, alors on execute l’instructioninst.tiirenaf,nnoiSontionvideeinstruc.)eLmmcoioes(censtesilinueavantuti programme devient : Programvaleur absolue ; (* Ce programme calcule la valeur absolue d’un nombre donne par un utilisateur. Les variables sont assez explicites. On utilise deux conditionnelles. *) Varnombre,valeurabsolue :real; begin writeln(’De quel nombre voulez-vous la valeur absolue ?’); readln(nombre); if(nombre>= 0)thenvaleurabsolue:=nombre ; if(nombre<0)thenvaleurabsolue:=-nombre ; writeln(’La valeur absolue de ’,nombre,’ est ’,valeurabsolue); end. Pour calculer la valeur absolue, on peut aussi utiliser la construction.ESLE.....IENTH..F.. Cette construction prend une expression de typeboolean programme execute la le, et deux instructions. premiere si l’expression de typebooleanvauttruevautsionpreslexemisixedauee,ltfalse: ifexpr booltheninst1elseinst2
7
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents