Вывести на экран монитора и распечатать в виде таблицы значения аргумента x - Pascal ABC

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

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

Вывести на экран монитора и распечатать в виде таблицы значения аргумента x, значение функции y,(i=1,2,3...) и графики кривых a и b, закрасить область ограниченную графиками этих кривых. Кривые: a b

Решение задачи: «Вывести на экран монитора и распечатать в виде таблицы значения аргумента x»

textual
Листинг программы
  1. uses graphABC;
  2. function f(x:real):real;
  3. begin
  4. f:=sqrt(5*x-x*x);
  5. end;
  6. var x,ymx,h,mx,my:real;
  7.     x1,y1:array[1..20] of real;
  8.     n,i,x0,y0,xn,xk:integer;
  9.     st:string;
  10. begin
  11. xn:=0;xk:=5;//интервал по Х
  12. //заполнение таблицы значений и нахождение максимального для масштаба по оси Y
  13. h:=0.5;
  14. ymx:=F(xn);
  15. x:=xn;
  16. n:=0;
  17. while x<=xk do
  18.  begin
  19.   n:=n+1;
  20.   x1[n]:=x;
  21.   y1[n]:=F(x1[n]);
  22.   if y1[n]>ymx then ymx:=y1[n];
  23.   x:=x+h;
  24.  end;
  25. x0:=250;
  26. y0:=windowheight-50;
  27. mx:=(windowwidth-x0-30)/xk;//масштабы по осям
  28. my:=(y0-30)/ymx;
  29. line(x0,y0,windowwidth,y0);///оси
  30. line(x0,0,x0,windowheight);
  31. for i:=1 to 5 do//максимальное количество засечек в одну сторону
  32.  begin
  33.   line(x0-3,y0-round(i*my/2),x0+3,y0-round(i*my/2));//засечки на оси У
  34.   textout(x0-20,y0-round(i*my/2),floattostr(i/2));//соответственно засечкам
  35.   line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); //засечки на оси Х
  36.   //подпись оси Х
  37.   textout(x0+round(i*mx),y0+10,floattostr(i));
  38.  end;
  39. //центр
  40. textout(x0+5,y0+10,'0');
  41. //подписи концов осей
  42. textout(windowwidth-20,y0-20,'X');
  43. textout(x0+5,10,'Y');
  44. //графики
  45. setpencolor(clRed); //y=3/2
  46. line(x0+round(xn*mx),y0-round(1.5*my),x0+round(xk*mx),y0-round(1.5*my));
  47. x:=xn;  //F(x)
  48. setpencolor(clBlue);
  49. moveto(x0+round(x*mx),y0-round(f(x)*my));
  50. while x<=xk do
  51.  begin
  52.   lineto(x0+round(x*mx),y0-round(f(x)*my));
  53.   x:=x+0.1;
  54.  end;
  55. setbrushcolor(clLime);//заливка области
  56. floodfill(x0+round(2.5*mx),y0-round(1.5*my)-5,clLime);
  57. //название
  58. setbrushstyle(bsClear);
  59. setfontsize(12);
  60. setfontcolor(clBlue);
  61. textout(x0+20,20,'x^2+y^2=5x');
  62. setfontcolor(clRed);
  63. textout(x0+20,40,'y=3/2');
  64. //построение таблицы
  65. setpencolor(clBlack);
  66. setfontcolor(clBlue);
  67. textout(10,0,'Значения аргумента');
  68. textout(30,20,'и функции');
  69. line(10,50,10,50+(n+1)*20);
  70. line(60,50,60,50+(n+1)*20);
  71. line(110,50,110,50+(n+1)*20);
  72. setfontcolor(clBlue);
  73. for i:=0 to n+1 do
  74. line(10,50+i*20,110,50+i*20);
  75. textout(35,55,'X');
  76. textout(85,55,'Y');
  77. for i:=1 to n do
  78.  begin
  79.   str(x1[i]:0:2,st);
  80.   textout(15,55+20*i,st);
  81.   str(y1[i]:0:2,st);
  82.   textout(65,55+20*i,st);
  83.  end;
  84. end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

11   голосов , оценка 4.273 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы