Не могу найти ошибку - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Решение задачи: «Не могу найти ошибку»

textual
Листинг программы
Program Graf01;
uses Graph;
var
Xw1,Xw2,Yw1,Yw2:integer;
Dan: array [1..2,1..200] of real;
Xmin,Xmax,Ymin,Ymax:real;
Ko1T:integer;
Dx:real;
i,x0,x1,y0,y1:integer;
x:real;
ko1X,ko1Y:integer;
OcX,OcY:array [1..20] of real;
Ocif:string;
kX,kY:real;
gd,gm: integer;
 
Function F1(x:real):real;
begin
F1:=(x*x-9)*x+3;
end;
 
Procedure RasDan;
begin
Write('Xmin :');Readln(Xmin);
Write('Xmax :');Readln(Xmax);
Write('Ko1T :');Readln(Ko1T);
Dx:=(Xmax-Xmin)/(Ko1T-1);
x:=Xmin;
for i:=1 to Ko1T Do
begin
Dan[1,i]:=x; Dan[2,i]:=F1(x);
x:=x+Dx;
end;
Ymin:=Dan[2,1]; Ymax:=Dan[2,1];
for i:=2 to Ko1T do
begin
if Dan[2,i]<Ymin Then Ymin:=Dan[2,i];
if Dan[2,i]>Ymax Then Ymax:=Dan[2,i];
end;
 
Writeln('Xmin=',Xmin:8:4,' Xmax=',Xmax:8:4);
Writeln('Ymin=',Ymin:8:4,' Ymax=',Ymax:8:4);
Write('Кол.верт.линий (Ko1X):');Readln(Ko1X);
For i:=1 to Ko1X Do
begin
Write('X',i,'='); Readln(OcX[i]);
end;
Write('Кол.гориз. линий (Ko1Y):');Readln(Ko1Y);
For i:=1 to Ko1Y Do
begin
Write('Y','='); Readln(OcY[i]);
end;
{Readln}
end;
 
Procedure Setka;
begin
Rectangle(Xw1,Yw1,Xw2,Yw2);
kX:=Abs((Xw2-Xw1)/(Xmax-Xmin));
x0:=Xw1-Round((Xmin*kX));
For i:=1 to Ko1X Do
begin
x1:=Round(kX*(OcX[i]))+x0;
Line(x1,Yw1,x1,Yw2);
Str(OcX[i]:8:1,Ocif);
OutTextXY(x1-50,Yw2+10,Ocif);
end;
kY:=Abs((Yw2-Yw1)/(Ymax-Ymin));
y0:=Yw2+Round(Ymin*KY);
For i:=1 to Ko1Y Do
begin
y1:=y0-Round(kY*(OcY[i]));
Line(Xw1,y1,Xw2,y1);
Str(OcY[i]:8:1,Ocif);
OutTextXY(0,y1-5,Ocif);
end;
end;
 
Procedure Graf;
begin
SetLineStyle(0,0,3);
x1:=Round(kX*(Dan[1,1]))+x0;
y1:=y0-Round(kY*(Dan[2,1]));
MoveTo(x1,y1);
For i:=2 to Ko1T Do
begin
x1:=Round(kX*(Dan[1,i]))+x0;
y1:=y0-Round(kY*(Dan[2,i]));
LineTo(x1,y1);
end;
end;
 
Begin
RasDan;
Xw1:=100; Xw2:=600;
Yw1:=40; Yw2:=400;
gd := Detect;
InitGraph(gd, gm, '..\BGI');
Setka;
Graf;
readln;
CloseGraph;
End.

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы