Пример 4.8.2-4 . Написать процедуру, которая определяет максимальный элемент среди элементов, лежащих ниже главной диагонали массива.



В переменной xmax в цикле фиксируется мак­симальный элемент массива, в переменной imax , jmax – номер строки и номер столбца.

Sub Pr824(ByRef x(,) As Single, _     ByRef xmax As Single, _     ByRef imax As Integer, _     ByRef jmax As Integer) Dim i, j, m As Integer m = x.GetLength(0) – 1 imax = 1 : jmax = 0 : xmax = x(1,0) For i = 0 To m  For j = 0 To i - 1 If x(i,j) > xmax Then    xmax = x(i,j) : imax = i : jmax = j End If  Next j   Next i End Sub

 

Рис. 4.8.2-4. Программный код процедуры Pr 824()

Примера 4.8.2-4

 

Пример 4.8.2-5 . Написать процедуру, которая определяет минимальный элемент, лежащий выше главной диагонали матрицы.

Алгоритм и программный код процедуры представлен на рис. 4.8.2-5.

 

Sub Pr825(ByRef x(,) As Single, _      ByRef xmin As Single, _      ByRef imin As Integer,      ByRef jmin As Integer) Dim i, j, m As Integer m = x.GetLength(0) – 1 imin = 0 : jmin = 1 : xmin = x(0,1) For i = 0 To m  For j = i + 1 To m   If x(i,j) < xmin Then     xmin = x(i,j) : imin = i     jmin = j   End If Next j Next i End Sub

Рис. 4.8.2-5. Программный код процедуры Pr 825()

Примера 4.8.2-5

Пример 4.8.2-6 . Написать процедуру, которая заполняет элементы массива f(5,2) целыми числами, а затем переставляет элементы первого и последнего столбцов.

1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18

 Алгоритм и код программы приведены на
рис. 4.8.2-6.

3 2 1
6 5 4
9 8 7
12 11 10
15 14 13
18 17 16

 Данный пример демонстрирует заполнение массива целых чисел f(,) и перестановку элементов первого и последнего столбцов. Исходные данные для инициализации массива f(,) записываются в фигурных скобках при описании массива. Вложенные циклы обеспечивают перебор элемен­тов двумерного массива по столбцам: внутренний цикл по пер­вому индексу, а внешний по второму. Перестановка элементов первого и последнего столбцов в программе вы­полняется в цикле, изменяющем номер строки i, в котором выполняется обмен значениями элементов f ( i ,0) и f ( i ,2) .

После этого мас­сив выводится на экран в следующем виде:

 

 

Sub Pr826() Dim i, j, r, c1, c2 As Integer Dim f(,) As Integer={{1,2,3}, {4,5,6}, {7,8,9}, {10,11,12}, _                                                  {13,14,15},{16,17,18}} c1 = 0 : c2 = 2 ' номера столбцов vivodIntMac20(f, TextBox1)' Вывод мас . Pr 826( f , c 1, c 2) ' Перест.1-го и 2-го столбцов vivodIntMac 20( f , TextBox 2) ' Вывод преобразованно массива End Sub 'Процедура перестановки столбцов Sub ПерСтол( ByRef f (,) As Integer , ByVal cc 1 As Integer , _        ByVal cc2 As Integer) Dim ArrayRank, RawCount, i, r As Integer ArrayRank = f.Rank : RawCount = f.GetLength(ArrayRank - 2) For i = 0 To RawCount - 1                             r = f(i,cc1) : f(i, сс 1) = f(i,cc2) : f(i,cc2) = r Next i End Sub

Рис. 4.8.2-6. Программный код процедуры Pr 826() Примера 4.8.2-6

Пр имер 4.8.2-7. Написать процедуру, которая формирует двумерный массив x по правилу: x( i ,j ) = 2*(i - 2) 2 - (j - 2)2).

Алгоритм и процедура данной задачи приведены на рис. 4.8.2-7.

 

'Формирование двумерного массива x(,) Sub Pr 827( ByRef x (,) As Single )    Dim i, j, m As Integ er    m = x.GetLength(0) - 1    For i = 0 To m        For j = 0 To m            x(i, j) = CSng(2 * (i - 2) ^ 2 - (j - 2) ^ 2)        Next    Next End Sub

 

Рис. 4.8.2-7. Программный код процедуры Pr 827()

Примера 4.8.2- 7

 

Пр имер 4.8.2-4.8. Написать процедуру, которая формирует одномерный массив, каждый элемент которого представляет собой количество положительных элементов соответствующего столбца массива b(,).

 

Sub Pr828(ByRef b(,) As Single, _      ByRef  a() As Integer) Dim Rank,RC,CC,j,i,n As Integer Rank = b.Rank RC = b.GetLength(Rank - 2) - 1 CC = b.GetLength(Rank - 1) - 1 ReDim a(CC) Dim m As String For j = 0 To CC n = 0 For i = 0 TO RC    If b(i,j) > 0 Then n = n + 1 Next i   a(j)= n Next j End Sub

Рис. 4.8.2-8. Программный код процедуры Pr 828()

Примера 4.8.2-8

Предполагается, что выделение памяти и ввод массива b (,) осуществляются в процедуре, которая вызывает процедуру Pr 828() .

Алгоритм и код программы представлены на рис. 4.8.2-5.

Для перебора всех элементов исходной таблицы b(,) также использованы вложенные циклы, в данном случае во внешнем цикле меняется но­мер столбца, а во внутреннем – номер строки. Такой порядок перебора элементов двумерного массива диктуется условиями задачи. В каждом столбце про­изводится подсчет положительных элементов, и по окончании цикла ре­зультат записывается в соответствующий элемент одномерного массива а(), номер которого совпадает с номером столбца матрицы b(,).


Дата добавления: 2019-07-15; просмотров: 180; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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