Вывести на экран монитора и распечатать в виде таблицы значения аргумента x - Pascal ABC
Формулировка задачи:
Вывести на экран монитора и распечатать в виде таблицы значения аргумента x, значение функции y,(i=1,2,3...) и графики кривых a и b, закрасить область ограниченную графиками этих кривых.
Кривые:
a
b
Решение задачи: «Вывести на экран монитора и распечатать в виде таблицы значения аргумента x»
textual
Листинг программы
- uses graphABC;
- function f(x:real):real;
- begin
- f:=sqrt(5*x-x*x);
- end;
- var x,ymx,h,mx,my:real;
- x1,y1:array[1..20] of real;
- n,i,x0,y0,xn,xk:integer;
- st:string;
- begin
- xn:=0;xk:=5;//интервал по Х
- //заполнение таблицы значений и нахождение максимального для масштаба по оси Y
- h:=0.5;
- ymx:=F(xn);
- x:=xn;
- n:=0;
- while x<=xk do
- begin
- n:=n+1;
- x1[n]:=x;
- y1[n]:=F(x1[n]);
- if y1[n]>ymx then ymx:=y1[n];
- x:=x+h;
- end;
- x0:=250;
- y0:=windowheight-50;
- mx:=(windowwidth-x0-30)/xk;//масштабы по осям
- my:=(y0-30)/ymx;
- line(x0,y0,windowwidth,y0);///оси
- line(x0,0,x0,windowheight);
- for i:=1 to 5 do//максимальное количество засечек в одну сторону
- begin
- line(x0-3,y0-round(i*my/2),x0+3,y0-round(i*my/2));//засечки на оси У
- textout(x0-20,y0-round(i*my/2),floattostr(i/2));//соответственно засечкам
- line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); //засечки на оси Х
- //подпись оси Х
- textout(x0+round(i*mx),y0+10,floattostr(i));
- end;
- //центр
- textout(x0+5,y0+10,'0');
- //подписи концов осей
- textout(windowwidth-20,y0-20,'X');
- textout(x0+5,10,'Y');
- //графики
- setpencolor(clRed); //y=3/2
- line(x0+round(xn*mx),y0-round(1.5*my),x0+round(xk*mx),y0-round(1.5*my));
- x:=xn; //F(x)
- setpencolor(clBlue);
- moveto(x0+round(x*mx),y0-round(f(x)*my));
- while x<=xk do
- begin
- lineto(x0+round(x*mx),y0-round(f(x)*my));
- x:=x+0.1;
- end;
- setbrushcolor(clLime);//заливка области
- floodfill(x0+round(2.5*mx),y0-round(1.5*my)-5,clLime);
- //название
- setbrushstyle(bsClear);
- setfontsize(12);
- setfontcolor(clBlue);
- textout(x0+20,20,'x^2+y^2=5x');
- setfontcolor(clRed);
- textout(x0+20,40,'y=3/2');
- //построение таблицы
- setpencolor(clBlack);
- setfontcolor(clBlue);
- textout(10,0,'Значения аргумента');
- textout(30,20,'и функции');
- line(10,50,10,50+(n+1)*20);
- line(60,50,60,50+(n+1)*20);
- line(110,50,110,50+(n+1)*20);
- setfontcolor(clBlue);
- for i:=0 to n+1 do
- line(10,50+i*20,110,50+i*20);
- textout(35,55,'X');
- textout(85,55,'Y');
- for i:=1 to n do
- begin
- str(x1[i]:0:2,st);
- textout(15,55+20*i,st);
- str(y1[i]:0:2,st);
- textout(65,55+20*i,st);
- end;
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д