[PDF] Pascal Le langage Pascal est en





Previous PDF Next PDF



Algorithmique et programmation Pascal

Ecriture d'un programme qui consiste `a traduire un algorithme pour une machine dans un langage de programmation donné ici le Pascal. Définition 1.1.



Algorithmes et programmation en Pascal Cours

Les variables en Pascal teur : 16 pour Turbo Pascal 32 pour Delphi. ... `a 255



Support de cours MODULES: Informatique I & II Intitulé

Un programme informatique est un algorithme traduit dans un langage de programmation( exemple : Pascal C



PREMIÈRES LEÇONS DE PROGRAMMATION EN TURBO PASCAL

A l'usage des écoliers collégiens



Maitrise Biologie des Populations et des Ecosystèmes Module

Tutorial de programmation en langage Pascal L'interface Turbo Pascal 7 de Borland . ... Les instructions de boucle (ou structures répétitives) .



Introduction au langage Pascal

BEGIN readln(rayon); circonference:=rayon*2*3.1416 ; writeln(rayoncirconference);. END. Ce programme demande a un utilisateur de taper un nombre



Pascal

Le langage Pascal est en effet devenu en moins de dix ans un des langages de programmation dominants sans avoir bénéficié d'aucun support officiel de la part 



Programmation des API

L'utilisation d'un langage de haut niveau comme C



1 Les boucles (les structures itératives)

Exercice N°1 : 1- Traduire cet algorithme en langage pascal. 2- Étudier et tester cet exemple sur la machine pour comprendre. Algorithme saisie.



Untitled

Exercice 12. Ecrire un programme Pascal intitulé EQUA_1D qui fait résoudre dans IR l'équation ax+b=0 pour tout couple de réels (a

Toute reproduction sans autorisation du Centre français d'exploitation du droit de copie est strictement interdite.

© Techniques de l'Ingénieur, traité InformatiqueH 2 260 - 1

H 2 260

3 - 1990

Pascal

Langages d'écriture de systèmes

parOlivier LECARME

Docteur ès Sciences

Professeur à l'Université de Nice

1. Présentation du langage........................................................................ H 2 260 - 2

1.1 Deux exemples de programmes................................................................ - 2

1.1.1 Table de fréquences............................................................................ - 3

1.1.2 Mise à jour de fichier.......................................................................... - 3

1.2 Caractéristiques du langage....................................................................... - 3

1.3 Structure des programmes......................................................................... - 4

2. Objets et opérateurs............................................................................... - 5

2.1 Types simples.............................................................................................. - 5

2.1.1 Types scalaires prédéfinis.................................................................. - 5

2.1.2 Définition de types scalaires.............................................................. - 5

2.1.3 Type réel.............................................................................................. - 5

2.2 Types structurés........................................................................................... - 5

2.2.1 Tableaux.............................................................................................. - 5

2.2.2 Articles................................................................................................. - 6

2.2.3 Ensembles........................................................................................... - 6

2.2.4 Fichiers................................................................................................ - 7

2.2.5 Objets dynamiques et pointeurs....................................................... - 7

3. Énoncés....................................................................................................... - 7

3.1 Énoncés simples.......................................................................................... - 7

3.1.1 Affectation........................................................................................... - 7

3.1.2 Appel de procédure............................................................................ - 7

3.1.3 Branchement....................................................................................... - 8

3.2 Énoncés structurés...................................................................................... - 8

3.2.1 Groupement d'énoncés...................................................................... - 8

3.2.2 Énoncés répétitifs............................................................................... - 8

3.2.3 Énoncés conditionnels....................................................................... - 8

4. Procédures et fonctions......................................................................... - 8

4.1 Définition...................................................................................................... - 8

4.2 Procédures et fonctions prédéfinies.......................................................... - 8

5. Normalisation du langage..................................................................... - 9

5.1 Pascal............................................................................................................ - 9

5.2 Pascal étendu............................................................................................... - 10

6. Langages de programmation similaires à Pascal........................... - 10

6.1 Langages sans type : Bliss.......................................................................... - 10

6.2 Langages avec type : LIS............................................................................. - 11

6.3 Relations entre Pascal et Ada..................................................................... - 12

6.4 Pascal étendu............................................................................................... - 12

6.4.1 Modularité et compilation séparée................................................... - 12

6.4.2 Schémas.............................................................................................. - 12

6.4.3 Traitements de chaînes...................................................................... - 13

6.4.4 Autres possibilités.............................................................................. - 13

6.5 Modula-2...................................................................................................... - 13

6.5.1 Généralités.......................................................................................... - 13

6.5.2 Différences entre Modula-2 et Pascal............................................... - 13

6.5.3 Exemple de module............................................................................ - 14

Pour en savoir plus........................................................................................... Doc. H 2 260

PASCAL ______________________________________________________________________________________________________________________________

Toute reproduction sans autorisation du Centre français d'exploitation du droit de copie est strictement interdite.

H 2 2602© Techniques de l'Ingénieur, traité Informatique

Raisons d'être du langage

e langage de programmation Pascal a ŽtŽ conu en 1969 par Niklaus Wirth, professeur ˆ lՃcole polytechnique fŽdŽrale de Zurich. Son nom a ŽtŽ choisi en hommage au mathŽmaticien-philosophe Blaise Pascal (1623-1662). Les deux objectifs principaux annoncŽs par lÕauteur du langage [1 ] sont les suivants : - " rendre disponible un langage qui permette d'enseigner la programmation comme une discipline systématique, fondée sur certains concepts fondamentaux reflétés de façon claire et naturelle par le langage ; - construire des implantations de ce langage qui soient à la fois fiables et efficaces sur les ordinateurs actuellement disponibles ». Ces deux objectifs, d'ailleurs difficiles à atteindre, ne laissaient pas prévoir le succès qu'a connu le langage en dehors du domaine restreint pour lequel il avait été initialement conçu, c'est-à-dire l'enseignement de la programmation. Le langage Pascal est en effet devenu en moins de dix ans un des langages de programmation dominants, sans avoir bénéficié d'aucun support officiel de la part des constructeurs d'ordinateurs ou des organismes nationaux et inter- nationaux. Il est actuellement utilisé aussi bien dans l'industrie que dans les universités, et sert au développement de logiciel fiable, efficace et transportable dans des domaines d'application très variés. Les qualités majeures qui ont permis cette diffusion sont qu'il s'agit d'un langage concis, pratique et général (mais non universel), qui fournit des structures d'énoncés et de données facilitant et encourageant la programmation systématique. Ses utilisateurs peuvent l'apprendre et le manier facilement, et il peut être traduit en programmes efficaces sur les ordinateurs actuels. L

1. PrŽsentation du langage

1.1 Deux exemples de programmes

Le langage Pascal pouvant être utilisé dans une gamme assez variée d'applications, il est difficile d'en donner une idée suffisante en un seul exemple. Les deux programmes présentés ici concernent donc deux domaines d'application bien différents. De même que la description du langage qui apparaît dans la suite de cet article, ces

deux exemples utilisent la forme française des mots clés du langageproposée par le sous-groupe Pascal de l'AFCET. Ils utilisent égale-

ment la forme de présentation du langage, où l'on ne tient pas compte des jeux de caractères restreints imposés par la plupart des matériels informatiques actuels. Cette forme est bien adaptée à la lecture et à l'écriture par des êtres humains, et la transcodification sous la forme acceptée par la plupart des compilateurs du langage se fait très simplement. À titre d'exemple, la figure 1 montre la forme d'utilisation des quatre dernières lignes du programme de la figure 2 , pour un compilateur qui n'accepte que le sous-ensemble à 64 caractères du jeu ISO (ce sous-ensemble ne contient pas de lettres minuscules). Figure 1 Ð Forme dÕutilisation dÕun programme

Figure 2 Ð Exemple de programme

_____________________________________________________________________________________________________________________________ PASCAL

Toute reproduction sans autorisation du Centre français d'exploitation du droit de copie est strictement interdite.© Techniques de l'Ingénieur, traité Informatique

H 2 2603

La distinction entre forme de présentation et forme d'utilisation n'est pas faite explicitement dans la norme internationale (§ 5). Celle-ci prévoit cependant qu'il puisse exister plusieurs représenta- tions pour les différents symboles, et ne normalise que celle qui doit servir à l'échange de programmes entre différentes implanta- tions. En particulier, les formes possibles pour une lettre donnée (majuscule, minuscule, gras, maigre, romain, italique, souligné, etc.) n'ont pas de signification, sauf à l'intérieur des chaînes de caractères. La forme française des mots-clés et des indentificateurs prédéfinis apparaît en annexe de la norme française. Elle présente de très légères différences avec celle qui est utilisée dans le corps du présent article.

1.1.1 Table de frŽquences

Le programme de la figure 2 a pour données un texte quelconque,

c'est-à-dire une suite de lignes qui sont elles-mêmes des suites decaractères. Il recopie ce texte et construit en même temps une table

de la fréquence d'apparition de chaque lettre majuscule. Cette table est écrite après la recopie du texte. On peut remarquer en particulier l'utilisation d'un caractère comme indice d'un tableau (lignes 5, 8,

13 et 20), celle de la variable lettres qui représente l'ensemble des

lettres majuscules (lignes 6, 7 et 13), les prédicats fdf (fin de fichier, ligne 9) et fdln (fin de ligne, ligne 11) qui permettent de reconnaître la structure du texte lu.

1.1.2 Mise ˆ jour de Þchier

Le programme de la figure 3 a pour données un fichier d'articles qui représentent une série de modèles d'automobiles, identifiés par une clé numérique, et un fichier de modifications à effectuer. Il fournit comme résultats un fichier mis à jour, et éventuellement quelques messages d'erreurs. Les modifications possibles sont des adjonc- tions, des suppressions et des remplacements d'articles. On peut remarquer en particulier l'accès à l'article lu sur un fichier (ancien , lignes 18 et 27 ; commandes , lignes 21 et 29), la manipulation des articles de façon globale (lignes 16, 18, 27, 38 et 41) ou champ par champ (lignes 23, 31 et 34), l'énoncé de choix (lignes 36 à 43).

1.2 CaractŽristiques du langage

Pour clarifier les idées d'un lecteur familier avec d'autres langages de programmation, ce paragraphe effectue une comparaison rapide de Pascal avec Fortran, Algol 60 et PL/I (cf articles spécialisés dans le présent traité). Bien que Pascal permette de traiter des applications pour lesquelles on utilise d'ordinaire Cobol (§

1.1.2), son apparence

extérieure en est trop différente pour qu'une comparaison soit utile. Par rapport aux trois langages ci-dessus, les caractéristiques remar- quables de Pascal sont donc les suivantes : - les variables doivent obligatoirement être déclarées (comme en Algol 60, contrairement à Fortran et PL/I) ; - les mots-clés, tels que début, tantque, alors, sont réservés à cet usage et ne peuvent pas servir d'identificateurs ; - le point-virgule est un séparateur d'énoncés (comme en Algol 60), et non pas un terminateur (comme en PL/I) ; - les types attribuables aux objets comprennent les nombres entiers et réels, les valeurs booléennes et les caractères imprimables ; ils peuvent être structurés en tableaux, articles (appelés structures en PL/I et enregistrements en Cobol), ensembles et fichiers (séquentiels) ; ces moyens de structuration peuvent être combinés pour fournir des tableaux d'ensembles, des fichiers d'enregistrements, etc. ; certains objets peuvent être alloués de façon dynamique et repérés par des pointeurs ; comme ils peuvent eux-mêmes contenir des pointeurs, cela permet de construire des structures arborescentes quelconques ; - la structure d'ensemble fournit des possibilités similaires à celles de la chaîne binaire de PL/I ; - les tableaux sont de dimensions et de bornes quelconques (comme en Algol 60 ou PL/I), mais ces bornes sont définies à la compilation (comme en Fortran) ; - l'énoncé composé, identique à celui d'Algol 60, correspond au groupe DO sans répétition de PL/I ; - les possibilités offertes par l'aiguillage d'Algol 60, le branche- ment calculé de Fortran ou les tableaux d'étiquettes de PL/I sont fournies en Pascal par l'énoncé cas ; - l'énoncé pour correspond à la boucle DO de Fortran, mais le pas ne peut être que 1 ou - 1, et l'énoncé peut ne pas être exécuté du tout si la valeur limite est dépassée dès le début ; - l'expression conditionnelle d'Algol 60 n'existe pas, non plus que l'énoncé d'affectation multiple d'Algol 60 et de PL/I ; - les procédures et fonctions peuvent être appelées récursive- ment, comme en Algol 60 et en PL/I ;

Historique

Le langage qui a eu le plus d'influence sur Pascal est certaine- ment Algol 60. N. Wirth faisait partie du comité international qui commença à travailler vers 1963 pour définir un successeur à Algol 60. Ce successeur devait étendre le domaine d'application du langage, simplifier certains de ses aspects et en améliorer d'autres. La contribution proposée par N. Wirth et C.A.R. Hoare fut refusée par le comité et publiée indépendamment sous le nom d'Algol W [2 ] en 1966. Le langage Algol W constitue donc une étape intermédiaire entre Algol 60 et Pascal. Quant au suc- cesseur officiel d'Algol 60, il s'agit d'Algol 68 (cf. article spécia- lisé dans le présent traité). La première définition de Pascal date de 1969 et s'est accom- pagnée de la réalisation du premier compilateur (sur ordinateur Control Data 6 400), de façon à montrer que le second objectif (cf. introduction) pouvait bien être atteint. Ce premier compilateur présentait la particularité d'être lui-même écrit en Pascal, ce qui était un excellent moyen d'assurer sa concision et sa lisibilité. La très grande majorité des compilateurs réalisés depuis sur d'autres ordinateurs sont également écrits en Pascal, et c'est un des facteurs qui ont le plus contribué à la diffusion du langage, car le coût initial d'une nouvelle implantation est très réduit. La définition du langage Pascal a été publiée officiellement en

1971 [1

], et le compilateur a commencé d'être diffusé à la même époque. Un livre d'introduction à la programmation s'appuyant sur le langage a été publié d'abord en allemand puis en anglais [3 ]. L'expérience accumulée pendant les trois premières années d'utilisation a permis de réviser la définition du langage, sur un nombre de points d'ailleurs très réduit, et c'est cette défi- nition, accompagnée d'un manuel d'utilisation, qui sert actuel- lement de référence [4 ]. Une définition axiomatique de la plus grande partie de la sémantique du langage a été publiée à la même époque [5 Depuis 1979, les implémentations de Pascal se sont multi- pliées à tel point que l'on peut garantir leur existence sur tous les ordinateurs actuels, depuis les plus petits microprocesseurs jusqu'aux ordinateurs géants, le plus souvent en prenant pour modèle les compilateurs du CDC 6400. Une étude récente réper- torie plus de quarante implémentations importantes et répan- dues, dues pour la plupart à de grands fabricants de logiciel. Sur de nombreux ordinateurs, il existe même plusieurs implémen- tations en concurrence, ce qui ne va pas sans poser de difficiles problèmes de compatibilité. C'est dire l'importance des travaux de normalisation internationale décrits au paragraphe 5 Par ailleurs, les livres d'apprentissage ou d'approfondisse- ment de la programmation qui utilisent Pascal comme support se sont également multipliés ([6 ] à [11] [14] à [22], par exemple).

PASCAL ______________________________________________________________________________________________________________________________

Toute reproduction sans autorisation du Centre français d'exploitation du droit de copie est strictement interdite.

H 2 2604© Techniques de l'Ingénieur, traité Informatique - les paramètres sont transmis par valeur (comme en Algol 60) ou par référence (comme en Fortran) ; - Pascal fournit une structure de blocs similaire à celle d'Algol 60 et de PL/I, mais tous les blocs sont des procédures. Un nombre assez important de possibilités ou de dispositifs trouvés dans d'autres langages de programmation n'apparaissent pas en Pascal, soit qu'ils aient été considérés comme un encourage- ment à une mauvaise programmation, soit qu'ils contredisent les objectifs de clarté et de simplicité du langage, soit que les possibilités existantes permettent de construire facilement celles-là en cas de besoin. Il s'agit par exemple de l'opération d'élévation à une puis- sance, de la concaténation des chaînes, des tableaux à bornes dyna- miques, des conversions de type automatiques, des déclarations implicites, des options par défaut, des nombres complexes, etc. C'est grâce à cette sélection rigoureuse effectuée parmi l'éventail des possibilités que les compilateurs du langage Pascal restent des programmes efficaces et relativement simples.

1.3 Structure des programmes

Un programme est formé d'un en-tête et d'un bloc, lequel comprend un ensemble de déclarations et de définitions, suivi d'un

groupe d'énoncés qui constituent le corps du programme. L'en-têtesert à fournir le nom du programme et à énumérer ses paramètres,

qui sont en général les noms des fichiers qui permettent au programme de communiquer avec son environnement. L'ensemble de déclarations et de définitions comprend la déclaration des étiquettes utilisées dans le corps du programme, la définition des constantes, celles des types, la déclaration des variables, celle des procédures et des fonctions. Toutes ces parties sont facultatives ; mais tout identificateur utilisé doit avoir été déclaré ou défini au préalable (sauf certains identificateurs prédéfinis, que l'on peut supposer déclarés ou définis dans l'environnement du programme :

§ 2.1

; § 4.2). Les énoncés d'un bloc peuvent être étiquetés, mais toutes les étiquettes utilisées doivent être déclarées en tête du bloc ; ce sont des nombres entiers positifs. Leur usage est de toute façon extrême- ment restreint en Pascal. Les définitions de constantes permettent de nommer ces constantes, ce qui facilite la lecture des programmes, et l'adaptation rapide d'un programme à un changement d'environnement, par simple modification de la valeur de certaines constantes (figure 3 ligne 4). Tous les objets manipulés dans un programme possèdent un type, qui est associé aux variables qui permettent de les manipuler. Les types utilisés peuvent être directement décrits au moment de la déclaration des variables (figure 2 ), ou repérés par un identificateur

Figure 3 Ð Exemple de programme

de mise ˆ jour de Þchier

_____________________________________________________________________________________________________________________________ PASCAL

Toute reproduction sans autorisation du Centre français d'exploitation du droit de copie est strictement interdite.

© Techniques de l'Ingénieur, traité InformatiqueH 2 2605 défini au préalable (figure 3, lignes 5 à 9). Les descriptions de type elles-mêmes seront vues au paragraphe 2. Toute variable utilisée dans un programme doit être déclarée au préalable. Cette déclaration associe à chaque variable un type, décrit explicitement ou par référence à un identificateur de type. D'une façon générale, un identificateur est accessible dans tout le bloc en tête duquel il est déclaré. Cependant, si dans un bloc emboîté dans celui-là, par le moyen d'une définition de procédure ou de fonction, un identificateur homonyme est déclaré, c'est ce dernier identificateur qui est accessible dans ce bloc emboîté. Cette règle est identique à celle que l'on trouve dans les langages dits à structure de bloc, par exemple Algol 60 ou PL/I.

2. Objets et opŽrateurs

Un programme est constitué d'une suite d'actions, exprimées par des ŽnoncŽs, qui manipulent des objets. Pour classer ces objets en fonction des actions auxquelles il est possible de les soumettre, on associe un type aux variables qui permettent d'accéder aux objets. Le type d'une variable définit donc à la fois l'ensemble des valeurs qu'elle peut prendre et la nature des opŽrations qui peuvent lui être appliquées. Cela permet de vérifier automatiquement, et en général avant l'exécution du programme, la légalité des opérations contenues dans les énoncés de celui-ci. Certains types sont prŽdŽÞnis par le langage, soit à cause de leur importance, soit parce qu'il n'est pas matériellement possible de les définir dans le programme. Quelle que soit leur complexité, tous les types sont finalement définis à partir de types non struc- turés. Nous étudierons donc successivement les types simples fournis par Pascal, puis les outils qu'il contient pour la construction de types structurŽs.

2.1 Types simples

2.1.1 Types scalaires prŽdŽÞnis

Le langage Pascal fournit trois types scalaires prédéfinis, et permet

à l'utilisateur d'en définir de nouveaux.

?Le type prédéfini booléen comprend les deux constantes prédéfinies faux et vrai. Les opérateurs possibles sont l'union logique (V), l'intersection logique () et la négation (). De plus, les opéra- teurs de comparaison et certains prédicats prédéfinis (§ 4.2) fournis- sent un résultat booléen. ?Le type prédéfini entier comprend un intervalle des nombres entiers dont l'étendue dépend de l'ordinateur utilisé. La constante prédéfinie entmax donne la limite supérieure de cet intervalle. Les opérateurs sur les entiers sont l'addition (+), la soustraction (-), la multiplication (), la division entière (div) et le reste de la division (mod). On peut de plus comparer des entiers (<, , =, , et >) et calculer leur valeur absolue (fonction prédéfinie abs) et leur carré (fonction prédéfinie carré). Enfin, le prédicat impair s'applique à un entier. ?Le type prédéfini car représente l'ensemble des caractères dispo- nibles sur l'ordinateur utilisé. Une constante de ce type est dénotée entre apostrophes (on représente le caractère apostrophe par une double apostrophe). La fonction prédéfinie ord associe un entier à un caractère donné, son nombre ordinal ; la fonction prédéfinie carac, étant donné le nombre ordinal d'un caractère, fournit le caractère lui-même. Cela permet de définir un ordre sur les caractères et de leur appliquer les opérateurs de comparaison ordinaires. De plus, les fonctions prédéfinies succ et pred fournissent respectivement lequotesdbs_dbs46.pdfusesText_46
[PDF] langage pascal site du zero

[PDF] langage poétique définition

[PDF] langage programmation facebook

[PDF] langage python en seconde

[PDF] Langage soutenu - URGENT

[PDF] langage soutenu dictionnaire

[PDF] langage soutenu mots

[PDF] language de la continuité- limite

[PDF] Language HTML

[PDF] Language sql exercice de maison

[PDF] Language tools

[PDF] langue allemande dans le monde

[PDF] langue et détrôner

[PDF] Langue étrangere

[PDF] langue latine liste