Introduction au langage Pascal
Introduction au langage Pascal
LANGAGE PASCAL
NOM :
Langage Pascal
INTRODUCTION
Langage Pascal
Le langage Pascal est un langage de programmation de haut niveau. Il a été conçu par
le professeur WIRTH à Zurich en 1970 comme une aide à l’enseignement de la
programmation structurée.
Langage C
Le langage C a été créé en 1972 par Denis RITCHIE avec un objectif relativement
limité : écrire un système d’exploitation (UNIX). Mais, ses qualités opérationnelles
l’ont très vite fait adopté par une large communauté de programmeurs.
1
Langage Pascal
2
Langage Pascal
Les identificateurs des bibliothèques sont séparés par des virgules et la liste
est terminée par un point virgule ‘;’.
CONST.
VAR.
STRUCTURE GENERALE
program nomprog ;
{ Définition éventuelle des constantes et des types; cette partie est expliquée au chapitre 7
}
{ Début de la déclaration des variables }
var
nomvar1, nomvar2, … : type1 ;
nomvar3 : type2 ;
… { Il peut y en avoir autant qu'on veut }
{ Fin de la déclaration des variables }
{ Début du corps du programme }
begin
instruction1 ;
instruction2 ;
… { Il peut y en avoir autant qu'on veut }
end.
{ Fin du programme }
4
Langage Pascal
Exemple
Syntaxe :
Exemple :
Les variables déclarées dans la partie déclaration du programme sont dites globales.
Les variables déclarées dans la partie déclaration d’un sous-programme sont dites
locales.
Les variables globales sont connues par tous les sous-programmes, tandis que les
variables locales sont connues seulement par le sous-programme dans lequel elles
sont déclarées.
II-1.2 Les constantes
Syntaxe :
Remarque
Exemple :
Mémoire
Type Description Intervalle Exemples
requise
Shortint Entiers courts -128 à 127 -125; 0; 32 1 octet
Integer Entiers "relatifs" -32 768 à 32 767 -30 000; 421; 2 octets
-2147483648 à -12 545 454; 3
Longint Entiers longs 4 octets
2147483647 257
7
Langage Pascal
Il est possible au programmeur de créer ses propres types. Les types doivent être
déclarés avec le mot-clef Type à fortiori avant la déclaration des variables.
Exemple
Définit un type nommé matrice pour représenter une matrice carrée d’ordre 10.
Type énuméré
Dans la déclaration d’un type énuméré, il faut énumérer toutes les valeurs de ce type.
Syntaxe :
Exemple :
Type intervalle
Syntaxe :
Exemple :
Déclare un type nommé age dont les valeurs sont des entiers compris entre 1 et 150.
0 (,[ 5 +,-
1 OR 6 *, /, DIV, MOD
2 AND 7 (+),(-)
3 NOT 8
4 < , >, <= , >= , <> , = 9
Les trois règles fondamentales de priorité des opérateurs sont les suivantes :
1- Un opérande placé entre deux opérateurs de priorités différentes sera lié à celui
possédant la priorité la plus élevée.
2- Un opérande placé entre deux opérateurs de même priorité sera lié à celui qui
se trouve à gauche.
Dans une expression arithmétique, les opérateurs sont les opérateurs arithmétiques
(+,-,*, /, DIV, MOD).
Une expression logique est la composée d’expressions logiques simples par les
opérateurs logiques :
Syntaxe :
Read (V1, V2,…., Vn) Où Vi est une variable de tout type simple (sauf énuméré)
ou de type chaîne de caractères.
ReadLn (V1,V2,...Vn) même effet que Read, mais il faut taper la touche Entrée
après l’entrée de la donnée. L’instruction ReadLn (sans argument) attend la
frappe de la touche Entrée au clavier.
12
Langage Pascal
Exemple :
Une instruction de sortie permet l’affichage sur l’écran des valeurs correspondantes
aux arguments considérés.
Syntaxe
Remarque :
• Une constante chaîne de caractères est mise entre apostrophe. Une apostrophe
comprise dans une chaîne doit être dédoublée.
EXEMPLE
Cette instruction permet de transcrire une valeur dans une variable. Le symbole
d’affectation est ‘ := ’
Où la variable <Var> peut être de tout type et la valeur <Val> peut être une valeur
constante, la valeur d’une donnée constante ou variable, la valeur d’une fonction, ou
le résultat d’une expression.
Exemple :
Exercice 1
Ecrire un programme qui permet d’afficher le message suivant : mon premier
programme.
15
Langage Pascal
Réponse
Exercice 2
Ecrire un programme qui demande à l'utilisateur les valeurs de 2 entiers x et y, qui
permute leurs valeurs et qui les affiche.
Réponse
16
Langage Pascal
Exercice 3
Ecrire un programme qui échange 3 entiers.
Réponse
Exercice 4
Ecrire un programme qui demande à l'utilisateur les coordonnées de 2 points distincts
du plan et qui affiche les coordonnées du point milieu.
Exercice 5
Ecrire un programme qui demande à l'utilisateur une valeur pour U0, r et n et qui
affiche la nième valeur de la suite arithmétique définie par U0 et Un+1 = Un + r. (On
rappelle la propriété : Un = U0 + n.r ).
17
Langage Pascal
I- Instructions conditionnelles
Instruction IF…Then
Syntaxe :
Si <Cond> est vraie, le bloc d’instructions <Bloc> sera exécuté, sinon il sera ignoré.
Exemple :
19
Langage Pascal
Instruction IF…THEN…ELSE
Syntaxe :
20
Langage Pascal
Exemple :
Remarque : la clause ELSE ne doit pas être précédée par un point virgule ‘ ;’.
Instruction CASE
de cas de même type que le sélecteur. Le bloc d’instructions exécuté est celui dont
l’étiquette de cas correspond à la valeur courante du sélecteur.
Syntaxe :
CASE <Sélecteur> OF
Val1 : <Bloc1> ;
Val2 : <Bloc2> ;
..........................
Valn : <Blocn> ;
ELSE <Bloc>;
END;
22
Langage Pascal
Exemple :
23
Langage Pascal
Syntaxe :
Exemple :
Cette boucle effectue les instructions placées entre deux bornes (repeat et until) et
évalue à chaque répétition une condition de type booléenne avant de continuer la
boucle pour décider l'arrêt ou la continuité de la répétition
24
Langage Pascal
Syntaxe :
Exemple :
Cette instruction permet de décrémenter une variable à partir d'une valeur supérieur jusqu'à une
valeur inférieur etd'exécuter une ou des instructions entre chaque décrémentation. S'appliquent ici
les mêmes remarques que précédemment 25
Langage Pascal
Syntaxe 1 :
Exemple :
Syntaxe 2 :
26
Langage Pascal
Exemple :
Exercice 6
Ecrire un programme qui échange les contenus de 2 données si elles sont de signes
contraires.
Exercice 7
Ecrire un programme qui échange les contenus de 2 données si elles sont de signes
contraires, sinon, il met leur produit dans la première donnée et leur somme dans la
deuxième
Exercice 8
Ecrire un programme qui, étant donné un mois et son premier jour, affiche le premier
jour du mois suivant.
Exercice 9
Ecrire un programme qui calcule la somme des N premiers termes positifs.
27
Langage Pascal
Exercice 10
Ecrire un programme qui calcule la somme des N premiers termes positifs impairs.
Exercice 11
Ecrire un programme qui calcule la somme des N premiers termes positifs pairs non
multiples de 3.
Exercice 12
Ecrire un programme qui calcule la somme 1/2 + 1/4 + 1/8 +…+1/2 n (n Є N*).
Exercice 13
Ecrire un programme qui calcule la somme 1+1/2-1/4+ 1/8-1/16+…±1/2n (n Є N*).
Exercice 14
Ecrire un programme qui donne la plus grande valeur inférieure à 1000 de la somme
1+2+4+8+…+2N.
Exercice 15
Ecrire un programme qui calcule la somme 1+x+x2+…+xn (x réel et n entier).
Exercice 16
Ecrire un programme qui calcule la somme, le produit et la différence de deux
données numériques.
Exercice 17
Ecrire un programme qui retourne le code d’une donnée de type Caractere.
Exercice 18
Ecrire un programme qui calcule le salaire net d’un employé, sachant que celui ci a
assuré un certain nombres d’heures de travail à un prix fixe par heure, et que
28
Langage Pascal
l’employeur doit réduire de son salaire des charges qui sont calculées avec un
coefficient donné.
Exercice 19
Ecrire un programme qui permet de reprendre l’exercice précédant en considérant
que l’employé a assuré des heures normales, des heures à 25% et des heures à 50%.
Exercice 20
Ecrire un programme qui retourne si une donnée numérique est paire ou impaire
(utiliser le reste de la division par 2).
Exercice 21
Ecrire un programme qui permet de lire trois données numériques et retourne si la
troisième donnée est la somme des deux autres ou pas.
Exercice 22
Ecrire un programme qui, à partir du salaire brut d’un employé, détermine l’impôt à
payer sachant que les règles de calcul des impôts sont comme suit :
Exercice 24
Ecrire un programme qui, étant donnée une date (jour, mois, année), affiche la date
29
du jour suivant.
Langage Pascal
Exercice 25
Ecrire un programme qui, étant donnée une date (jour, mois, année), affiche la date
du jour précédent.
Exercice 26
Ecrire un programme qui calcule la somme 5+6+7+….+N (N>=5).
Exercice 27
Ecrire un programme qui calcule le produit des N (N>0) premiers entiers positifs.
Exercice 28
Ecrire un programme qui calcule la somme 1+1/2+1/4+1/6+…+1/2N (N>0).
Exercice 29
Ecrire un programme qui échange les contenus de trois données numériques si leur
somme est paire, sinon il met la somme des trois dans la première donnée, leur produit
dans la seconde et la valeur zéro dans la troisième.
30
Langage Pascal
I- Définition
Exemple :
10 0 2 -1
Tableau de 4 entiers
a b q w h d
Tableau de 6 caractères
On distingue les tableaux à une dimension (vecteur) et les tableaux à deux dimensions
(les matrices)
II- Déclaration :
Soit Tab un tableau destiné à contenir 5 entiers : Tab sera déclarée :
Syntaxe :
Exemple :
Nomdutableau[indice] ;
-2 0 11 120 0 -2
Exemple : T1 2 3 4 5 6
32
Indice
Langage Pascal
Si j := 3 ;
T[j] := 11 ;
En utilisant une variable indice i qui varie de 1 à 5, on peut utiliser une boucle FOR.
For 1 := 1 To 5 Do
Begin
Write(‘Donner le’, i,’em élément’) ;
33
Readln (X[i]) ;
Langage Pascal
End ;
Exemple :
Lire un tableau de 20 notes.
34
Langage Pascal
Ecriture :
Pour afficher le contenu des cases d’un tableau, on utilise un indice pour accéder aux
éléments.
Exercice 30
On dispose de 2 tableaux de même dimension Note et Coef qui contiennent
respectivement les notes d'un étudiant et les coefficients attribués aux matières
enseignées.
Note[i] est la note obtenue dans la matière coef[i].
Ecrire un programme pascal qui permet de calculer la moyenne de l'étudiant.
35
Langage Pascal
Exercice 31 :
Ecrire un programme qui lit un tableau de 10 caractères et effectue les traitements
suivants selon un menu :
1- Le nombre de voyelles
2- Le nombre d’occurrences d’un caractère
3- Afficher les caractères en horizontale
4- Afficher les caractères en verticale
Exercice 32:
Soit le program suivant :
Const N = 10 ;
Var tab :array [1..N] of integer ;
X,I,j : integer;
Begin
For I := 2 to N do
For j := 1 to i-1 do
If Tab[j] < Tab[i] then
Begin
X := Tab[j];
Tab[j] :=Tab[i];
Tab[i] := x;
End;
End.
Que fait le programme.
36
Langage Pascal
CHAPITRE IV : NOTION DE
SOUS-PROGRAMMES
I- Introduction
Un sous-programme permet :
• de dégager d’un programme des tâches de moindre importance ne laissant dans son
corps que la partie importante de l’algorithme d’où le gain de lisibilité et de
sécurité.
Les sous-programmes en Pascal sont des procédures et des fonctions.
Une procédure doit être déclarée dans un programme, ou dans une procédure, avant
le corps du programme (de la procédure) et après les déclarations des variables.
La structure d’une procédure est à peu près celle d’un programme, l’en-tête diffère,
la procédure se termine par un point virgule au lieu d’un point.
37
Langage Pascal
Syntaxe :
Paramètres formels
La déclaration des procédures peut être suivie d’une liste de paramètres entre
parenthèses. Un paramètre formel est destiné à être remplacé, chaque fois que la
procédure est activée, par un autre objet dit paramètre effectif, le plus souvent une
variable, ou le résultat d’une expression, de la procédure appelante.
Syntaxe :
38
Langage Pascal
Exemple
Les objets sont transmis comme données dont la valeur doit être inchangée par la
procédure appelée (on dit qu’on a une lecture pure).
39
Langage Pascal
Les objets sont transmis comme résultat dont la valeur doit être calculée par la
procédure appelée et transmise à la procédure appelante (on dit qu’on a une écriture
pure).
Les objets sont transmis comme données qui doivent être modifiées par la procédure
appelée (on dit qu’on a une lecture-écriture).
On indique les paramètres transmis par adresse, précédés par le mot réservé Var, les
autres ne sont précédés par aucune chose.
Une fonction en Pascal se comporte comme une procédure sauf que la fonction doit
fournir un résultat, elle a donc un type.
Syntaxe :
40
Langage Pascal
Dans le corps de la fonction, on doit trouver quelque part l’affectation d’une valeur à
l’identificateur de la fonction.
Exemple :
41
Langage Pascal
42
Langage Pascal
Exercice 33
Ecrire une fonction paramétrée qui retourne si un nombre donné est premier ou non.
Exercice 34
Ecrire une fonction paramétrée qui retourne si un nombre donné est parfait ou non.
Exercice 35
Ecrire une fonction paramétrée qui retourne si deux nombres donnés sont amis ou
non.
43
Langage Pascal
Exercice 36
Ecrire une fonction paramétrée qui retourne l’inverse d’un nombre entier donné.
Exercice 37
Ecrire une fonction qui permet de calculer le factoriel d’un nombre donné.
Exercice 38
Ecrire une fonction qui permet de calculer la puissance d’un entier donné.
Exercice 39
Ecrire une fonction qui fournit le nombre de chiffres d’un entier donné.
Exercice 40
Soit un programme qui visualise un menu composé de trois rubriques : Hors d’œuvre,
plat chaud et dessert.
Ecrire une procédure qui permet d’effectuer, à chaque fois, un choix exclusif.
Exercice 41
Ecrire une procedure paramétrée, qui permet l’échange des contenus de deux
paramètres formels par valeur A et B. Appeler cette procédure dans un programme
principal. On écrira les résultats dans le corps de la procédure, et dans le programme
44
principal.
Langage Pascal
Exercice 42
Ecrire une procédure qui affiche tous les nombres premiers qui sont compris entre 1
et 200.
Exercice 43
Ecrire une procédure qui affiche tous les nombres parfaits qui sont compris entre 1 et
200.
Exercice 44
Ecrire une procédure qui permet d’afficher tous les diviseurs d’un entier N ainsi que
leur nombre.
45
Langage Pascal
Exercice 45
Affichez un triangle isocèle formé d'étoiles sur N lignes (N est fourni au clavier).
Exemple : N=8
*
***
*****
*******
*********
***********
*************
***************
Exercice 46
Ecrire une procédure qui affiche les nombres négatifs d’une liste réelle.
Exercice 47
Ecrire une procédure qui met à zéro la diagonale d’une matrice carrée.
Exercice 48
Ecrire une procédure qui affiche l’occurrence d’existence d’un nombre réel dans une
liste de nombres réels.
46
Langage Pascal
Exercice 49
Ecrire une procédure qui met les éléments négatifs d’une liste à gauche et les éléments
positifs à droite de la liste.
Exercice 50
Ecrire une procédure qui classe une liste de notes de la plus petite à la plus grande.
Exercice 51
Etant donné N étudiants, leurs notes correspondantes à M matières et leur moyenne.
Ecrire une procédure qui affiche à côté de chaque étudiant son classement.
Exercice 52
Un palindrome est un mot, ou une phrase, lisible indifféremment de la gauche vers la
droite ou inversement. Ecrire une fonction qui retourne si une chaîne de caractères est
un palindrome ou non.
Exercice 53
Ecrire une fonction qui retourne la fréquence d’occurrence d’un mot dans une phrase.
Exercice 54
Ecrire une procédure qui enlève tous les blancs au début d’une phrase et qui laisse un
seul blanc entre les différents mots de la phrase.
47
Langage Pascal
Exercice 55
Soit un nombre entier positif N. Ecrire une fonction qui donne son équivalent en
binaire
48