Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Vladisis
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 203

Перевести код из Pascal в VBA

01.05.2012, 15:47. Показов 2442. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно вот надо чтобы работало в вба :
Приложение 1
Листинг программы:
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
{Методом покоординатного спуска найти точки локального минимума функции Химмельблау f(x)=(x1*x1+x2-11)*(x1*x1+x2-11)+(x1+x2*x2-7)*(x1+x2*x2-7) с точностью e=0.01}
 
program spusk;
uses crt;
const n=2; k=2;
type vector=array[1..n] of real;
var i:integer;
d,e,e1,h,h1,z:real;
x:vector; ch:char;
procedure pausa;
begin
writeln;
writeln ('Для выхода нажмите любую клавишу…');
repeat ch:=readkey until ch <> '';
end;
function f(x:vector):real;
var a,b:real;
begin a:=x[1]*x[1]+x[2]-11;
b:=x[1]+x[2]*x[2]-7;
f:=a*a+b*b;
end;
procedure scan (i:integer);
var a:boolean;
d1,z1:real;
begin z:=f(x);
repeat d1:=abs(h1); x[i]:=x[i]+h1; z1:=f(x); a:=(z1>=z);
if a then h1:=-h1/k;
z:=z1;
until a and (d1<e1);
end;
begin
clrscr;
writeln ('Введите координаты начального вектора (x1,x2):');
for i:=1 to n do read (x[i]);
writeln ('Задайте точность нахождения точки min f(x):');
read (e);
h:=0.2; e1:=e/k;
repeat d:=abs(h);
for i:=1 to n do
begin
h1:=h; scan (i);
end;
h:=h/k;
until d<e;
writeln ('Точка минимума: x1=',x[1]:9:6,' ','x2=',x[2]:9:6);
writeln ('Погрешность:',e:9:6);
pausa;
end.
Приложение 2
Результат работы программы:
Введите координаты начального вектора (x1,x2):
1
2
Задайте точность нахождения точки min f(x):
0.01
Точка минимума: x1= 2.996875 x2= 2.000000
Погрешность: 0.010000
Для выхода нажмите любую клавишу.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.05.2012, 15:47
Ответы с готовыми решениями:

Перевести код из Pascal в VBA
Код Pascal var n,i : word; a,sigma,min,max : real; begin max:=0; min:=100; {если оценки от 0 до 100} read(n); for i:=1...

Перевести код с Pascal на VBA
Var x: Shortint; BEGIN Writeln('Введите (-1),(0) или (1): '); Readln(x); If x=-1 Then Writeln('Смерть найдешь') Else If x=0...

Нужно перевести код с Pascal в Vba
Решил в паскале, а с vba вообще не знаком ,нужна помощь срочно. Вот код- program String16; var i:integer; S:string; ...

4
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
01.05.2012, 16:27
как то так
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
Dim n%, k%
Dim i  As Integer
Dim d!, e!, e1!, h!, h1!, z!
Dim x!()
Private Sub Command1_Click()
'Методом покоординатного спуска найти точки локального минимума функции Химмельблау f(x)=(x1*x1+x2-11)*(x1*x1+x2-11)+(x1+x2*x2-7)*(x1+x2*x2-7) с точностью e=0.01}
Cls
n = 2: k = 2
ReDim x!(n)
For i = 1 To n
x(i) = Val(Replace(InputBox("Введите координаты начального вектора (x1,x2):"), ",", "."))
Next
e = Val(Replace(InputBox("Задайте точность нахождения точки min f(x):"), ",", "."))
If e <= 0 Then
MsgBox "Error"
Exit Sub
End If
 
h = 0.2: e1 = e / k
Do
d = Abs(h)
For i = 1 To n
h1 = h
scan i
Next
h = h / k
Loop Until d < e
Print "Точка минимума:"
Print , "x1="; x(1)
Print , "x2="; x(2)
Print " Погрешность:  "; e
 
End Sub
Function f!(x!())
Dim a!, b!
  a = x(1) * x(1) + x(2) - 11
b = x(1) + x(2) * x(2) - 7
f = a * a + b * b
End Function
 
Sub scan(i%)
Dim a As Boolean
Dim d1!, z1!
  z = f(x)
Do
d1 = Abs(h1): x(i) = x(i) + h1: z1 = f(x): a = (z1 >= z)
If a Then h1 = -h1 / k
z = z1
Loop Until a And (d1 < e1)
End Sub
1
 Аватар для Vladisis
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 203
01.05.2012, 17:07  [ТС]
спасибо, но что-то не совсем работает..
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
01.05.2012, 17:12
Цитата Сообщение от Vladisis Посмотреть сообщение
но что-то не совсем работает..
что именно
0
 Аватар для Vladisis
5 / 5 / 0
Регистрация: 01.05.2012
Сообщений: 203
01.05.2012, 17:29  [ТС]
Цитата Сообщение от gaw Посмотреть сообщение
что именно
нет всё нормально, просто программа которую я скидывал не совсем мне подходит, я сейчас допёр, а
вы всё правильно перевели.

Добавлено через 5 минут
gaw, можете помочь?
вот непосредственно задача: Нужно найти точки экстремума функции Химмельблау Ф(x1,x2)=(x1^2+x2-11)^2+(x1+x2^2-7)^2 и построить график линий равных уровней функции f(x,y) всё в VBA.

Насколько это проблематично сделать? хотя бы первую часть задания?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.05.2012, 17:29
Помогаю со студенческими работами здесь

Перевести из Pascal в VBA
Перевести uses crt; var n,k,s,p,m,i:longint; begin clrscr; repeat write('Введите натуральное число n='); readln(n); ...

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

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

Перевести в код Pascal ABC из кода Pascal Delphi
procedure TForm1.Button1Click(Sender: TObject); const n=8; var x:array of real; y,z:array of real; i,j:byte; begin ...

Нужно перевести код из Turbo Pascal в Pascal ABC
Program n5; { Задача. Описать функцию less(f) от непустого файла f типа reals, type = file of...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru