برامج

مساعدة في تطبيق بلغة pascal [الأرشيف] - برامج نت

المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مساعدة في تطبيق بلغة pascal


imadin
05-04-2007, 07:04 PM
التطبيق يعتمد على استعمال
un table avec hashcoding et liste de debordement
العمل المطلوب مني هو كتابة برنامج يتكون من 3 إجراءات - procedures -
الأولى admission وتعني بالإضافة يعني دخول شخص إلى المستشفى
الثانية sortant تختص بالحذف
الثالثة consultation تختص بالبحث عن شخص وإعطاء المعلومات الخاصة به
- nom ,prenom,age,diagnostic,traitement
وهذا ماحاولت كتابته وتوجد أشياء خلفتها فأرجو المساعدة بسرعة
:smailes88: أنا حاولت كثيرا ومااستطعت أن أجد الحل
program tp;
type
ptr=^patient;
patient=record
np:string[30];
age:integer;
diagnostic,traitement:string[30];
suiv: ptr;
end;
table=array [1..100] of patient;
var
t:table;
i,n,pos:integer;
p:string[30];
pt,pt1:ptr;
procedure admission(var t:table);
begin
writeln('entrer le nombre de patient que vous voulez ajouter');
readln(n);
for i:=1 to n do
begin
writeln('entrer le nom et le prenom');
readln(p);
pos:=hash(p);
if t[pos].np =p then
writeln('le patient est deja existe')
else
if t[pos].np <> '' then
if t[pos].suiv <> nil then
begin
pt:=t[pos].suiv;
while (pt^.np <>p) and (pt^.suiv<> nil) do
pt:=pt^.suiv;
if pt^.np =p then (* existe dans la liste de debordement*)
writeln('le patient existe')
else (*pt^.suiv=nil=n existe pas*)
begin
new(pt1);
pt1^.suiv:=nil;
pt^.suiv:=pt1;
pt1^.np:=p;
write('AGE : ');
readln(pt1^.age);
write('diagnostic : ');
readln(pt1^.diagnostic);
write('traitement : ');
readln(pt1^.traitement)
end
else (*t[pos].suiv = nil *)
begin
new(pt1);
pt1^.suiv:=nil;
t[pos].suiv:=pt1;
pt1^.np:=p;
write('age : ');
readln(pt1^.age);
write('diagnostic : ');
readln(pt1^.diagnostic);
write('traitement : ');
readln(pt1^.traitement);
end
else (* t[pos].np = " *)
begin
t[pos]^.np:=p;
write('age : ');
readln(t[pos]^.age);
write('diagnostic : ');
readln(t[pos]^.diagnostic);
write('traitement : ');
readln(t[pos]^.traitement);

end
end
end;
procedure sortant(vat t:table);
begin
writeln('entrer le nombre de patient que vous voulez supprimer');
readln(n);
for i:=1 to n do
begin
writeln('entrer le nom et le prenom');
readln(p);
pos:=hash(p);
if t[pos].np =p then

else
if t[pos].np <> '' then
if t[pos].suiv <> nil then
begin
pt:=t[pos].suiv;
while (pt^.np <>p) and (pt^.suiv<> nil) do
pt:=pt^.suiv;
if pt^.np =p then (* existe dans la liste de debordement*)

else (*pt^.suiv=nil=n existe pas*)
begin
writeln('le paitient n existe pas');
end
else (*t[pos].suiv = nil *)
begin
new(pt1);
pt1^.suiv:=nil;
t[pos].suiv:=pt1;
pt1^.np:=p;
write('age : ');
readln(pt1^.age);
write('diagnostic : ');
readln(pt1^.diagnostic);
write('traitement : ');
readln(pt1^.traitement);
end
else (* t[pos].np = " *)
begin
t[pos]^.np:=p;
write('age : ');
readln(t[pos]^.age);
write('diagnostic : ');
readln(t[pos]^.diagnostic);
write('traitement : ');
readln(t[pos]^.traitement);

end
end
end;
procedure consultation(var t :table);
writeln('entrer le nombre de patient que vous voulez consulter');
readln(n);
for i:=1 to n do
begin
writeln('entrer le nom et le prenom');
readln(p);
pos:=hash(p);
if t[pos].np =p then

else
if t[pos].np <> '' then
if t[pos].suiv <> nil then
begin
pt:=t[pos].suiv;
while (pt^.np <>p) and (pt^.suiv<> nil) do
pt:=pt^.suiv;
if pt^.np =p then (* existe dans la liste de debordement*)

else (*pt^.suiv=nil=n existe pas*)
begin



end
else (*t[pos].suiv = nil *)
begin



end
else (* t[pos].np = " *)
begin


end
end
end;

imadin
05-06-2007, 11:18 AM
أين المساعدة

imadin
05-07-2007, 09:06 AM
14 مشاهدة ولا رد واحد