Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 1

Перевод программы из Pascal в VBA

18.12.2017, 10:23. Показов 5315. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите перевести в vba
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
program Matrix20;
var
a:array [1..10,1..10] of real;
Mult:real;
i,j,M,N:integer;
begin
Write('N: ');
Readln(N);
Write('M: ');
Readln(M);
for i:=1 to M do
begin
writeln(i,': ');
for j:=1 to N do
begin
Write(j,' : ');
Read(a[i,j]);
end;
end;
For j:=1 to N do
begin
Mult:=1;
for i:=1 to M do Mult:=Mult*a[i,j];
Writeln(j,' Произведение :',Mult);
end;
end.

2
Кликните здесь для просмотра всего текста
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
program Matrix30;
var
a:array [1..10,1..10] of real;
Sum,Num:real;
M, N, i, j:Integer;
Sred:Real;
begin
Write('N: ');
Readln(N);
Write('M: ');
Readln(M);
for  i:=1 to M do
begin
writeln(i,': ');
for j:=1 to N do
begin
Write(j,' : ');
Read(a[i,j]);
end;
end;
for  j:=1 to N do
begin
Sum:=0;
for i:=1 to M do Sum:=Sum+a[i,j];
Sred:=Sum/N;
Num:=0;
for i:=1 to M do
if a[i,j]>Sred then Num:=Num+1;
Writeln(j,' Количество:',Num);
end;
end.

3
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Program prog;
var
n,i: integer;
s,st: string;
BEGIN
Write('Введите число: ');
Readln(n);
While n>0 do
begin
i:=n mod 10;
n:=n div 10;
Str(i,s);
st:=st+s;
end;
Writeln('Набор: ');
For i:=Length(st) downto 1 do
Write(st[i],' ');
END.

4
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program String30;
var
s, s0, f: string;
c: char;
i: integer;
begin
write('S = '); readln(s);
write('S0 = '); readln(s0);
write('C = '); readln(c);
for i := 1 to length(s) do
if s[i] = c then f := f + s0 + c
else f := f + s[i];
writeln(f);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2017, 10:23
Ответы с готовыми решениями:

Перевод программы с Pascal в VBA
Помогите, пожалуйста, перевести код Procedure Hord(A,B:Real; E:Real; var X, Fx:Real;n:integer); var X0,Fa,Fb:real; Begin if...

