Généralités
Le langage Pascal est un langage de programmation dit évolutif parce qu'il est proche du langage humain. Il est créé en 1969 à l'école polytechnique de Zurich par NWIRTH. Il a été conçu pour permettre d'enseigner la programmation comme une science. Sa conception présente beaucoup d'avantages:
- Il est facile à enseigner et à apprendre.
- Il permet d'écrie des programmes lisibles et structurés.
- Il permet une manipulation facile des données et des fichiers.
Caractéristiques d'un programme Pascal
Un programme écrit en Pascal est constitué d'une suite d'instructions qui sont des phrases du langage.
Un programme Pascal comprend deux parties:
- L'en-tête: Qui comprend le nom du programme et éventuellement des paramètres.
- Le corps du programme: Comprend les déclarations et les instructions. Les instructions sont séparées entre elles par les points virgule (;). Le programme Pascal se termine toujours par un point (.) et il a la forme suivante:
En-tête [Programme nom([paramètres])
corps du programme:
Déclaration;
Begin;
Instructions;
End.
Déclaration
La déclaration permet à l'ordinateur de réserver un espace mémoire pour chaque objet. Elle n'est pas exécutable. On distingue:
- La déclaration d'étiquette.
- La déclaration de constante.
- La déclaration de type.
- La déclaration de variable.
- La déclaration de procédure.
- LA déclaration de fonction.
Déclaration d'étiquette
En pascal toute instruction peut être précédée par une étiquette qui identifie de façon unique chaque instruction.
C'est un entier positif d'au plus 4 chiffres. Tout élément soit être suivi du caractère (:).
On peut débrancher une instruction étiquette à l'aide de l'instruction goto étiquette.
Exemple:
goto 100
x :=1;
100:x:=x+4;
y:=x-2
Pour déclarer une étiquette on fait: Label entier;
Exemple:
Label 10, 12, 10;
Déclaration de constante
Une constante est un objet qui ne peut pas changer de valeur lors de l'exécution d'un programme. Sa déclaration est: const identification = valeur
Exemple:
const Pi=3.14;
onze=11.0;
max=45;
min=-max
Déclaration de type
Le type d'un objet est l'ensemble dans lequel cet objet prend ses valeurs. On distingue les types non standard.
Les types non standard sont définis par le programme et ne sont valables dans le programme qui les utilise.
La déclaration d'un type est le suivante:
type identification=ensemble de valeur;
Exemple:
type semaine=(Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche)
sexe=(Masculin, Feminin);
logique=(vraie, faux);
entier=integer;
Déclaration de variable
Une variable est un objet qui peut changer de valeur lors de l'exécution d'un programme.
On retrouve la déclaration des variables dans tous les programmes.
On déclare une variable de la façon suivante:
var identificateur: type;
Exemple:
var a: interger;
jour: semaine;
La partie exécutable
C'est la partie la plus important, sans elle le programme ne s'exécute pas. Elle commence toujours par le mot Begin et se termine toujours part le mot End. Cette partie est constituée d'une séquence d'instruction exécutable (lecture, écriture, affectation ou structure de contrôle).
Exemple de programme Pascal:
program suite
(*Ce programme affiche les nombres de 1 à 10*);
var nombre: interger; (*compteur*)
Begin
for nombre := 1 to 10 do
writeln(nombre);
end. (*fin du programme*)
Les types de base
Ce sont les types standard (qui sont prédéfinis dans l'ordinateur).
On a:
- Le type entier.
- Le type réel.
- Le type caractère.
- Le type booléen.
- Le type chaîne de caractères.
Le type entier
Le mot utilisé est integer, tout élément de ce type appartient à l'intervalle [-max int, max int] où l'identificateur max int fournit la valeur du plus grand entier représentable. Les nombres que l'on peut représenter sont limités par la taille de l'emplacement mémoire utilisé pour les codes (2 octets=16bits).
Avec 16 bits on peut représenter les nombres appartenant à l'intervalle [-215; 215-1]=[-32768;32767]. En complément à 2.
Ainsi donc Max int = 32 767
A partir de cette limitation du type entier le programme est toujours confronté au problème de dépassement de capacité.
Exemple:
program exemple;
var a, ab: interger;
begin
a := 20000;
b := 2*a;
xriteln('b=', b);
end.
Lors de l'exécution de ce programme l'ordinateur affiche b=-25536. Ce mauvais résultat provient du fait que les dépassements de capacité dans le cas type entier ne sont jamais détectés.
Par contre si vous cherchez à écrire une constante comme par exemple 125413 qui ne peut pas être représenté dans le type entier, vous serrez prévenu par le message de compilation approprié constant out of rang.
Pour résoudre ce problème le Turbo Pascal dispose du type long int (32bit).
Les opérations possibles avec les objets du type entier sont: l'addition (+); la soustraction (-); la multiplication (*); la division (div), le modulo (mod).
Les fonctions relatives au type entier sont:
- abs(x)= ; abs(-3)=3 : la valeur absolue
- sqr(x)= ; sqr(3)=9 : le carré
- sqrt(x)= ; sqrt(4)=2.0 : racine carrée
Les types réels
Le mot utilisé est real. Un élément de ce type peut s'écrire sous deux formes:
- Sous forme décimal, exemple: 12.43
- Sous forme exponentiel, exemple: 4.25E2
Les nombres réels sont codés sur 6 octets et la technique de codage utilisée permet de les représenter avec une précision de l'ordre de 1 chiffres significatifs.
On distingue donc l'intervalle 2,9x10-3; 1,7x1038 valeur absolu.
Avec le type réel le déplacement de capacité est détecté. On a un message overglow.
Les opérations relatifs au type réel sont: l'addition (+); la soustraction (-); la multiplication (*); la division (/).
Les fonctions relatives au type réel sont:
- abs valeur absolue.
- sqr élévation au carré.
- sqrt racine carrée.
- frac la partie fractionnelle, exemple frac(3.05)=0.05
Le type booléen
Le mode utilisé est boolean. C'est un ensemble à deux valeurs true, false. Les opérations utilisées sont:
- and
- or
- not
- xor: le "ou exclusif" (faux lorsque les deux conditions ont la même valeur)
Les opérateurs de comparaison sont:
- = égal
- < inférieur
- > supérieur
- <= inférieur ou égal
- >= supérieur ou égal
- <> différent
Le type caractère
Le mot utilisé est char.
C'est un ensemble fini et ordonné de caractère. La nature des caractères dépend de la machine.
Exemple: 'A'
Les fonctions relatives aux caractéristique sont:
- ord : qui donne la valeur numérique du code de caractère, exemple ord('A')=65
- chr : Donne le caractère ayant le code indiqué, exemple: chr(65)='A' ; chr(66)='B'
Exercice:
Ecrire un programme qui affiche les caractéristiques des codes allant de 1 à 100 et l'affichage doit se faire de la manière suivant:
le caractère de code 65 est: A
le caractère de code 66 est: B
Le type chaîne de caractère
Le mode utilisé est string.
Lors de la déclaration d'une chaîne de caractère la longueur de la chaîne doit être précisée. Elle varie de 1 à 255.
Exemple:
var mot : string[10];
mot := 'papa';
Les opérateurs sur les éléments du type chaîne sont: la concaténation (+ ou concat); length (qui permet d'obtenir la longueur d'une chaîne de caractère)
copy : permet d'extraire une sous chaîne.
Exemple:
copy('Bonjours', 2,4) = 'onjo'
lentgh('Bonjours') = 7
mot = 'Bonjours'
mot[3] = 'n'
mot[6] = 'u'
Exercice:
Ecrire un algorithme qui lit une chaîne de caractère, il lit la position à partir de laquelle on doit extraire une sous chaîne de caractère et lit enfin la taille de la sous chaîne obtenue.
Instructions simples
On distingue:
- L'affectation :=
- La lecture read, readln
- L'écriture write, writeln
Les structures de contrôle
Les structures répétitives
for compteur := 1 to n do
instruction;
for compteur := n down to 1 do
instruction;
Exemple:
for i := 1 to 10 do
write(i);
Structure "tant que":
while condition do
instruction;
Structure "répéter":
repeat
instruction;
until condition;