C24. Programmation PASCAL Programmation modulaire - Vecteurs Corrigé
Exercice 1 : Visibilité des objetsSoit le programme PASCAL suivant :
program p;
var a, b, c, d : integer;
procedure p1 ( i, j : integer ; var a : integer );
begin
writeln('* i = ', i);
a := (i + j ) * b
end;
Procedure p2;
begin
a := b div c;
b := a;
writeln('** b = ', b);
end;
Procedure p3 ( a, b, c : integer);
begin
c := 2 ;
c := a + b + c;
writeln('*** c = ', c);
end;
begin
read(a, b, c, d);
p2; writeln('Apres p2, a = ', a);
p3 (a, b, d); writeln('Apres p3, d = ', d);
p1 (a, b, d); writeln('Apres p1, d = ', d);
Writeln(' Contenu des variables ', a, b, c, d);
end.
- Quelle est la portée de tous les objets définis dans le programme.
- Dérouler le programme pour a = 2; b = 3, c = 4 et d = 5.
Exercice 2 : Opérations sur les chaînes de caractèreson peut représenter un mot ( chaîne de caractères ne contenant pas de blancs) dans un vecteur MOT(1..N) o� chaque élément contient un caractère étant la taille maximale des mots.
par exemple le mot 'abcdeabf' est représenté dans le tableau comme suit :
Ecrire les modules suivants :
(i) Longueur ( MOT) : pour déterminer la longueur du mot MOT.
(ii) Extract( MOT, i, j ) : pour extraire le sous-mot du mot MOT commençant à la position i et ayant j comme longueur. O sinon.
(iii) Index( MOT2, MOT1) : pour déterminer la position du mot MOT1 dans le mot MOT2. 0 sinon.
Exemples :
Longueur( MOT) = 8
Extract(MOT, 5, 2) = 'ef'
Extract(MOT, 2, 5) = 'bcdea'
Si T est le vecteur contenant la chaîne 'ab', Index(MOT, T)=1
Si T est le vecteur contenant la chaîne 'abf', Index(MOT, T)=6
Si T est le vecteur contenant la chaîne 'abx', Index(MOT, T)=0