NEWTON.PAS 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. Uses CRT,GRAPH;
  2. Const
  3. Eps = 0.01;
  4. Del = 6000;
  5. LeftGr = -100;
  6. RightGr = 100;
  7. Procedure InitG;
  8. Var
  9. grDriver: Integer;
  10. grMode: Integer;
  11. i : integer;
  12. Begin
  13. grDriver := Detect;
  14. InitGraph(grDriver, grMode,'');
  15. SetFillStyle(XHatchFill,Green);
  16. Bar(0,0,GetMaxX,GetMaxY);
  17. SetFillStyle(SolidFill,Black);
  18. Bar(100,50,540,450);
  19. SetColor(Red);
  20. Line(100,250,540,250);
  21. End;{InitG}
  22. {--------------------------------}
  23. Function Func(x: real): real;
  24. Var
  25. ret: real;
  26. Begin
  27. ret := 30*(sin(45*x*pi/180))*cos(12*pi*x/180);
  28. Func := ret;
  29. End;
  30. {-----------------------------}
  31. Procedure WriteGraph(l,r,Color:Integer);
  32. Var
  33. x,y,Razm : Integer;
  34. Begin
  35. Razm := r-l;
  36. SetColor(Color);
  37. MoveTo(100,250-Round(Func(l)));
  38. for x := L to R do
  39. begin
  40. y := round(Func(x));
  41. LineTo(round(100+(x-l)*((440)/razm)),250-y);
  42. end;
  43. End;{WriteGraph}
  44. {---------------------------------}
  45. Function AddX(x : real):integer;
  46. Begin
  47. AddX :=round(100+(x-leftGR)*((440)/(RightGr-LeftGr)));
  48. End;
  49. {-----------------}
  50. Procedure Calculate;
  51. Var
  52. R,L,dx,lx,b,k,x : real;
  53. str1 : string;
  54. Begin
  55. R := RightGr;
  56. L := LeftGr;
  57. WriteGraph(round(L),round(R),Blue);
  58. x := r;
  59. { repeat
  60. setcolor(green);
  61. until dx < Eps;}
  62. setcolor(yellow);
  63. circle(addx(x),250,5);
  64. SetColor(Magenta);
  65. SetTextJustify(LeftText,Centertext);
  66. SetTextStyle(DefaultFont,HorizDir,4);
  67. OutTextXY(250,20,'Done');
  68. str(x:1:6,str1);
  69. SetTextStyle(Defaultfont,HorizDir,3);
  70. insert('X = ',str1,1);
  71. OutTextXY(150,440,str1);
  72. End;
  73. {------------------}
  74. Begin
  75. InitG;
  76. Calculate;
  77. ReadKey;
  78. CloseGraph;
  79. End.