Program Diagnostic;
Type
tab = Array[1..10] Of String;
Var
M,S: tab;
i,n: Integer ;
sym: String;
//*********************************************
Function Alpha(ch:String): Boolean;
Var
i: Integer;
b: Boolean;
Begin
i := 0;
Repeat
i := i+1;
b := (ch[i] In ['A'..'Z',' ']);
Until (i=Length(ch)) Or Not(b);
Alpha := b;
End;
//*********************************************
Function former(ns:Integer): String;
Var
i: Integer;
res,sy: String;
Begin
res := '';
For i:=1 To ns Do
Begin
Repeat
Writeln('Donner symptôme ',i);
Readln(sy);
Until Alpha(sy);
res := res + sy + '#';
End;
Delete(res,Length(res),1);
former := res;
End;
//*********************************************
procedure saisie(Var ch:String);
Var
ns: Integer;
Begin
Writeln('Donner les symptômes correspondants : ');
repeat
Writeln('Combien de symptômes ? ');
readln(ns);
Until (ns>0);
ch := former(ns);
End;
//*********************************************
Procedure affiche_maladie(M:tab;S:tab;n:Integer;symp:String);
Var
i: Integer;
res: String;
Begin
Writeln('Pour le symptôme = ',symp);
Write ('les maladies probables sont : ');
res := '';
For i:=1 To n Do
If Pos(symp,S[i])<>0 Then
If Length(res)=0 Then
res := res+M[i]
else
res := res+' et '+ M[i];
Write(res);
End;
//*********************************************
begin
repeat
Writeln('Donner le nombre de maladies : ');
Readln(n);
Until n In [2..100];
For i:=1 To n Do
begin
Repeat
Writeln('Donner la maladie n°: ',i);
Readln(M[i]);
until Alpha(M[i]);
Saisie(S[i]);
end;
Repeat
Writeln('Symptôme en question : ');
readln(sym);
Until Alpha(sym);
affiche_maladie(M,S,n,sym);
End.
Inscription à :
Publier les commentaires (Atom)