Bonsoir,
A l exécution le programme ne fait pas ce à quoi je m'attendais, son but étant de voir si une date de réservation et comprise dans une autre date déjà enregistrée.
Le programme compile mais il renvoie toujours dispo, je ne vois pas pourquoi, pour l exécuter j ai pris exprès un cas ou ca doit renvoyer occupé. S il y a une erreur elle devrait provenir de la fonction disponibilité puisque j ai vérifié les autres séparément et ca marche, merci d avance pour votre aide
Code: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 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; if (aClient > formatArrivee(reservation[chambre][sejour])) and (aClient < formatDepart(reservation[chambre][sejour])) and (dClient > formatArrivee(reservation[chambre][sejour])) and (dClient < formatDepart(reservation[chambre][sejour])) then disponibiliteSejour:=false; if (aClient > formatArrivee(reservation[chambre][sejour])) and (aClient < formatDepart(reservation[chambre][sejour])) and (dClient > formatArrivee(reservation[chambre][sejour])) and (dClient > formatDepart(reservation[chambre][sejour])) then disponibiliteSejour:=false; if (aClient < formatArrivee(reservation[chambre][sejour])) and (aClient < formatDepart(reservation[chambre][sejour])) and (dClient > formatArrivee(reservation[chambre][sejour])) and (dClient > formatDepart(reservation[chambre][sejour])) then disponibiliteSejour:=false; if (aClient < formatArrivee(reservation[chambre][sejour])) and (aClient < formatDepart(reservation[chambre][sejour])) and (dClient > formatArrivee(reservation[chambre][sejour])) and (dClient < formatDepart(reservation[chambre][sejour])) then disponibiliteSejour:=false; 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.
-----