discase
 discase@mail.dotcom.fr  | 
| >Correction de l'exercice | 
TYPE TFiche = RECORD Nom : STRING; Prenom: STRING; Rue: STRING; CP: INTEGER; Tel: STRING; Age: BYTE; END; VAR Fiches: array[1..50] of TFiche;  | l | 
TYPE
	TFiche = RECORD
		Nom, Prenom, Rue, Tel : STRING;
		CP: INTEGER;
		Age : BYTE;
	END;
VAR
	Fiches: array[1..50] of TFiche;
	nom1 : STRING;
	i,NbFiches,MaxAge,IndiceMAx : INTEGER;
	
BEGIN
	NbFiches := 1;
	MaxAge := 0;
	WHILE True DO
	BEGIN
		write('Entrer un nom:');	
		readln(nom1);
		IF (nom1 <> 'FIN') THEN
		BEGIN
			Fiches[NbFiches].Nom := nom1;
			write('Entrer un prénom:');
			readln(Fiches[NbFiches].Prenom);
			write('Entrer un âge:');
			readln(Fiches[NbFiches].Age);
			write('Entrer une rue:');
			readln(Fiches[NbFiches].Rue);
			write('Entrer un code postal:');
			readln(Fiches[NbFiches].CP);
			write('Entrer un numéro de télephone:');
			readln(Fiches[NbFiches].Tel);
			NbFiches := NbFiches + 1;
		END
		ELSE Break;
	END;
	FOR i:=1 TO NbFiches DO
	BEGIN
		IF Fiches[i].Age > MaxAge THEN
		BEGIN
			MaxAge := Fiches[i].Age;
			IndiceMax := i;
		END;
	END;
	WriteLn('La plus vieille personne a pour nom: ',Fiches[IndiceMax].Nom);
END.
 | l | 
| >Fonctionnement | 
| >Programmation modulaire | 
| >C'est quoi ? | 
| >Fonctions et procédures | 
| >Les Fonctions | 
| >Ecriture d'une fonction en Pascal | 
FUNCTION nom_fonction(paramètre1, paramètre2, ..., paramètren) : type_retour; BEGIN .. .. END;  | l | 
FUNCTION f(x : REAL) : REAL; BEGIN f := x + 3; END;  | l | 
| >Variables locales | 
FUNCTION f(x: REAL): REAL; VAR a : INTEGER; BEGIN a := x * x; f := a + 3; END;  | l | 
| >Fonctions imbriquées | 
FUNCTION f(x:REAL): REAL; FUNCTION carre(x :REAL): REAL; BEGIN carre := x * x; END; BEGIN f := carre(x) + 3; END; BEGIN Write(f(3)); END.  | l | 
+---------- Programme principal ----------------+ | | | variables locales : +---- f ----------------+ | | | var locales: | | | | +-- carre --+ | | | | | | | | | | +-----------+ | | | | | | | +-----------------------+ | | | +-----------------------------------------------+  | l | 
| >Les procédures | 
| >Place des déclarations | 
| >Passage des arguments | 
TYPE Tab = array[1..50] of INTEGER; PROCEDURE Reset_Tab(Tab : TTab); VAR i : INTEGER; BEGIN FOR i:=1 TO 50 DO BEGIN Tab[i] := 0; END; END;  | l | 
VAR Tab1 : TTab; BEGIN Tab1[1] := 1; Tab1[2] := 10; Tab1[3] := 100; ... Tab1[50] := 12; Reset_Tab(Tab1); Write(Tab1[1]); END.  | l | 
PROCEDURE Reset_Tab(VAR Tab: TTab);  | l |