uses crt;
var R,I,U,Wn,J,KF,Mn,T,Md,Mc,W,dW:real,dt:real;
data:text;
ii,c:integer;
param:string;
begin
clrsсr;
assign(data,'D:\DATA.txt');
reset(data);
ii:=0;
while not EOF(data) and (ii<5) do begin
readln(data,param);
if param <> '' then
case ii of
0: val(param,R,c);
1: val(param,I,c);
2: val(param,U,c);
3: val(param,Wn,c);
4: val(param,J,c);
end;
inc(ii);
end;
close(data);
writeln('Source data:');
writeln('R=',R:5:2,'I=',I:5:2,'U=',U:5:2,'Wn=',Wn: 5:2,'J=',J:5:2);
W:=0;
T:=0;
dt:=0.005;
KF:=(U-I*R)/Wn;
Mn:=KF*I;
writeln('Calculated data:');
writeln('KF=',KF:5:2,'Mn=',Mn:5:2);
writeln('Press ENTER to START');
readln;
writeln('-------------------------------------------');
writeln('| T | W | Md | Mc |');
writeln('-------------------------------------------');
repeat
T:=T+dt;
Dw:=1/J*(Md-Mc)*dt;
W:=W+dW;
Md:=KF*U/R-sqr(KF)*W/R;
Mc:=Mn*sqr(W/Wn);;
writeln('| ',T:6:3,'| ',W:5:2,'| ',Md:10:4,'| ',Mc:10:4,'|');
until(round(Md*10000)=round(Mc*10000));
repeat until keypressed;
end.
не могу исправить ошибку в паскаль
uses crt;
var
R,I,U,Wn,J:real;
KF,Mn:real;
T,Md,Mc,W,dW:real;
dt:real;
data:text;
ii,c:integer;
param:string;
procedure MODV;
begin
Md:=KF*U/R-sqr(KF)*W/R;
end;
procedure NAG;
begin
Mc:=Mn*sqr(W/Wn);
end;
begin
clrsqr;
assign(data,'D\DATA.txt');
reset(data);
ii:=0;
while not EOF(data) and (ii<5) do
begin
readln(data,param);
if param <> '' then
case ii of
0: val(param,R,c);
1: val(param,I,c);
2: val(param,U,c);
3: val(param,Wn,c);
4: val(param,J,c);
end;
inc(ii);
end;
close(data);
writeln('Source data:');
writeln('R=',R:5:2,'I=',I:5:2,'U=',U:5:2,'Wn=',Wn:5:2,'J=',J:5:2);
W:=0;
T:=0;
dt:=0.005;
KF:=(U-I*R)/Wn;
Mn:=KF*I;
writeln('Calculated data:');
writeln('KF=',KF:5:2,'Mn=',Mn:5:2);
writeln('Press ENTER to START');
readln;
writeln('-------------------------------------------');
writeln('| T | W | Md | Mc |');
writeln('-------------------------------------------');
repeat
T:=T+dt;
Dw:=1/J*(Md-Mc)*dt;
W:=W+dW;
MODW;
NAG;
writeln('| ',T:6:3,'| ',W:5:2,'| ',Md:10:4,'| ',Mc:10:4,'|');
until(round(Md*10000)=round(Mc*10000));
readln;
end.
постоянно выдает 3
а clrscr;
вызов твоей процедуры MODV а ты пишеш MODW
Код:
а разве параметры процедурам передавать не нужно:?
ужос! х(
хотя бы описание проги дал..