Exploitation d'une liste chaînée de véhicules
Bonsoir tout le monde.
Je suis étudiant en 1e année de DUT Informatique et je sollicite votre aide sur un projet qui nous a été donné.
Le but final de l'exercice est de gérer un fichier (.dat) dans le quel on retrouve une liste de véhicules à vendre. Le fichier se présente de la manière suivante:
Citation:
Marque
Modèle
Carburant (E,D ou Z)
Année
Prix
On doit afficher la liste des véhicules, ensuite, afficher le nombre de véhicules pour chaque type de carburant et afficher le véhicule le plus récent.
J'ai réussi à afficher la liste de véhicules, mais je suis bloqué au niveau de la deuxième partie de l'exercice.
Voila le programme que j'ai pour le moment :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| PROGRAM Voitures;
TYPE
voiture = record
marque : string[30];
modele : string[20];
carb : char;
annee : integer;
prix : integer;
end;
TYPE
liste = ^cellule;
cellule = record
contenu : voiture;
suivant : liste;
end;
function carburant(a,b,c : integer) : integer;
VAR
m : char;
W : file of voiture;
i : voiture;
Begin
a:=0;
b:=0;
c:=0;
assign(W, 'voitures.dat');
reset(W);
while not EOF(W) do
begin
read(W,i);
m := i.carb;
if (m='E') then
a := a+1
else
if (m='D') then
b := b+1
else
if (m='C') then
c := c+1
end;
end;
VAR
V : file of voiture;
i : voiture;
o : char;
x,y,z,p : integer;
Begin
writeln('Que voulez-vous faire ?');
writeln('1) Quittez le logiciel');
writeln('2) Afficher les véhicules disponible a la vente');
writeln('3)Afficher le nombre de vhéicules fonctionant à une énérgie donnée');
writeln('4)Supprimer le véhicule le plus récent de la liste chainée');
readln (p);
If p=1 then
exit;
if p=2 then
begin
assign(V, 'voitures.dat');
reset(V);
x:=0;
y:=0;
z:=0;
while not EOF(V) do
begin
read(V,i);
writeln(i.marque);
writeln(i.modele);
writeln(i.carb);
writeln(i.annee);
writeln(i.prix);
end;
end;
if p=3 then
writeln(carburant(x,y,z));
if p=4 then
writeln ('4 Marche bien');
end. |
Pouvez-vous me dire quel est le problème svp ?
Merci d'avance :D