سلام دوستان من این برنامه رو نوشتم ولی متاسفانه به مشکلی برخوردم بنظر خودم که هیچ مشکلی نداره ولی وقتی می خواد خروجی رو نشون بده درست در اخرین لحظه run time error میده موندم چیکار کنم اگه کدم در قسمت تابعی که رنگیش کردم مشکلی داره خواهشا بگید(هر چند چشم ابن می خوره کسی بتونه کمک کنه)
دوستان تابع و محل استفادش رو رنگی کردم خواهشا اگه می تونید کمک کنیدکد:uses wincrt;
type
a=record
ID:integer;
name:string;
family:string;
age:integer;
nom:record
dars1:real;
dars2:real;
dars3:real;
end;
end;
mosh=array[1..50] of a ;
var
name:string;aveM,aveN:real;
number,i,n:integer;
mosh1:mosh;
{*******************************************************************}
function ave1(name:string ;n:integer;b:mosh) : real;
var
x:real;flag:boolean;
l:integer;
begin
l:=1;flag:=false;
while (l<=n) and (flag) do
begin
if b[l].name=name then
begin
x:=(b[l].nom.dars1) + (b[l].nom.dars2) + (b[l].nom.dars3) ;
flag:=true;
end;
l:=l+1;
end;
ave1:=x/3;
end;
{*********************************************************************}
{*********************************************************************}
function aveAll(b:mosh;n:integer):real;
var
x,d:real;
begin
for i:=1 to n do
begin
x:=((b[i].nom.dars1) + (b[i].nom.dars2) + (b[i].nom.dars3))/3 ;
d:=x+d;
end;
aveAll:=d/n
end;
{**********************************************************************}
begin
writeln('please enter number of student');
readln(n);
for i:=1 to n do
begin
writeln('Enter ID');
readln(mosh1[i].id);
writeln('Enter name');
readln(mosh1[i].name);
writeln('Enter family');
readln(mosh1[i].family);
writeln('Enter Age');
readln(mosh1[i].age);
writeln('Enter 3 nomreye darsi');
readln(mosh1[i].nom.dars1);
readln(mosh1[i].nom.dars2);
readln(mosh1[i].nom.dars3);
end;
writeln('press number 1 to ADD');
writeln('press number 2 to Delete');
writeln('press number 3 to AVE one student');
writeln('press number 4 to ave all student');
writeln('press number 5 to manage name&family');
readln(number);
case number of
1 :{ADD;};
2 :{delete;};
3 :begin
writeln(' enter student name') ;
readln(name);
aveM:=ave1(name,n,mosh1);
writeln(aveM:5:4);
end;
4 :begin
aveN:=aveALL(mosh1,n);
writeln(aveN);
end;
5 :{manage;} ;
end;
{***************************************************************************}
end.
