Corrigé C27. Enoncé
Exercice 1 : Losange
Corrigé C27.
Exercice 1 : Losange
PROGRAM LOSANGE;
VAR
X : INTEGER;
I, J : INTEGER;
BEGIN
READ(X);
FOR I :=1 TO (X DIV 2 + 1) DO WRITE(' '); WRITELN('O');
FOR I := 1 TO (X DIV 2 + 1) DO
BEGIN
FOR J := 1 TO (X DIV 2 + 1) - I DO WRITE(' ');
WRITE('O');
FOR J:=1 TO 2*(I-1) + 1 DO WRITE(' ');
WRITELN('O');
END;
FOR I := (X DIV 2 ) DOWNTO 1 DO
BEGIN
FOR J := 1 TO (X DIV 2 ) - I + 1 DO WRITE(' ');
WRITE('O');
FOR J:=1 TO 2*(I-1) + 1 DO WRITE(' ');
WRITELN('O');
END;
FOR I :=1 TO (X DIV 2 + 1) DO WRITE(' '); WRITELN('O');
END.
Exercice 2 : Mots de la forme X ....XY.....Y
{ Les mots de la forme X...XY....Y, c'est ... dire qui commencent par X
suivi de N caractres ( N <= 3 ) , suivi de la chaine 'Xy'
suivi de M caractres. M >=30 , suivi de Y }
ALGORITHME X_xy_y
VAR N, M : ENTIER
C, Prec : CAR
Mot : CAR
DEBUT
LIRE(C)
Prec := ' '
TANTQUE ( C <> '#' )
SI C <> 'X'
Prec := C
LIRE(C)
SINON
SI Prec <> ' '
LIRE(C)
SINON
LIRE(C)
Mot := 'X'
N := 0
{ Recherche de 'X' s'il
existe}
TANTQUE(C<>'
')ET(C<>'#')ET (C<>'X')
N := N + 1
Mot := Mot + C
Prec := C
LIRE(C)
FINTANTQUE
SI (C = 'X') et (N
<= 3)
Mot := Mot + 'X'
LIRE(C)
SI C
= 'Y'
Mot := Mot + 'Y'
LIRE(C)
M := 0
TANTQUE(C<>'')ET(C<>'#')
M := M + 1
Mot := Mot + C
Prec:= C
LIRE(C)
FINTANTQUE
SI (Prec= 'Y')et(M >= 3)
ECRIRE(Mot,N, M)
FSI
FSI
FSI
FSI
FSI
FINTANTQUE
FIN
Exercice 3 : Reconnaissance de constantes arithmétiques
On utilisera les modules Chiffre et Erreur défini comme suit :
FONCTION Chiffre( C ) : BOOLEEN
VAR C : CAR
DEBUT
SI (C >='0' ) et ( C <= '9')
Chiffre := VRAI
SINON
Chiffre := FAUX
FSI
fin
Action Erreur
DEBUT
TANTQUE (C <>' ') ET ( C <>'$' )
Mot := Mot + C
READ(Fe,C)
FINTANTQUE
ECRIRE( Mot , ' Constante erronée)
FIN
ALGORITHME Chiffre
VAR Mot : car
Err : BOOLEEN
C : CAR W, D : INTEGER
DEBUT
LIRE(C)
TANTQUE C <> '$'
Err := Faux
Mot := ''
W := 0 D := 0
TANTQUE C=' ' DO LIRE(C) FINTANTQUE
TANTQUE Chiffre(C)
W := W + 1
Mot := Mot + C
LIRE(C)
FINTANTQUE
SI C = '.'
W := W + 1
Mot := Mot + C
LIRE(C)
TANTQUE Chiffre(C)
W := W + 1 D := D + 1 Mot := Mot + C
LIRE(C)
FINTANTQUE
SI (C<>' ') ET (
C<>'$' )
Err := VRAI
Erreur
FSI
SINON
SI (C<>' ') ET (
C<>'$' )
Err := VRAI
Erreur
FSI
FSI
SI (Mot <> '') ET (Not Err)
ECRIRE(Mot, W, D)
FSI
FINTANTQUE
FIN