Транслировать код Turbo Pascal на Visual Basic - VB (171141)

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

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

Пожалуйста реализуйте. Условия на фото.
Листинг программы
  1. Uses Graph,crt;
  2. function F(x: double): double;
  3. begin
  4. F := x * x * sin(x)* sin(x)* sin(x);
  5. end;
  6. function IntegralTrap(const a, b, Epsilon: double): double;
  7. var
  8. i, n: Integer;
  9. h, s1, s2: Double;
  10. begin
  11. n := 1;
  12. h := b-a;
  13. s2 := h*(F(a)+F(b))/2;
  14. repeat
  15. s1 := s2;
  16. s2 := 0;
  17. i := 1;
  18. repeat
  19. s2 := s2+F(a-h/2+h*i);
  20. i := i+1;
  21. until not (i <= n);
  22. s2 := s1/2 + s2*h/2;
  23. n := 2*n;
  24. h := h/2;
  25. until not (Abs(s2-s1) > 3*Epsilon);
  26. IntegralTrap := s2;
  27. end;
  28. const
  29. { настройки графика}
  30. shag=0.0001;{ <-- Шаг изменения X }
  31. lgr = 0;{ <-- Начальное значение X}
  32. pgr = 3.14;{ <-- Конечное значение X }
  33. zcrtX=320;{ <-- Координата X центра экрана }
  34. zcrty=240;{ <-- Координата Y центра экрана }
  35. mtrX=50;{ <-- Коэффициент масштабирования по оси X }
  36. mtrY=50;{ <-- Коэффициент масштабирования по оси Y }
  37. Var grDriver : Integer;
  38. grMode : Integer;
  39. x,y:Double;
  40. i:integer;
  41. nx,ny:integer;
  42. mx,my:real;
  43. s:string;
  44. Begin
  45. {вычисляем интеграл и выводим на экран результат}
  46. writeln('Rezultat rascheta integrala po metodu trapecyj = ', IntegralTrap(0, 3.14 / 2, 0.001):3:4);
  47. writeln('Nazhmite ljubuju klavishu dlja vyvoda grafika..');
  48. readkey;
  49. {инициализация графики}
  50. grDriver:=0;
  51. InitGraph(grDriver, grMode, '');
  52. setfillstyle(1,15);
  53. bar(0,0,getmaxX,getmaxY);
  54. {рисуем оси}
  55. setcolor(0);
  56. setlinestyle(0,0,3);
  57. {ось x}
  58. line(10,242,getmaxX-20,242);
  59. line(610,237,getmaxX-20,242);
  60. line(610,247,getmaxX-20,242);
  61. outtextXY(getmaxX-20,250,'X');
  62. {ось y}
  63. line(320,10,320,getmaxy-10);
  64. line(320,10,315,20);
  65. line(320,10,325,20);
  66. outtextXY(305,10,'Y');
  67. {строим график}
  68. x:=lgr;
  69. while x<=pgr do
  70. begin
  71. y:=F(x);
  72. putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),0);
  73. x:=x+shag;
  74. end;
  75. readkey;
  76. closegraph;
  77. end.

Решение задачи: «Транслировать код Turbo Pascal на Visual Basic»

textual
Листинг программы
  1. '{ настройки графика}
  2. Const shag = 0.00013 ';{ <-- Шаг изменения X }
  3. Const lgr = 0  ';{ <-- Начальное значение X}
  4. Const pgr = 3.14  ';{ <-- Конечное значение X }
  5. Private Sub Form_Click()
  6. Dim x As Double, Y As Double, i As Single
  7. Dim plusX As Integer, plusY As Integer, minusX As Integer, minusY As Integer
  8.    Me.Show
  9.    plusX = 5: plusY = 5: minusX = -2: minusY = -2
  10.    DrawStyle = 0: WindowState = 2: FillStyle = 0
  11.    Cls
  12.    Scale (minusX, plusY)-(plusX, minusY)
  13.    Line (minusX, 0)-(plusX, 0), vbBlue  'ocb X
  14.   Line (0, minusY)-(0, plusY), vbBlue   'ocb Y
  15.  
  16.    For x = lgr To pgr Step shag
  17. '''''''''''''''''''''''''''''''''''''''''''''
  18.          
  19.          Y = F(x)
  20.          
  21. '''''''''''''''''''''''''''''''''''''''''''''
  22.          Circle (x, Y), 0.003, RGB(255, 0, 0)
  23.    Next x
  24.  
  25.    Form1.DrawStyle = 2   ' Пунктирная линия
  26.   For i = minusY To plusY Step 0.5
  27.           Form1.CurrentX = 0    ' оцифровка
  28.          Form1.CurrentY = i
  29.           Print i
  30.           Line (-0.05, i)-(0.05, i)   ' засечка
  31.           Line (minusX, i - 1)-(plusX, i - 1)
  32.    Next i
  33.  
  34.    For i = minusX To plusX Step 0.5
  35.           Form1.CurrentX = i    ' оцифровка
  36.          Form1.CurrentY = 0
  37.           Print i
  38.           Line (i, minusY)-(i, plusY - 1) ' засечка
  39.          Line (i, -0.05)-(i, 0.05)
  40.    Next i
  41.    Form1.CurrentY = 4.7: Form1.CurrentX = 1 ' Координаты надписи
  42.   '{вычисляем интеграл и выводим на экран результат}
  43.   Print "Rezultat rascheta integrala po metodu trapecyj = "; IntegralTrap(0, 3.14 / 2, 0.001)
  44.    Print
  45.    Form1.CurrentY = 4.5: Form1.CurrentX = 1
  46.    Print "F = x * x * Sin(x) * Sin(x) * Sin(x)"
  47.   End Sub
  48.   Private Sub Form_Load()
  49.           Form_Click
  50.   End Sub
  51. Function F(x As Double) As Double
  52.   F = x * x * Sin(x) * Sin(x) * Sin(x)
  53. End Function
  54.  
  55. Function IntegralTrap(a As Double, b As Double, Epsilon As Double) As Double
  56.  Dim i, n As Integer
  57.  Dim h, s1, s2 As Double
  58.   n = 1
  59.   h = b - a
  60.   s2 = h * (F(a) + F(b)) / 2
  61.   Do
  62.     s1 = s2
  63.     s2 = 0
  64.     i = 1
  65.     Do
  66.       s2 = s2 + F(a - h / 2 + h * i)
  67.       i = i + 1
  68.    Loop Until Not (i <= n)
  69.     s2 = s1 / 2 + s2 * h / 2
  70.     n = 2 * n
  71.     h = h / 2
  72.  Loop Until Not (Abs(s2 - s1) > 3 * Epsilon)
  73.   IntegralTrap = s2
  74.  
  75. End Function

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


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

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

14   голосов , оценка 4.5 из 5

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

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

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