Перевод из Pascal в VBA
program Begin20; var x1,y1,x2,y2,L: Real; begin Writeln('Введите значение координат певой точки: '); Write('Введите...

Перевод с Pascal на VBA
Есть сложный код на паскале, нужно перевести на VBA, если это возможно: program interpol; uses crt; const n=10; type tab=array of...

4
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
18.12.2017, 12:39
Возможно программа 4
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub M4_String30()
 
Dim s As String, s0 As String, f As String
Dim C  As String
Dim I As Integer
 
s = InputBox("S = ", , "HJKLIU")
s0 = InputBox("S0 = ", , "--")
C = InputBox("C = ", , "K")
For I = 1 To Len(s)
If Mid(s, I, 1) = C Then
f = f & s0 & C
Else
f = f & Mid(s, I, 1)
End If
Next I
Debug.Print "F="; (f)
''F=HJ--KLIU
End Sub
0
13 / 12 / 1
Регистрация: 02.10.2017
Сообщений: 22
19.12.2017, 10:50
Очевидно, требуется консольное приложение. Первый вариант, насколько я понял, представляет собой задачу на задание массива 10х10, а потом нужно умножить каждое значение на значение в предыдущей строке и вывести на экран.
Если всё так, то первый вариант будет такой:
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
Module Module1
                          'Перевод программы из Pascal в VBA - VBA Вариант 1 Matrix20
    Sub Main()                      'консольное приложение
        Console.Clear()
 
        Dim a(10, 10) As Decimal  ' задаём массив 10 на 10 типа Decimal
                                               ' - наиболее близкий к типу Real  в Паскале
        Dim Mult As Single            ' для произведения задаём тип Single, чтобы не было переполнения.
        Dim i, j, M, N As Integer
 
        Console.Write("N: ")       ' Предлагаем ввести кол-во строк
        N = Console.ReadLine()  ' запоминаем кол-во строк в переменную N
 
 
        Console.Write("M: ")      'Предлагаем ввести кол-во столбцов
        M = Console.ReadLine() 'Запоминаем кол-во столбцов в переменную M
        Console.Write("")        ' Отступаем одну строчку
 
        For j = 1 To N             'цикл ввода элементов массива                
            For i = 1 To M
                Console.Write("a(" & i & "," & j & ")=")
                a(i, j) = Console.ReadLine()
            Next
        Next
 
        For j = 1 To N     ' цикл умножения и вывода результата умножения на экран.
            Mult = 1
            For i = 1 To M
                Mult = Mult * a(i, j)
                Console.WriteLine(j & " Произведение : " & Mult)
            Next
        Next
        Stop  ' остановка проги для оценки результатов
 
    End Sub
 
End Module
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.12.2017, 10:58
Цитата Сообщение от Сосна15 Посмотреть сообщение
VBA 'консольное приложение
Да Вы гений VBA!
0
13 / 12 / 1
Регистрация: 02.10.2017
Сообщений: 22
19.12.2017, 16:07
Ой, увлёкся..)) Было интересно что-то консольное сделать. Вспомнить школу...
Вот код в ВБА для Ворда (для того же варианта Matrix20)
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
Sub Matrix20()
 
    Dim a(10, 10) As Single
                             
        Dim Mult As Single
        Dim i, j, M, N As Integer
 
        N = InputBox("N: ", "Введите кол-во строк")        ' Задаём параметры массива
        M = InputBox("M: ", "Введите кол-во столбцов")  ' кол-во строки столбцов
        
            
        ActiveDocument.Range.Text = "Массив данных:" & vbCrLf & "          "   'Выводим заголовок массива
        
       pos1 = ActiveDocument.Paragraphs.Add.Range.Start        ' создаём параграф и задаём начало фрагмента для вставки
       
      Set myRange = ActiveDocument.Range(pos1, pos1 + 9)    ' задаём фрагмент для вставки
            
        For i = 1 To M                        ' задаём цикла для ввода и вывода
            For j = 1 To N                    ' на экран элементов массива построчно
               a(i, j) = InputBox("a(" & i & "," & j & ")=", "Введите элемент массива")
                
               myRange.Text = "a(" & i & "," & j & ")=" & a(i, j) & "  "
               myRange.SetRange Start:=myRange.Start + 11, End:=myRange.End
 
            Next
                myRange.Text = vbCrLf                                        'перенос на другую строку
                pos1 = ActiveDocument.Paragraphs.Add.Range.Start 'изменяем начало фрагмента вставки
                myRange.SetRange Start:=pos1, End:=myRange.End
        Next
 
                myRange.SetRange Start:=myRange.Start + 11, End:=myRange.End  'отступаем параграф для вывода 
                myRange.Text = vbCrLf                                    ' массива с произведениями
                pos1 = ActiveDocument.Paragraphs.Add.Range.Start
                
                For i = 1 To M   ' задаём цикл для вывода произведений
            Mult = 1                ' построчно
            For j = 1 To N
                
            myRange.SetRange Start:=myRange.Start + 24, End:=myRange.End
                Mult = Mult * a(i, j)
                myRange.Text = j & " Произведение : " & Mult & "  "
            Next
            myRange.SetRange Start:=myRange.Start + 24, End:=myRange.End
            myRange.Text = vbCrLf
            pos1 = ActiveDocument.Paragraphs.Add.Range.Start
        Next
 
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2017, 16:07
Помогаю со студенческими работами здесь

Перевод из Pascal в VBA
var s:string; p1,p2:byte; begin writeln('Введите строку, содержащую текст в фигурных скобках:'); readln(s); repeat ...

Перевод из Pascal в VBA
Этот код записан в Pascal, помогите его записать в VBA Var x,a,b,h:real; Begin write('Введите : ');readln(a,b); ...

Перевод программки с Pascal в VBA
Помогите пожалуйста перевести эту прогу в VBA const n=10; k=3; var a:array of integer; i:integer; P:LongInt; begin ...

Перевод из Pascal в VBA (написать макрос)
Здравствуйте. Я только знакомлюсь с языком VBA. Мне нужно написать макрос, который будет раскладывать заданное число N на простые...

Перевод программы из QBasic в VBA
Есть задачка (нахождение суммы ряда) на Qbasic нужно перевести на VBA. Вопрос при выводе в ячейки Excel на VBA получается не верный...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru