Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
27.04.2015
Размер:
910.29 Кб
Скачать

Pr4827( )

x( , )

Sub

Pr4827(ByRef x(,)

As Single _

 

 

y( , )

 

 

 

 

ByRef y(,)

As Single _

 

Вычисление

p( , )

 

 

 

 

ByRef p(,)

As Single)

 

 

 

Dim

 

nx, mx, ky, j, i, k As

Integer

mx, nx, ky

 

 

 

 

 

 

Dim

 

XRank, YRank

As Integer

 

 

i=1,mx

 

 

Dim s

As

 

Single

 

 

 

 

 

 

 

 

XRank = x.Rank

 

 

 

 

 

 

j=1,ky

 

 

YRank = y.Rank

 

 

 

 

 

 

 

 

 

mx = x.GetLength(0)-1

 

 

 

 

 

 

 

nx

= x.GetLength(1)-1

 

 

 

s = 0

 

 

ny

= y.GetLength(0)-1

 

 

 

 

 

 

ky

= y.GetLength(1)-1

 

 

Then

k=1,nx

 

 

If

XRank=2 And YRank=2 And nx=ny

 

 

 

ReDim

 

p(mx,ky)

mx

 

 

 

 

 

 

 

 

For i = 0

To

ky

 

 

 

 

 

 

 

 

For

 

j = 0

To

 

 

 

s=s+x(i,k)·y(k,j)

 

 

 

 

 

s =

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

For

k = 0

To

nx

 

 

 

 

 

 

 

 

 

s= s + x(i,k) * y(k,j)

 

 

 

 

 

 

 

Next

k

 

 

 

 

 

p(i,j)=s

 

 

 

 

 

p(i,j)= s

 

 

 

 

 

 

 

 

 

 

Next

j

 

 

 

 

 

 

 

 

 

 

Next

i

 

 

 

 

 

 

 

Вывод

 

Else

vivodSngMac19(p, ListBox1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p( , )

 

 

TextBox1.Text ="Проверь размерности X, Y"

 

 

 

End Sub

 

End If

 

 

 

 

 

 

 

 

 

 

 

End Sub

 

 

 

 

 

 

 

 

 

Рис. 4.8.2-7

 

На рис. 4.8.2-7 представлен общий алгоритм

вычисления алгебраического

произведения двух матриц размерами (mx x nx) и (nx x ky). В программу добавлена проверка на соответствие количества столбцов первой матрицы количеству строк второй матрицы, причем в схеме алгоритма она отсутствует.

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивовСтраница227

4.8.3. Задачи для самостоятельного решения по теме «Программирование алгоритмов

формирования и обработки двумерных массивов»

Составить схему алгоритма и написать программный код для решения задач с использованием процедур и, если необходимо, то выполнить предварительно формализацию.

1)Дана целочисленная квадратная матрица порядка 5. Определить, является ли она

магическим квадратом. Магическим квадратом порядка n*n называется квадратная таблица размера n x n, составленная из чисел 1, 2, …, n2 так, что суммы по каждому столбцу, каждой строке и каждой из диагоналей равны между собой.

2)Дана целочисленная квадратная матрица порядка n. Определить, является ли она латинским квадратом: каждая строка и каждый столбец содержат числа 1, 2, …, n.

3)Дана целочисленная матрица порядка n x m, каждый элемент aij которой равен 0, 1, 2 или 3. Определить количество четверок aij, ai+1,j, aij+1, ai+1 j+1, в каждой из которых все элементы равны.

4)Элемент матрицы называется седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце или наоборот. Дана действительная матрица размера n x m. Выяснить, имеются ли седловые точки в этой матрице и если имеются, то указать индексы одной из них.

5)Даны целые числа a1, …, a10, целочисленная матрица порядка n. Заменить нулями в матрице те элементы с четной суммой индексов, для которых имеются равные среди a1, …, a10.

6)В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент. Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением.

7)Дана целочисленная матрица размера n x m. Найти матрицу, получающуюся из данной перестановкой столбцов: первого с последним, второго - с предпоследним и т.д.

8)Даны действительные числа a1, …, an, действительная квадратная матрица порядка n(n>=6). Получить действительную матрицу размера n*(n+1), вставив в исходную матрицу между пятым и шестым столбцами новый столбец с элементами a1, …, an.

9)Дана целочисленная матрица размера n x m. Найти матрицу, которая получается из заданной матрицы, перестановкой строк (первой с последней, второй с предпоследней и т.д).

10)Дана действительная квадратная матрица порядка n. Преобразовать матрицу по правилу: строку с номером n сделать столбцом с номером n, а столбец с номером n сделать строкой с номером n.

11)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы.

12)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй матрицы.

13)Назовем допустимым преобразованием матрицы перестановку двух строк и двух столбцов. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться, чтобы один из элементов матрицы, обладающий наибольшим по модулю значением, располагался в левом верхнем углу матрицы.

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивовСтраница228

14)Назовем допустимым преобразованием матрицы перестановку двух строк и двух столбцов. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться, чтобы один из элементов матрицы, обладающий наименьшим значением, располагался в левом нижнем углу матрицы.

15)Дана действительная квадратная матрица порядка n, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

16) Получить целочисленную матрицу

порядка7, элементами которой являются числа

1, 2, …, 49, расположенные в ней по

спирали.

17)Дана действительная квадратная матрица порядка 7. Найти последовательность действительных чисел b1, …, b49, получающуюся при чтении данной матрицы по спирали.

18)В каждой строке заданной матрицы a(n, m) вычислить сумму, количество и среднее арифметическое положительных элементов.

19)Дана матрица a(n, m). Необходимо найти количество элементов этой матрицы, больших среднего арифметического всех её элементов.

20)Дана целочисленная матрица a(n, m). Вычислить сумму и произведение тех её элементов, которые при делении на два дают нечётное число.

21)Дана матрица a(n, m). Вычислить вектор x(m), где значение xjравно сумме положительных элементовj-го столбца матрицы a.

22)Дана матрица a(n, m). Получить вектор x(m), равный p-й строке матрицы, и вектор y(n), равный q-му столбцу матрицы.

23)Дана матрица a(n, n). Переписать элементы её главной диагонали в одномерный массив

y(n) и разделить их на максимальный элемент главной диагонали, получить затем новый массив x(n).

24) Дана матрица a(n, m). Получить y=x1 ∙ xn+x2 xn-1+ ...+ xn ∙ x1,где xi - наибольший элемент в строке с номером i матрицы a.

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

26)Дана целочисленная матрица a(n, m). Вычислить сумму и произведение отрицательных

27)

нечетных элементов матрицы, удовлетворяющих условию | ai j | < i.

x того же

По трём заданным матрицам а(n, n),

в(n, n)

и с(n, n)построить матрицу

28)

размера, каждый элемент которой вычисляется

по формуле xi j = max {ai j , bi

j , ci j} .

Дана матрица а(n, n)и целое p (0<p≤n). Преобразовать матрицу по правилу: строку,

29)

содержащую число p, необходимо сделать строкой с номером p.

 

Для заданной матрицы a(n, n) найти сумму элементов, расположенных в строках с

30)

отрицательным элементом на главной диагонали.

 

Дана матрица a(n, m). Определить:

число

ненулевых элементов в каждой строке

 

матрицы; общее число ненулевых элементов в матрице; отношение числа ненулевых

31)

элементов в каждой строке матрицы к общему числу ненулевых элементов в матрице.

Напечатать элементы заданной матрицы a(n, n) в следующем порядке:

 

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивовСтраница229

32) Дана матрица a(n, n), где N— нечётное число. Вычислить сумму её элементов из заштрихованной области.

33)Дана квадратная таблица а(n, n), элементами которой являются нули и единицы. Подсчитать, сколько в ней содержится квадратов, состоящих из единиц, со стороной из двух элементов таблицы и развернутых по отношению к таблице на 45 градусов.

34)В заданной целочисленной матрице a(n, m) вывести на печать индексы первого положительного элемента, кратного заданному числу k. Если таких элементов в матрице нет, то вывести соответствующий текст. Элементы матриц просматривать слева направо и сверху вниз.

35)В заданной целочисленной матрице a(n, m) заменить первый отрицательный элемент максимальным элементом матрицы. Если отрицательных элементов нет, то вывести соответствующий текст.

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивовСтраница230

4.8.4. Тестовые задания по теме «Программирование алгоритмов формирования и обработки двумерных массивов»

1.Двумерный массив – это массив, у которого количество индексов равно

1)2

2)4

3)3

4)любому целому числу

2.Индексами двумерного массива могут быть

1)любые целочисленные выражения

2)выражения любого типа

3)только целочисленные переменные

4)переменные любого типа

3.Индексы в двумерном массиве указывают

1)первый - номер строки, второй – номер столбца

2)первый - номер столбца, второй – номер строки

3)не имеет значения

4)все зависит от программиста

4.Укажите размер данного двумерного массива A(2,3)

1)6

2)9

3)12

4)2

5.Ввод и обработка двумерных массивов производится при использовании

