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

Вывод массива в строку

09.03.2013, 21:23. Показов 9013. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, помогите пожалуйста дописать код.
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
Option Base 1
Const n = 40
Sub Zadanie2()
Dim X(n) As Double 
Dim Y(n) As Double
Dim maxX As Double, maxY As Double 
Dim str_a, str_b
For i = 1 To 40 
X(i) = Int(Rnd * 100) 
Y(i) = Int(Rnd * 100) 
MsgBox "Массив X"
MsgBox "Массив Y"
Next i 
maxX = X(1): maxY = Y(1)
maxX = max(X)
maxY = max(Y)
MsgBox "Max(X)+Max(Y) = " & maxX + maxY 
End Sub
 
Function max(arr() As Double) As Double
max = arr(1)
For i = 1 To n
If arr(i) > max Then max = arr(i)
Next i
End Function
Нужно чтобы MsgBox выводило эти два массива случайных чисел на экран в строку по 40 значений в массиве. А то получается только 80 окон выскакивает, бред(
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2013, 21:23
Ответы с готовыми решениями:

Вывод по последнюю строку
Всем привет. Скажите как сделать, чтобы вывод осуществлялся по последнюю строчку. Имеется ввиду, что список будет пополняться, а вывод идет...

Вывод в строку не значения, а формулы
Есть такой код который ищет и складывает все значения затрат на "ГСМ" в столбце, однако нужно чтобы он выдавал в строку не результат, а...

Вывод в каждую строку среднего значения
Добрый вечер! по заданию я составил для кнопки "расчет" событие расчета среднего бала 5-ти экзаменов . выбрал вывод результата второй...

11
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
09.03.2013, 21:42
Попробуй так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Zadanie2()
    Dim X(n) As Double
    Dim Y(n) As Double
    Dim maxX As Double, maxY As Double
    Dim str_x$, str_y$
    For i = 1 To 40
        X(i) = Int(Rnd * 100)
        Y(i) = Int(Rnd * 100)
        str_x = str_x & IIf(i = 1, "", "; ") & X(i)
        str_y = str_y & IIf(i = 1, "", "; ") & Y(i)
    Next i
    MsgBox "Ìàññèâ X: " & str_x & vbCrLf & vbCrLf & _
            "Ìàññèâ Y: " & str_y
    maxX = X(1): maxY = Y(1)
    maxX = max(X)
    maxY = max(Y)
    MsgBox "Max(X)+Max(Y) = " & maxX + maxY
End Sub
0
119 / 1 / 0
Регистрация: 06.06.2011
Сообщений: 16
09.03.2013, 21:49  [ТС]
Все равно много окон выскакивает, не получается.
0
 Аватар для Watcher_1
357 / 163 / 27
Регистрация: 21.06.2011
Сообщений: 350
09.03.2013, 21:54
Цитата Сообщение от Razuvan Посмотреть сообщение
Все равно много окон выскакивает, не получается.
Как это много окон? Из примера toiai всего 2 MSGBOXа должно появиться!
1
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
09.03.2013, 21:55
Два окна это много, выведи в одно, убрал лишнее.
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
Sub Zadanie2()
    Dim X(n) As Double
    Dim Y(n) As Double
    Dim maxX As Double, maxY As Double
    Dim str_x$, str_y$
    For i = 1 To 40
        X(i) = Int(Rnd * 100)
        Y(i) = Int(Rnd * 100)
        str_x = str_x & IIf(i = 1, "", "; ") & X(i)
        str_y = str_y & IIf(i = 1, "", "; ") & Y(i)
    Next i
    'maxX = X(1): maxY = Y(1)
    maxX = max(X)
    maxY = max(Y)
    MsgBox "Ìàññèâ X: " & str_x & vbCrLf & vbCrLf & _
            "Ìàññèâ Y: " & str_y & vbCrLf & vbCrLf & _
            "Max(X)+Max(Y) = " & maxX + maxY
End Sub
Function max(arr() As Double) As Double
    For i = 1 To n
        If arr(i) > max Then max = arr(i)
    Next i
End Function
0
119 / 1 / 0
Регистрация: 06.06.2011
Сообщений: 16
10.03.2013, 01:07  [ТС]
Вот промежуточные фото того, что у меня получается!



Много раз приходится нажимать ок, для того чтобы оно заполнило всё(

Добавлено через 2 минуты
Цитата Сообщение от Watcher_1 Посмотреть сообщение
Как это много окон? Из примера toiai всего 2 MSGBOXа должно появиться!
У меня не получается два почему-то?!
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
10.03.2013, 01:19
Цитата Сообщение от Razuvan Посмотреть сообщение
У меня не получается два почему-то?!
может, пора файл приложить?
может, с этого даже начинать стоило?
или вам просто пообщаться хоцца?
0
119 / 1 / 0
Регистрация: 06.06.2011
Сообщений: 16
10.03.2013, 01:32  [ТС]
Цитата Сообщение от ikki Посмотреть сообщение
может, пора файл приложить?
может, с этого даже начинать стоило?
или вам просто пообщаться хоцца?
Вот он файл. Пообщаться не против)
Вложения
Тип файла: xls Книга1.xls (36.0 Кб, 20 просмотров)
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
10.03.2013, 01:54
я стесняюсь спросить: вы зачем MsgBox засунули внутрь цикла?
перетащите его после Next i - и будет вам счастье.
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
10.03.2013, 03:07
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от Razuvan Посмотреть сообщение
Вот он файл. Пообщаться не против...
Вот он код. Как говорится, найдите 20 отличий (и хотя бы 5 из них — в сторону улучшения):
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
Option Explicit
Const N = 5
 
Sub Zadanie2()
'объявление переменных
Dim i As Long 'счётчик цикла
Dim x(1 To N) 'массив x (из N элементов типа Variant - что позволяет использовать Join)
Dim y(1 To N) 'массив y (из N элементов типа Variant)
Dim maxX As Double, maxY As Double 'наибольшие числа из массивов x и y соответственно
 
'присвоение значений
For i = 1 To N
    x(i) = Int(Rnd * 100) 'эл-т x(i) получает значение целого числа из диапазона [0;99]
    y(i) = Int(Rnd * 100) 'эл-т y(i) получает значение целого числа из диапазона [0;99]
Next
 
'расчёты
maxX = Application.WorksheetFunction.Max(x) 'используем встроенную в Excel функцию Max
maxY = Application.WorksheetFunction.Max(y)
 
'вывод
    If MsgBox(Join(x, "; ") & " (иксы)" & vbCr & Join(y, "; ") & " (игреки)" & vbCr & _
    vbCr & "Max(x) + Max(y) = " & maxX + maxY, vbInformation + vbOKCancel) = vbOK Then
            'сумма двух наибольших чисел среди x и y
        Zadanie2 'повторное испытание
    Else
        Exit Sub
    End If
End Sub
2
119 / 1 / 0
Регистрация: 06.06.2011
Сообщений: 16
10.03.2013, 11:10  [ТС]
Спасибо большое, то что надо!
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
28.12.2014, 12:32
Упс! Вот он какой, "лучший ответ". Возьмём на вооружение!!!
Миниатюры
Вывод массива в строку  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2014, 12:32
Помогаю со студенческими работами здесь

Вывод данных через одну строку
Здравствуйте! В программировании не селен, в vba недавно начал разбираться. Никак не сооброжу как вывести данные их массива через одну...

Вывод массива в строку
1. Ввод массива целых чисел. 2. Вывод массива в строку. 3. Найти минимальный элемент среди положительных элементов массива. Заменить...

Вывод из массива в строку
В первом цикле создаю уникальное название фильма, во втором вывожу данные из БД. Название, которое выводится только 1 раз, из-за первого...

Вывод массива в строку
1. Ввод массива целых чисел. 2. Вывод массива в строку. 3. Вычисление среднего арифметического значения элементов массива и замена...

Вывод элементов массива в строку
Привет. Помогите, пожалуйста... Есть код программы, она выводит элементы массива в столбец, подправьте,чтобы элементы массива выводились...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru