Une déclaration de variables PASCAL se fait par
VAR <Li> : Type;
où <Li> désigne une liste d'identificateurs.
SOIT (SOIENT) se traduit par VAR.
Les objets simples
Equivalents des objets Z --> PASCAL
Z PASCAL
ENTIER INTEGER
BOOLEEN BOOLEAN
La grammaire des Z-expressions est incluse dans la grammaire PASCAL
Même syntaxe
-------Z---------
TANTQUE Cond :
instructions
FINTANTQUE
-------PASCAL------
WHILE ( Cond ) DO
BEGIN
Instructions
END
--------------Z---------------
POUR V:= Exp1, Exp2 [, Exp3] :
Instructions
FINPOUR
Si Exp3 est absent ou égale à 1
Se traduit par :
--------PASCAL---------
FOR V:= Exp1 TO Exp2 DO
BEGIN
Instructions
END
Si Exp3 <> 1 :
----------PASCAL------
V := Exp1;
WHILE ( V <= Exp2 ) DO
BEGIN
Instructions ;
V := V + Exp3
END;
----------Z----------
SI Cond :
Instructions
[SINON
Instruction ]
FSI
Se traduit par :
-------PASCAL---------
IF Cond
THEN
BEGIN
Instructions
END
[ELSE
BEGIN
Instructions
END]
--------Z--------
LIRE(V1, V2, ...)
Se traduit par :
------PASCAL------
READLN(V1, V2, ...)
-----------Z-----------
ECRIRE(Exp1, Exp2, ...)
Se traduit par
--------PASCAL----------
WRITELN(Exp1, Exp2, ...)
------------Z-----------------
ACTION Nom ( P1, P2, ...)
SOIENT
Définition des objets locaux
et des paramètres
DEBUT
Instructions
FIN
Se traduit par :
--------------------PASCAL--------------------
PROCEDURE Nom ( VAR P1: typ; VAR P2:typ, ...);
VAR
Définition des objets locaux
BEGIN
Instructions
END
----------------Z-----------------
FONCTION Nom ( P1, P2, ...) : Type
SOIENT
Définition des objets locaux
et des paramètres
DEBUT
Instructions
FIN
Se traduit par :
---------------------PASCAL------------------------
FUNCTION Nom ( VAR P1: typ; VAR P2:typ, ...) : Type;
VAR
Définition des objets locaux
BEGIN
Instructions
END
MOD (a, b)
FUNCTION Mod (a, b : INTEGER) : INTEGER;
BEGIN
Mod := a Mod b
END;
MIN (a, b)
FUNCTION Min (a, b: INTEGER) : INTEGER;
BEGIN
Min := a; IF b < a THEN Min := b;
END;
MAX ( a, b )
FUNCTION Max (a, b: INTEGER) : INTEGER;
BEGIN
Max := a; IF b > a THEN Max := b;
END;
EXP ( a, b )
FUNCTION Exp (a, b: INTEGER) : INTEGER;
VAR I : INTEGER;
BEGIN
Exp := 1;
FOR I:= 1 TO b DO Exp := Exp * a
END;
ALEAENTIER ( N )
FUNCTION Aleaentier (N: INTEGER) : INTEGER;
BEGIN
Aleaentier := Random( N );
END;
ALEACHAINE ( N )
FUNCTION Aleachaine(N: INTEGER) : STRING;
VAR
K : BYTE;
Chaine : STRING;
BEGIN
Chaine := '';
FOR K:=1 TO N DO
CASE Random(2) OF
0 : Chaine := Chaine + CHR(97+Random(26) ) ;
1 : Chaine := Chaine + CHR(65+Random(26) )
END;
Aleachaine := Chaine;
END;
LONGCHAINE ( C )
FUNCTION Longchaine(C : STRING): INTEGER;
BEGIN
Min := a; IF b < a THEN Min := b;
END;
--------------------Z-----------------
SOIENT
Objets locaux et globaux
Annonce des modules
DEBUT
Instructions
FIN
Module 1
Module 2
...
Modules n
Se traduit par :
------------------PASCAL---------------
PROGRAM Pascal;
VAR
Objets locaux et globaux
{ Définition des modules }
Module 1
Module 2
...
Module n
BEGIN
Instructions
END.