1)вложенных разветвлений

2)вложенных процедур

3)вложенных циклов

4)любых конструкций языка программирования

6.Значениями параметров цикла в операторе For при вводе, обработке и выводе массивов являются

1)значения элементов массива

2)максимальные значения индексов массива

3)номера строк и столбцов

4)минимальные значения индексов массива

7.Если данные представлены в табличной форме, то для их обработки удобнее использовать

1)одномерный массив

2)двумерный массив

3)трехмерный массив

4)любой массив

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивовСтраница231

Первый индекс в двумерном массиве указывает

1)номер столбца

2)номер строки

3)не имеет значения

4)все зависит от программиста

8.При вводе и обработке массива по столбцам внешний цикл должен быть организован

1)по любому из индексов

2)по второму индексу

3)по первому индексу

4)все зависит от программиста

9.Определите, как будет отображен двумерный массив после выполнения следующего фрагмента программы (2)

For i = 0 To 7

For j = 0 To 5

TextBox1.Text= TextBox1.Text &a(i) & ” ”

Next j

TextBox1.Text= TextBox1.Text & vbCrLf

Next i

1)в строку

2)в виде таблицы

3)в столбец

4)будет выдано сообщение об ошибке

10. Количество правильно объявленных массивов DimA (0 To 3, 4),DimA (3, 4),Dim A (3, 0 To 4), Dim A (0 to 3, 0 to 4) равно

1) 1

2) 2

3) 3

4) 4

11. Объявленный массив имеет тип распределения памяти

Dim A (0 To 3, 0 To 5) As Single

1)cтатический

2)динамический

3)фактический

4)вещественный

12.Элемент массива a(3,3) после выполнения с фрагмента программы равен (2)

For i=0 To 3

For j=0 To 3

If i<j Then a(i,j) = i+j Else a(i,j) = i*j

Next j

Next i

1)6

2)12

3)3

4) 9 Страница232

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивов

13. После выполнения программы на форму будет выведено значение (2)

Dim a (0 To 3,0 To 4), i, j As Single

For i = 0 To 3

For j = 0 To 4

a(i,j) = i*j

Next j

Next i

TextBox1.Text = CStr(a(i,j))

1)сообщение об ошибке

2)12

3)20

4)0

14.Фрагмент программы выполняет алгоритм (2)

For i =0 To 4

r = a(i,2)

a(i,2) = a(i,4) a(i,4) = r

Next i

1)обмена элементов главной и побочной диагоналей

2)присваивания 2-ому и 4-ому столбцам одинаковых значений

3)обмена 2-го и 4-го столбцов матрицы

4)обмен 2-й и 4-й строк матрицы

15.Фрагмент программы выполняет операцию (2)

s = 0

For i = 0 To 5

For j = 0 To i -1 s = s + a(i,j)

Next j

Next i

TextBox1.Text =”s=” & CStr(s)

1)вывода суммы элементов ниже главной диагонали

2)вывода суммы элементов выше главной диагонали

3)вывода суммы элементов главной диагонали

4)вывода суммы элементов побочной диагонали

16.Фрагмент программы выполняет операцию (2)

For i = 0 To 5

For j = 0 To 5

If j Mod 2 = 0 Then

a(i,j) = 0

End If

Next j

Next i

1)заполнения четных строк нулями

2)заполнения нулями четных элементов матрицы

3)заполнения нулями элементов четных столбцов

4) обнуления элементов побочной диагонали Страница233

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивов

17. Двумерный массив после выполнения фрагмента программы будет отображен

For I=0 To 7

For J=0 5

TextBox1.Text = TextBox1.Text & A(I,J)&“ “

Next I

TextBox1.Text = TextBox1.Text &vbCrLf

Next J

1)будет выдано сообщение об ошибке

2)в виде таблицы

3)в строку

4)в столбец

18.Элемент массиваA(2,3) при выполнении фрагмента программы принимает значение

For N=1 To 5

For K=1 To 5

If N>K Then A(N,K) = N + K Else A(N,K) = N * K

Next K

Next N

1)2

2)3

3)5

4)6

19.Элемент массива A(3,2) при выполнении фрагмента программы принимает значение

For N=1 To 5

For K=1 To 5

If N<K Then A(N,K) = N + K Else A(N,K) =N * K

Next K

Next N

1)6

2)5

3)3

4)2

Перейти к Теме 4.7 Теме 4.9 Огл.

Тема 4.8. Программирование алгоритмов формированияи обработкидвум.массивовСтраница234

Соседние файлы в папке УчеП-Раз-4-Инф-270100