Consultez gratuitement nos différents cours

  • Radioactivité et réactions nucléaires (Science physique)

    La radioactivité est un phénomène qui consiste en l'émission d'un ou de plusieurs rayonnements électromagnétiques. Pour mettre en évidence le rayonnement radioactif un mélange de substance radioactive est placé dans une cavité étroite d'un bloc de plomb. Les rayonnements émis par cette substance sont soumis à un champ électrostatique accélérateur Les particules contenues dans le rayonnement α ont été identifiées comme étant les noyaux d'atome d'hélium. Les particules alpha sont très...

    Lire la suite : Radioactivité et réactions nucléaires

  • Dimensionnement des composants (Schéma électronique)

    Les résistances Pour dimensionner une résistance, on tient compte de la tension à ses bornes et le courant qui le traverse appliquer le formule R=U/I suivant la précision choisie (série). La valeur nominale de la résistance sera celle qui donnera la plus petite erreur en valeur absolue. En suite on calcule la puissance P=UI=RI2, suivant la nature du matériau nous obtenons pour une puissance légèrement supérieure à celle calculée. Condensateur Pour dimensionner les condensateurs, il faut tenir...

    Lire la suite : Dimensionnement des composants

  • Théorème de Thalès: application au triangle (Mathématique)

    Droites parallèles Deux droites sont parallèles lorsque leur interception est vide. Théorème de Thalès Des parallèles qui déterminent des segments égaux sur une sécante donnée déterminent aussi des segments égaux sur toutes autres sécantes. Théorème de Thalès appliqué au triangle Dans un triangle, toute parallèle à un côté d'un triangle détermine sur les deux autres côtés des segments proportionnels   Théorème de Thalès Figure clef Dans un triangle, lorsqu'une droite est parallèle à l'un des côtés d'un...

    Lire la suite : Théorème de Thalès: application au triangle

  • Les statistiques (Mathématique)

    La statistique est l'étude de caractères d'une population donnée. Ce caractère peut être qualitatif ou quantitatif. Exemple: Les élèves du lycée son nombreux et portent le bleu et le gris. Les statistiques portent essentiellement sur l'organisation des données qui comprennent: les modalités, les effectifs et fréquences. Exemple: Dans une classe de 3e, les notes attribuées aux élèves sont: 1; 10; 11; 0; 3; 2,5; 09; 13.   Gestion des données On entend par gestion des données toutes les parties du...

    Lire la suite : Les statistiques

Les fichiers

Généralités

Un fichier est une collection d'information structurée en unité d'accès appelé enregistrement.
Un fichier est toujours enregistré dans un support externe à la mémoire centrale (disque dur, disquette, clef USB ...).
L'accès aux différents éléments d'un fichier peut être soit séquentiel soit direct.

Déclaration d'un fichier

type
etudiant = record
matricule : string;
nom : string;
note : real;
end;
fichier = file of etudiant;

Remarque:

Un fichier une fois créé doit continuer à exister indépendamment du programme qui le construit. Chaque fichier a un nom physique ou chemin d'accès qui se présente sous la forme 'unité: nom_fichier.Extension'unité peut être A: B: C: D:
nom_fichier est constitué de 1 à 8 caractères.

extention de 0 à 3 caractères.

Exemple:

'C:\Etude.txt'
Le nom du fichier est spécifié par l'instruction assign.

Exemple:

assign(fichier, 'C:\etude.txt')

Exemple:

var F: file of etudiant;
begin
assign(F, 'A:\etude.txt');

L'accès séquentiel à un fichier

Pour l'accès séquentiel on parcourt le fichier élément par élément pour obtenir l'élément à traiter. Les primitives utilisées sont:

  • rewrite(fichier) permet d'ouvrir le fichier en écriture. Si le fichier existe déjà son ancien contenu devient inaccessible. Si le fichier n'existe pas encore, il sera tout simplement créé (pour l'instant il sera vide).
  • reset(fichier) permet l'ouverture du fichier en lecture ou en lecture écriture. Dans ce cas le fichier doit effectivement exister sinon il se produit une erreur d'exécution.
  • write(fichier, val) cette instruction permet d'écrire le contenu de val dans le fichier. Seulement val doit être du même type que les éléments du fichier.
  • read(fichier, val) cette instruction permet d'introduire un élément du fichier dans val.
  • eof(fichier) permet de détecter la fin du fichier. Cette fonction prend la valeur vraie si la fin du fichier a été atteinte.
  • close(fichier) permet de fermer le fichier à partir de là le fichier devient inaccessible.

Exemple:

program creation_fichier_etudiant;
type etudiant = record
matricule : string;
nom : string;
note : real;
end;
var fichir : file of etudiant;
personne : etudiant;

begin
assign(fichier, 'C:\etudiant.txt');
rewrite(fichier);
repeat
write('matricule: ')
readln(personne.matricule);
write('nom');
readln(personne.nom);
write('note: ');
readln(personne.note);
if length(personne.matricule) <> 0 then
write(fichier, personne);
until length(personne.matricule) = 0;
close(fichier);
end.

Exercice:

Ecrire un programme qui permet d'afficher la liste des informations des étudiants contenu dans 'C:\etudiant.txt'.

Solution:

var F:file of etudiant
program affiche per: etudiant
begin
assign(F, 'C:\etudiant.txt');
reset(F);
read(F, per);
while not (eof(F)) do
begin
writeln(per.matricule);
writeln(per.nom);
writeln(per.note);
read(F, per);
end;
close(F);
end.

 

Accès direct

 

Il est possible d'accéder directement à un élément du fichier lorsqu'on connaît son numéro.
La seule instruction nouvelle lors de l'accès direct est l'instruction seek(fichier, numéro) qui place la tête de lecture à l'élément donc le numéro a été indiqué.
Par convention les éléments d'un fichier sont spécifiés à partir de 00 et non à partir de 1
Exemple: seek(F,2)

  • filesize(fichier) renvoie le nombre d'élément.
  • filesize(fichier)-1 pour trouver le dernier élément.
  • seek(F, filesize(fichier)) pour placer le curseur à la fin du fichier.

Exemple:

procedure affiche_element(var F: fichier)
var val: etudiant; num: integer;
begin
assign(F,'C:\etudiant.txt');
reset(F);
writeln('Entrer un numéro: ');
repeat
write('Numéro = ');
readln(num);
until num <= filesize(F)
seek(F, num);
read(F, val);
writeln('Matricule: ',val.matricule);
writeln('nom: ', val.nom);
writeln('note: ',val.note);
close(F);
end;