Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2019, 12:12   #1
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию Сформировать матрицу и найти наибольшее среди средних арифметических элементов ее строк. VBA

Здравствуйте. Нужна помощь. Никак не могу решить задачу
Код:
Option Explicit On
Option Base 1
Sub массив()
    Dim mass() As Integer, i As Integer, j As Integer, n As Integer, str As String, max As Single, t As Integer, x As Single

n = InputBox(("Введите порядок матрицы", "Определение массива")
ReDim mass(1 To n, 1 To n) As Integer
    Randomize()
    For i = 1 To n
        For j = 1 To n
            mass(i, j) = Int(10 * Rnd + 1)
            str = str & mass(i, j) & "   "
        Next j
        str = str & Chr(13)
    Next i
    For j = 1 To n
        max = mass(1, j)
    Next j
    For i = 1 To n
        t = 0
    Next i
    For j = 1 To n
        t = max + mass(1, j)
        If t > max Then max = t
    Next j
    x = t / n
    If x > max Then max = x
End Sub

Последний раз редактировалось SkyGir; 24.05.2019 в 14:20.
SkyGir вне форума Ответить с цитированием
Старый 24.05.2019, 12:58   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Option Explicit
Option Base 1
Sub массив()
    Dim mass() As Integer, i As Integer, j As Integer, n As Integer, maxAvg As Single, t  As Integer
    n = InputBox("Введите порядок матрицы", "Определение массива")
    ReDim mass(1 To n, 1 To n) As Integer
    Randomize
    maxAvg = 0
    For i = 1 To n
        t = 0
        For j = 1 To n
            mass(i, j) = Int(10 * Rnd + 1)
            t = t + mass(i, j)
        Next j
        If i = 1 Then
            maxAvg = t / n
        Else
            If t / n > maxAvg Then maxAvg = t / n
        End If
    Next i
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 24.05.2019, 13:16   #3
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

Спасибо огромное. Теперь это надо вывести на экран. Маленько изменил и все заработало. Прям человеческое спасибо!
Код:
Option Explicit
Option Base 1
Sub Массив()
    Dim mass() As Integer, i As Integer, j As Integer, n As Integer, maxAvg As Single, t  As Integer, str As String
    n = InputBox(""Введите порядок матрицы", "Определение массива"")
    ReDim mass(1 To n, 1 To n) As Integer
    Randomize
    maxAvg = 0
    For i = 1 To n
For j = 1 To n
mass(i, j) = Int(10 * Rnd + 1)
str = str & mass(i, j) & "   "
Next j
str = str & Chr(13)
Next i
    For i = 1 To n
        t = 0
        For j = 1 To n
             t = t + mass(i, j)
        Next j
        If i = 1 Then
            maxAvg = t / n
        Else
            If t / n > maxAvg Then maxAvg = t / n
        End If
    Next i
    MsgBox "Массив: " & str & Chr(13) & "Наибольшее среди средних арифметических элементов ее строк = " & maxAvg
End Sub
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 24.05.2019 в 13:47.
SkyGir вне форума Ответить с цитированием
Старый 24.05.2019, 13:38   #4
SkyGir
Пользователь
 
Регистрация: 24.05.2019
Сообщений: 31
По умолчанию

А вот если такую же операцию надо провернуть со столбцами массива, то как быть? Все разобрался:
Код:
Option Explicit On
Option Base 1
Sub Массив()
    Dim mass() As Integer, i As Integer, j As Integer, n As Integer, minAvg As Single, t As Integer, str As String
    n = InputBox("Введите количество элементов массива", "Определение размера массива")
ReDim mass(1 To n, 1 To n) As Integer
    Randomize()
    minAvg = 0
    For i = 1 To n
        For j = 1 To n
            mass(i, j) = Int(10 * Rnd + 1)
            str = str & mass(i, j) & "   "
        Next j
        str = str & Chr(13)
    Next i
    For j = 1 To n
        t = 0
        For i = 1 To n
            t = t + mass(i, j)
        Next i
        If j = 1 Then
            minAvg = t / n
        Else
            If t / n < minAvg Then minAvg = t / n
        End If
    Next j
    MsgBox("Массив: " & str & Chr(13) & "Наименьшее среди средних арифметических элементов столбцов = " & minAvg)
End Sub

Последний раз редактировалось SkyGir; 24.05.2019 в 14:18.
SkyGir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать из строк В матрицу С, расположив их так, чтобы количество положительных элементов в строке возрастало с увеличением порядкового номера строки; в матрице C найти Delacroix Помощь студентам 2 07.04.2018 13:10
Сформировать массив из средних арифметических элементов массива A с номерами от 1 до K - C++ SenkShow C++ Builder 4 04.11.2015 09:25
найти произведение средних арифметических (Java) Дарья Васильева Помощь студентам 4 16.03.2014 06:51
Даны n, вещественные массивы a(n), b(n). Найти наибольшее среди чисел y,b1,b2,b3,...,bn , где y - сумма элементов массива a Прокурор Паскаль, Turbo Pascal, PascalABC.NET 8 24.06.2013 13:12