86 / 86 / 1
Регистрация: 15.11.2011
Сообщений: 192
1

Транслировать код Turbo Pascal на Visual Basic

24.05.2012, 17:07. Показов 971. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста реализуйте. Условия на фото.

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

Транслировать код Turbo Pascal на Visual Basic
необходимо перенести это на VB помогите пожалуйста... {$N+} {$E+} Uses Graph,crt; ...

Транслировать заданный код с языка Pascal в исходный код ассемблер
Транслировать заданный код с языка Pascal в исходный код ассемблерVar a:byte; b:byte; c:word;...

Транслировать код с Pascal
Позязьки, помогите с переводом в си небольшого кода - сам паскаль почти не знаю :( var ...

Транслировать программный код с Pascal
Помогите перевести с паскаля на c# var S,sNum: String; j,err,i,L,Num: LongInt; function...

5
es geht mir gut
11265 / 4747 / 1183
Регистрация: 27.07.2011
Сообщений: 11,438
24.05.2012, 22:21 2
Функции не проверял, просто тупо перевёл.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
'{ настройки графика}
Const shag = 0.00013 ';{ <-- Шаг изменения X }
Const lgr = 0  ';{ <-- Начальное значение X}
Const pgr = 3.14  ';{ <-- Конечное значение X }
Private Sub Form_Click()
Dim x As Double, Y As Double, i As Single
Dim plusX As Integer, plusY As Integer, minusX As Integer, minusY As Integer
   Me.Show
  plusX = 5: plusY = 5: minusX = -2: minusY = -2
  DrawStyle = 0: WindowState = 2: FillStyle = 0
   Cls
   Scale (minusX, plusY)-(plusX, minusY)
   Line (minusX, 0)-(plusX, 0), vbBlue  'ocb X
   Line (0, minusY)-(0, plusY), vbBlue   'ocb Y
   
   For x = lgr To pgr Step shag
'''''''''''''''''''''''''''''''''''''''''''''
          
         Y = F(x)
          
'''''''''''''''''''''''''''''''''''''''''''''
          Circle (x, Y), 0.003, RGB(255, 0, 0)
   Next x
  
   Form1.DrawStyle = 2   ' Пунктирная линия
   For i = minusY To plusY Step 0.5
          Form1.CurrentX = 0    ' оцифровка
          Form1.CurrentY = i
          Print i
          Line (-0.05, i)-(0.05, i)   ' засечка
          Line (minusX, i)-(plusX, i)
   Next i
 
   For i = minusX To plusX Step 0.5
          Form1.CurrentX = i    ' оцифровка
          Form1.CurrentY = 0
          Print i
          Line (i, minusY)-(i, plusY) ' засечка
          Line (i, -0.05)-(i, 0.05)
   Next i
   Form1.CurrentY = 1.8: Form1.CurrentX = 1
   '{вычисляем интеграл и выводим на экран результат}
   Print "Rezultat rascheta integrala po metodu trapecyj = "; IntegralTrap(0, 3.14 / 2, 0.001)
  End Sub
  Private Sub Form_Load()
          Form_Click
  End Sub
Function F(x As Double) As Double
  F = x * x * Sin(x) * Sin(x) * Sin(x)
End Function
 
Function IntegralTrap(a As Double, b As Double, Epsilon As Double) As Double
 Dim i, n As Integer
 Dim h, s1, s2 As Double
  n = 1
  h = b - a
  s2 = h * (F(a) + F(b)) / 2
  Do
    s1 = s2
    s2 = 0
    i = 1
    Do
      s2 = s2 + F(a - h / 2 + h * i)
      i = i + 1
   Loop Until Not (i <= n)
    s2 = s1 / 2 + s2 * h / 2
    n = 2 * n
    h = h / 2
 Loop Until Not (Abs(s2 - s1) > 3 * Epsilon)
  IntegralTrap = s2
 
End Function
1
86 / 86 / 1
Регистрация: 15.11.2011
Сообщений: 192
24.05.2012, 23:05  [ТС] 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Uses Graph,crt;
 
function F(x: double): double;
begin
 F := x * x * sin(x)* sin(x)* sin(x);
end;
 
function IntegralTrap(const a, b, Epsilon: double): double;
var
 i, n: Integer;
 h, s1, s2: Double;
begin
 n := 1;
 h := b-a;
 s2 := h*(F(a)+F(b))/2;
 repeat
 s1 := s2;
 s2 := 0;
 i := 1;
 repeat
 s2 := s2+F(a-h/2+h*i);
 i := i+1;
 until not (i <= n);
 s2 := s1/2 + s2*h/2;
 n := 2*n;
 h := h/2;
 until not (Abs(s2-s1) > 3*Epsilon);
 IntegralTrap := s2;
end;
 
const
 { настройки графика}
 shag=0.0001;{ <-- Шаг изменения X }
 lgr = 0;{ <-- Начальное значение X}
 pgr = 3.14;{ <-- Конечное значение X }
 zcrtX=320;{ <-- Координата X центра экрана }
 zcrty=240;{ <-- Координата Y центра экрана }
 mtrX=50;{ <-- Коэффициент масштабирования по оси X }
 mtrY=50;{ <-- Коэффициент масштабирования по оси Y }
 
Var grDriver : Integer;
 grMode : Integer;
 
 x,y:Double;
 i:integer;
 
nx,ny:integer;
 mx,my:real;
 resultat,s:string;
Begin
{вычисляем интеграл и записываем результат в строковую переменную}
Str(IntegralTrap(0, 3.14 / 2, 0.001):2:3, resultat);
 
{инициализация графики}
 
 grDriver:=0;
 InitGraph(grDriver, grMode, '');
 
setfillstyle(1,15);
bar(0,0,getmaxX,getmaxY);
 
{рисуем оси}
setcolor(0);
setlinestyle(0,0,3);
 
{ось x}
line(10,242,getmaxX-20,242);
line(610,237,getmaxX-20,242);
line(610,247,getmaxX-20,242);
outtextXY(getmaxX-20,250,'X');
 
{ось y}
line(320,30,320,getmaxy-10);
line(320,30,315,40);
line(320,30,325,40);
outtextXY(305,30,'Y');
 
{выводим результат}
OutTextXY(10, 10, 'Rezultat rascheta integrala po metodu trapecyj:');
OutTextXY(10, 20, resultat);
 
{строим график}
 x:=lgr;
 while x<=pgr do
 begin
 y:=F(x);
 putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),0);
 x:=x+shag;
 end;
 
