Sub ZadanieААА() 'Розыгрыш и обработка двумерного массива целых чисел 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Sub ZadanieААА() 'Розыгрыш и обработка двумерного массива целых чисел



Dim A(4, 3) As Integer 'Объявление двумерного массива целых чисел

Dim i%, j%, Sctr%, Sstolb%, Sum%, kol%, diag%,diagTop%, diagDown% 'Объявление переменных типа Integer

Debug.Print "=================Элементы массива (матрицы)"

Randomize 'оператор, который запускает начальное значение случайных чисел

'РОЗЫГРЫШ И ПЕЧАТЬ МАССИВА

For i = 1 To 4

For j = 1 To 3

A(i, j) = Rnd * 20 – 10 'целые числа от -10 до 10

Debug.Print A(i, j); 'печать всех элементов строки массива в одной строке

'если не поставить знак «;» - точка с запятой -, то печать элементов массива будет в столбик.!!!

Next j

Debug.Print 'переход на новую строку для печати очередной строки массива

Next i

Debug.Print "======================="

'СУММИРОВАНИЕ СТРОК МАССИВА

For i = 1 To 4 'от первой до четвертой строки à по всем строкам

Sctr =0 'обнуление суммы очередной (i-той) строки

For j = 1 To 3 'проход по всем элементам текущей строки

Sctr = Sctr + A(i, j) 'и суммирование этих элементов

Next j

Debug.Print "сумма "; i; "-й строки= "; Sctr 'печать суммы очередной (i-той) строки

Next i

Debug.Print "======================="

'СУММИРОВАНИЕ НЕЧЕТНЫХ СТОЛБЦОВ МАССИВА

For j = 1 To 3 Step 2 'только нечетные столбцы!!!!

Sstolb = 0 'обнуление суммы столбца

For i = 1 To 4 'проход по всем элементам текущего (нечетного) столбца

Sstolb = Sstolb + A(i, j) 'и суммирование этих элементов

Next i

Debug.Print "сумма "; j; "-го столбца = "; Sstolb

Next j

Debug.Print "======================="

Sum = 0: kol = 0: diag = 0: diagTop = 0: diagDown = 0 'обнуление вычисляемых переменных

For i = 1 To 4

For j = 1 To 3

Sum = Sum + A(i, j) 'суммирование ВСЕХ ЭЛЕМЕНТОВ массива

IfA(i, j) >0 Then kol=kol+1 'суммирование КОЛИЧЕСТВА ПОЛОЖИТЕЛЬНЫХ чисел массива

If i = j Then diag = diag + A(i, j) 'суммирование элементов ГЛАВНОЙ ДИАГОНАЛИ массива

If j > i Then diagTop = diagTop + A(i, j) 'сумма над гл.диагональю

If i > j Then diagDown = diagDown + A(i, j) 'сумма под гл.диагональю

Next j

Next i

Debug.Print "общая сумма = "; Sum; " положительных чисел = "; kol

Debug.Print "сумма главной диагонали массива = "; diag

Debug.Print "сумма над гл.диагональю = "; diagTop

Debug.Print "сумма под гл.диагональю = "; diagDown

MsgBox "Результат в окне отладки модуля (Immediate)"

End Sub

 

Вот что должно быть в окне отладки:

 

============Элементы массива (матрицы)

6 -7 -3

2 7 8

1 6 -9

-5 8 2

=======================

сумма 1 -й строки= -4

сумма 2 -й строки= 17

сумма 3 -й строки= -2

сумма 4 -й строки= 5

=======================

сумма 1 -го столбца = 4

сумма 3 -го столбца = -2

=======================

общая сумма = 16 положительных чисел = 8

сумма главной диагонали массива = 4

сумма над гл.диагональю = -2

сумма под гл.диагональю = 14

 

Обработка двумерных массивов часто имеет место в практической работе. Например двумерным массивом м.б. таблица успеваемости учеников (студентов) по перечню учебных дисциплин. Из такой таблицы можно получить, например, среднюю оценку обучаемого (сумма баллов – строки – поделенная на число предметов), среднюю оценку группы (класса) по какой-либо дисциплине и др. приведенная выше программа показывает, как это сделать и дает пример для разработки других показателей исходного массива (например, количество отрицательных оценок (двоек) и др.).

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-20; просмотров: 324; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.208.72 (0.008 с.)