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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.