← algo
TD 2 · Algorithmique II

Enregistrements & fichiers

Regrouper plusieurs données sous un même nom (un enregistrement), puis les conserver en masse dans un fichier. Un temps, un nombre complexe, une personne : trois types composés, trois familles d'opérations.

Exercice 1
★★

Le type TEMPS

Transformer, décomposer et additionner des durées

Énoncé

Définir un type TEMPS (heure, minute, seconde), puis écrire TRANSFORM (temps → secondes), DECOMPOS (secondes → temps) et la somme de deux durées.

2 h × 36007200
10 min × 60600
37 s × 137
S (secondes)7837
TEMPS → secondes
1Fonction TRANSFORM(T : TEMPS) : entier
2 TRANSFORM ← T.heure × 3600
3 + T.minute × 60
4 + T.seconde
5FIN
À retenir

Ramener tout aux secondes transforme un problème de « retenues » (60 s = 1 min…) en simple arithmétique. DECOMPOS reconstruit la forme lisible par divisions et restes successifs.

Exercice 2
★★★

Les nombres complexes

Arithmétique vue sur le plan d'Argand

Énoncé

Un complexe Z = a + bi. Écrire ReelZ, ImagZ, Module, puis SommeZ, DiffZ, ProdZ, ConjZ, EgaleZ, EcrireZ — et les exploiter sur un tableau de complexes.

ImZ1Z2R
Z1 = 3 + 2i
Z2 = -1 + 3i
R = 2 + 5i
Z1
Z2
1Procédure SommeZ(Z1, Z2 ; VAR R)
2 R.a ← Z1.a + Z2.a
3 R.b ← Z1.b + Z2.b
4FIN

L'addition est la diagonale du parallélogramme construit sur Z1 et Z2.

À retenir

Un complexe est un enregistrement à deux champs réels. Chaque opération devient géométrique : addition = parallélogramme, conjugué = symétrie, produit = rotation + dilatation. Le module est la norme du vecteur.

Exercice 3
★★

Fichiers de personnes

Recherche, fusion, comptage, suppression

Énoncé

Une Personne (nom, prénom, sexe, âge) et un fichier de personnes. Écrire la recherche par nom, la fusion de deux fichiers, le comptage des moins de 30 ans, et la suppression d'un enregistrement.

Recherche "Cherkaoui"
Alami34 ans · H
Bennani27 ans · F
Cherkaoui41 ans · H
Daoudi22 ans · F
01 / 04
Lire Alami — ≠ "Cherkaoui", on continue
Recherche séquentielle
1Fonction Recherche(F, nom) : booléen
2 Ouvrir(F)
3 TantQue NON fin(F) faire
4 Lire(F, p)
5 Si p.nom = nom alors
6 Retourner Vrai
7 FinTantQue
8 Retourner Faux
9FIN
À retenir

Un fichier se parcourt séquentiellement : on lit un enregistrement à la fois jusqu'à la fin. Comme on ne peut pas y écrire « au milieu », fusion et suppression passent par la recopie dans un nouveau fichier.