Bonsoir,
Dans le programme qui suit, l'erreur semble provenir de la fonction disponibilité puisque, quand j'exécute, elle renvoie toujours
dispo alors que d'après les conditions que j'ai mises ça ne le devrait pas.
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
| program test;
const MAX=100;
type tabReservations=array [1..MAX,1..MAX] of string;
var reservation : tabReservations;
function formatArrivee(date : string):longint;
var
i, er : integer;
arrivee : longint;
motArrivee : string;
begin
arrivee:=0;
motArrivee:='';
for i:=1 to 8 do
motArrivee:=motArrivee + date[i];
val(motArrivee,arrivee,er);
formatArrivee:=arrivee;
end;
function formatDepart(date : string):longint;
var
i, er : integer;
depart : longint;
motDepart : string;
begin
depart:=0;
motDepart:='';
for i:=13 to 20 do
motDepart:=motDepart + date[i];
val(motDepart,depart,er);
formatDepart:=depart;
end;
function disponibiliteSejour(aClient, dClient : longint; chambre, sejour: integer): boolean;
var
i, j : integer;
reservation : tabReservations;
begin
disponibiliteSejour:=false;
if (aClient > formatDepart(reservation[chambre][sejour])) and (dClient > formatDepart(reservation[chambre][sejour])) then
disponibiliteSejour:=true;
if (aClient < formatArrivee(reservation[chambre][sejour])) and (dClient < formatArrivee(reservation[chambre][sejour])) then
disponibiliteSejour:=true;
end;
begin
reservation[1][1]:='20130203 au 20130310';
writeln('Arrivée : ',formatArrivee(reservation[1][1]));
writeln('Depart : ',formatDepart(reservation[1][1]));
if disponibiliteSejour(20130302, 20130310, 1, 1)=true then
writeln('C''est dispo');
if disponibiliteSejour(20130302, 20130310, 1, 1)=false then
writeln('C''est occupé');
end. |
Merci d'avance, au revoir.