Salut,
C'est normal qu'il n'accepte pas cette instruction :
Begin
end;
begin
end.
Le 2ème begin end avec un point au niveau du end (celui juste en dessu de ma phrase) représente le programme principal.
Le begin end avec un ; représente le corps d'une procédure ou d'une fonction. Une fonction ou procédure doit contenir un nom. Tu aurais du faire par exemple:
program exemple ;
var c1, c2 : char;
procedure tricar;
var c : char;
begin
if c1 > c2 then
begin
c := c1;
c1 :=c2;
c2 := c;
end;
end;
begin
write ('donnez 2 caractères : ');
readln (c1,c2);
tricar;
write ('carateres tries : ');
writeln (c1,c2);
end.
EXLICATION :
Le rôle de la procédure tricar est de ranger par ordre alphabétique les caractères contenus dans les deux variables globales c1 et c2, en procédant, si nécessaire à n échange de leurs valeurs. Pour ce faire, on utilise c comme variable intermédiaire. On peut constater que c à été déclarée au sein de la procédure tricar. Cette fois, c n'est connue qu'au sein de tricar; On dit que sa portée est limitée à la procédure tricar ou encore que c est locale à tricar. Voila, ca c'est pour la petite info :-)