Pascal Objet, au secours !!! - Programmation
Marsh Posté le 02-05-2001 à 20:16:34
Huh??
Dis donc, désolé de commencer par critiquer, mais ça serait bien de l'indenter un peu mieux, ton programme. Parce que j'ai mis un certain temps à comprendre où commençaient et où finissaient certains blocs...
Ca c'est un peu mieux...
Code :
|
En reformattant le code, j'ai remarqué j'ai remarqué qu'il manquait une apostrophe dans le "write ('ANNEE D''IMMATRICULATION : ');" Eh, oui, l'apostrophe doit être doublée pour pouvoir être affichée.
Sinon, je n'aime pas trop les types anonymes. Je te conseille fortement de définir un type nommé pour ton tableau et ton enregistrement dans ton objet. Evite aussi les "with", contrairement à ce qu'on pourrait croire, ça ne facilite pas la lisibilité (au contraire).
Au fait, question bête : c'est quoi, ton erreur de compilation ?
[edit]--Message édité par BifaceMcLeOD--[/edit]
Marsh Posté le 02-05-2001 à 20:40:19
J'ai regardé un peu ton code (enfin, celui que j'ai reformatté), et je me dis qu'il y a quand même un petit problème... de conception.
Et effectivement, j'ai compris l'erreur de compilation.
A quoi il te sert ton objet ? Pourquoi tu passes un tableau à une des méthodes de l'objet, alors que tu l'as déjà dans l'objet, le tableau en question. A mon avis, le code correct aurait été de définir 2 objets : un "Vehicule" et un "StockVehicule", comme suit :
Code :
|
Mes souvenirs de Pascal sont très lointains, et j'ai arrêté de programmer en Pascal au moment où les extensions objet sont sorties. Donc je ne suis pas 100% sûr que c'est "self" qu'il faut utiliser, mais si ce n'est pas ce mot-là, le mot réservé qui fait la même chose ne doit pas être très différent (par exemple, d'autres langages comme C++ ou Java utilisent "this" pour cet usage).
[edit]--Message édité par BifaceMcLeOD--[/edit]
Marsh Posté le 02-05-2001 à 13:26:42
Comment fait-on pour déclarer une structure "record" dans une classe ? et comment l'affecter à un tableau ? J'ai fait cet exemple que je n'arrive pas à compiler :
unit bibstock;
interface
uses crt, drivers;
type
cVehic = object
stockVehic : record
modele : string[20];
marque : string[20];
immatr : string[20];
anImmatr : integer;
prixVente : real;
end;
typTabVeh : array[1..500] of stockVehic;
procedure saitab(var tabVeh : typTabVeh);
procedure affichSuivModel(tablo : typTabVeh);
procedure affichSuivPrix(tablo : typTabVeh);
procedure insert;
procedure delete;
end;
implementation
procedure cVehic.saitab(var tabVeh : typTabVeh);
var
i, n : integer;
rep : string;
begin
i := 1;
n := 500;
while i <= n do
begin
with tabVeh[i] do
begin
write ('MODELE : '); readln (modele);
write ('MARQUE : '); readln (marque);
write ('IMMATRICULATION : '); readln (immatr);
write ('ANNEE D'IMMATRICULATION : '); readln (anImmatr);
write ('PRIX DE VENTE : '); readln (prixVente);
end;
repeat
write ('Voulez-vous référencer un autre véhicule ? (O/N) '); readln (rep);
until (rep='O') or (rep='o') or (rep='n') or (rep='N');
if (rep='n') or (rep='N') then
begin
n := i;
end;
i := i+1;
end;
end;
end.