Вывести на экран монитора и распечатать в виде таблицы значения аргумента 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д