{выводим формулу}
OutTextXY(zcrtx+trunc(x*mtrX)-120 ,zcrty-trunc(y*mtrY)-170, 'F := x * x * sin(x)* sin(x)* sin(x)');
 
 readkey;
 closegraph;
end.
тут есть кое какое изменени, которое выводит на экран с графиком ещё и интеграл. Дополните пожалуйста на вб этот момент.
1
es geht mir gut
11265 / 4747 / 1183
Регистрация: 27.07.2011
Сообщений: 11,438
24.05.2012, 23:11 4
Не знаю я
Миниатюры
Транслировать код Turbo Pascal на Visual Basic  
1
86 / 86 / 1
Регистрация: 15.11.2011
Сообщений: 192
24.05.2012, 23:17  [ТС] 5
неее, вот кароче я измел пост свой выше, и там дополнено то что не только решение интеграла выводит но и формулу
И нельзя ли сместить результат вычисления за линию графика.
1
es geht mir gut
11265 / 4747 / 1183
Регистрация: 27.07.2011
Сообщений: 11,438
24.05.2012, 23:33 6
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
'{ настройки графика}
Const shag = 0.00013 ';{ <-- Шаг изменения X }
Const lgr = 0  ';{ <-- Начальное значение X}
Const pgr = 3.14  ';{ <-- Конечное значение X }
Private Sub Form_Click()
Dim x As Double, Y As Double, i As Single
Dim plusX As Integer, plusY As Integer, minusX As Integer, minusY As Integer
   Me.Show
   plusX = 5: plusY = 5: minusX = -2: minusY = -2
   DrawStyle = 0: WindowState = 2: FillStyle = 0
   Cls
   Scale (minusX, plusY)-(plusX, minusY)
   Line (minusX, 0)-(plusX, 0), vbBlue  'ocb X
   Line (0, minusY)-(0, plusY), vbBlue   'ocb Y
   
   For x = lgr To pgr Step shag
'''''''''''''''''''''''''''''''''''''''''''''
          
         Y = F(x)
          
'''''''''''''''''''''''''''''''''''''''''''''
          Circle (x, Y), 0.003, RGB(255, 0, 0)
   Next x
  
   Form1.DrawStyle = 2   ' Пунктирная линия
   For i = minusY To plusY Step 0.5
          Form1.CurrentX = 0    ' оцифровка
          Form1.CurrentY = i
          Print i
          Line (-0.05, i)-(0.05, i)   ' засечка
           Line (minusX, i - 1)-(plusX, i - 1)
   Next i
 
   For i = minusX To plusX Step 0.5
          Form1.CurrentX = i    ' оцифровка
          Form1.CurrentY = 0
          Print i
          Line (i, minusY)-(i, plusY - 1) ' засечка
          Line (i, -0.05)-(i, 0.05)
   Next i
   Form1.CurrentY = 4.7: Form1.CurrentX = 1 ' Координаты надписи
   '{вычисляем интеграл и выводим на экран результат}
   Print "Rezultat rascheta integrala po metodu trapecyj = "; IntegralTrap(0, 3.14 / 2, 0.001)
   Print
   Form1.CurrentY = 4.5: Form1.CurrentX = 1
   Print "F = x * x * Sin(x) * Sin(x) * Sin(x)"
  End Sub
  Private Sub Form_Load()
          Form_Click
  End Sub
Function F(x As Double) As Double
  F = x * x * Sin(x) * Sin(x) * Sin(x)
End Function
 
Function IntegralTrap(a As Double, b As Double, Epsilon As Double) As Double
 Dim i, n As Integer
 Dim h, s1, s2 As Double
  n = 1
  h = b - a
  s2 = h * (F(a) + F(b)) / 2
  Do
    s1 = s2
    s2 = 0
    i = 1
    Do
      s2 = s2 + F(a - h / 2 + h * i)
      i = i + 1
   Loop Until Not (i <= n)
    s2 = s1 / 2 + s2 * h / 2
    n = 2 * n
    h = h / 2
 Loop Until Not (Abs(s2 - s1) > 3 * Epsilon)
  IntegralTrap = s2
 
End Function
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2012, 23:33
Помогаю со студенческими работами здесь

Перевести программу на Basic в Turbo Pascal
С книжки дьяконова Есть код на Basic нужно перевсти его в турбо паскаль, очень нужна помощь, или...

Нужно перевести код из Turbo Pascal в Pascal ABC.NET
Доброго времени суток. На форуме находил похожие темы, но к сожалению так и не смог разобраться....

Нужно перевести код с Pascal ABC на Turbo Pascal - рисование работающей мельницы
Вот код, он должен рисовать работающею мельницу. uses graphABC,crt; type point=record ...

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net?
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru