Учебно-методические материалы для студентов кафедры АСОИУ

Лабораторная работа №5 Программирование циклических вычислительных процессов с использованием массивов и матриц.

Цель: Приобрести навыки программирования циклических вычислительных процессов с использованием массивов и матриц.

Теоретические разделы для выполнения лабораторной работы

  1. Особенности работы с массивами.

Программирование с использованием матриц.

Часть 1.

Программирование циклических вычислительных процессов с использованием массивов. Варианты заданий указаны в приложении 5, часть 1, с. 24.

Часть 2.

Программирование циклических вычислительных процессов с использованием матриц. Варианты заданий указаны в приложении 6, часть 2, с. 26.

Пример (Часть 1)

Дан массив а={a 1,a 2, …, a 15}. Найти модуль разности между максимальным и минимальным элементами массива.

Sub lr5_1()

Dim a(15),min, max, mod_raz, i As Integer

Dim s As String

S=””

For i=1 to 15

A(i)=Val(InputBox(“Элемент вектора”))

S=S & A(i) & “ “

Next i

MsgBox s , , “Введенный массив”

max=a(1)

min=a(1)

For i=2 to 15

If a(i)<min Then min=a(i)

If a(i)>max Then max=a(i)

Next i

mod_raz=abs(max-min)

MsgBox “Min = “ & min & “ Max=” & max & “Модуль разности =” & mod_raz

End Sub

Пример (Часть 2)

Задана матрица А размером 4X4. Сумму отрицательных элементов строки с наименьшим значением матрицы.

Sub lr5_1()

Dim a(4,4),min, i, j, imin, Sum_s As Integer

Dim s As String

S=””

For i=1 to 4

For j=1 to 4

A(i,j)=Val(InputBox(“Элемент матрицы”))

S=S & A(i,j) & “ “

Next j

S=S & Chr(13) & Chr(10)

Next i

MsgBox s , , “Введенная матрица”

min=a(1,1)

imin=1

For i=1 to 4

For j=1 to 4

If a(i,j)<min Then

min=a(i, j)

imin=i

End If

Next j

Next i

MsgBox “Min = “ & min & “ imin=” & imin

Sum_s=0

For j=1 to 4

If a(imin,j)<0 Then Sum_s=Sum_s + a(imin,j)

Next j

End Sub

Контрольные вопросы

  1. Структура оператора цикла For … Next

  2. Использование вложенных операторов цикла
  3. Алгоритмы нахождение минимальных и максимальных значений

Работа с индексами массивов и матриц

Приложение 5. Варианты заданий лабораторной работы №5. Часть 1.

  1. Найти минимальный и максимальный элементы вектора y ={ y 1 , y 2 ,…, y 10 } и поменять их местами.

  2. Задан вектор c ={ c 1 , c 2 , …, c n }. Найти вектор y ={ c 1 /| c |, c 2 /| c |, …, c n /| c |}, где | c | - длина вектора c.
  3. Даны два вектора x ={ x 1 , x 2 , …, x n } и y ={ y 1 , y 2 , …, y n }. Определить, ортогональны ли эти векторы.
  4. Найти косинус угла между двумя векторами a ={ a 1 , a 2 , …, a 20 } и b ={ b 1 , b 2 , …, b 20 }.
  5. Из двух векторов x ={ x 1 , x 2 , …, x 16 } и y ={ y 1 , y 2 , …, y 16 } определить тот, у которого больше длина.
  6. Найти сумму s положительных компонентов вектора b ={ b 1 , b 2 , …, b 15 }. Образовать новый вектор по формуле

  1. Заданы два вектора a ={ a 1 , a 2 , …, a n } и b ={ b 1 , b 2 , …, b n }. Определить тот из них, который имеет наименьшую длину.

  2. Найти наименьший из положительных элементов массива x ={ x 1 , x 2 , …, x 20 }.
  3. Найти наибольшее значение суммы x i + y i для массивов x ={ x 1 , x 2 , …, x 20 } и y ={ y 1 , y 2 , …, y 20 }.
  4. Даны векторы u ={ u 1 , u 2 , …, u 8 } и w ={ w 1 , w 2 , … w 8 }. Найти среднее арифметическое длин этих векторов.
  5. Вычислить сумму отрицательных и произведение положительных элементов вектора x ={ x 1 , x 2 , …, x 10 }. Найти длину этого вектора.
  6. Найти индексы наименьшего и наибольшего элементов вектора x ={ x 1 , x 2 , …, x 10 }. Определить их сумму S.
  7. Определить количество положительных элементов вектора x ={ x 1 , x 2 , …, x 20 }. Образовать новый вектор y из положительных элементов вектора x.
  8. Найти минимальный и максимальный элементы вектора y ={ y 1 , y 2 ,…, y 10 }. Вывести на экран их значения и индексы.
  9. Вычислить среднее арифметическое всех положительных элементов вектора x ={ x 1 , x 2 , …, x 20 }.
  10. Заданы векторы a ={ a 1 , a 2 , …, a n } и b ={ b 1 , b 2 , …, b n }. Найти скалярное произведение этих векторов.
  11. Даны векторы x ={ x 1 , x 2 , …, x 9 } и y ={ y 1 , y 2 , …, y 9 }. Найти количество положительных, отрицательных и нулевых элементов в каждом из этих векторов.
  12. Определить индекс наименьшего из положительных элементов вектора y ={ y 1 , y 2 , …, y 15 }.
  13. Даны векторы a ={ a 1 , a 2 , …, a 10 } и b ={ b 1 , b 2 , …, b 10 }. Найти sin угла между ними.
  14. Задан вектор a={a 1 , a 2 , …, a 8 }. Поменять его первый элемент с минимальным и последний a 8 – с максимальным.
  15. Определить индекс наибольшего из отрицательных элементов вектора y ={ y 1 , y 2 , …, y 15 }.
  16. Определить количество положительных элементов вектора x ={ x 1 , x 2 , …, x 20 }. Образовать новый вектор y из отрицательных элементов вектора x.
  17. Определить индекс наименьшего по модулю элемента вектора y ={ y 1 , y 2 , …, y 15 }.
  18. Даны два вектора x ={ x 1 , x 2 , …, x n } и y ={ y 1 , y 2 , …, y n }.Найти значение z=2· | x |– | y |, где | x |, | y |- длины векторов x, y.
  19. Вычислить среднее геометрическое всех положительных элементов вектора x={x 1 , x 2 , …, x 20 }.
  20. Даны два вектора x={x 1 , x 2 , …, x n } и y={y 1 , y 2 , …, y n }. Удалить из вектора x все нулевые элементы, а из вектора y все отрицательные.
  21. Дан вектор x={x 1 , x 2 , …, x n }. Найти z=sin(k)-cos(m), где k–максимальный по модулю элемент, m – минимальный элемент вектора.
  22. Найти наибольший из положительных элементов массива x ={ x 1 , x 2 , …, x 20 } и количество отрицательных элементов..
  23. Дан вектор x ={ x 1 , x 2 , …, x n }. Найти: сумму элементов больших 10, произведение отрицательных элементов и наибольший по модулю элемент вектора.

Даны векторы a ={ a 1 , a 2 , …, a 10 } и b ={ b 1 , b 2 , …, b 10 }. Найти косинус угла между ними и количество элементов вектора равных нулю.

Приложение 6. Варианты заданий лабораторной работы №5. Часть 2.

  1. Дано натуральное число n. Получить действительную матрицу [аij ]

i,,j=1,…, n, для которой

а ij = ; Найти количество отрицательных элементов матрицы

  1. Дано натуральное число n. Получить действительную матрицу [аij ]

i , j=1,…, n, для которой

Найти количество отрицательных элементов матрицы

  1. Дана действительная квадратная матрица [аij ] i , j =1,…, n . Получить две квадратные матрицы

[b ij ] i , j =1,…, n , [с ij ] i , j =1,…, n , для которых

bij = сij =

  1. Получить действительную матрицу [аij ] i , j =1,…, 7, первая строка которой задается формулой

а1j = 2j+3 ( j = 1, … ,7 ),

вторая строка задается формулой а2j = j ( j = 1, …, 7 ), а каждая следующая строка есть сумма двух предыдущих.

  1. Даны натуральное число n , действительная матрица размера n х 9. Найти среднее арифметическое:

а) каждого из столбцов;

б) каждого из столбцов, имеющих четные номера.

  1. Дано натуральное число n. Выяснить, сколько положительных элементов содержит матрица [аij ] i , j =1,…, n, если

аij = cos ( + n);

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

  2. Даны натуральное число m , целые числа а1, ……. , аm и целочисленная квадратная матрица порядка m . Строку с номером i матрицы назовем отмеченной , если аi > 0, и неотмеченной в противном случае.

а) Подсчитать число отрицательных элементов матрицы, расположенных в отмеченных строках.

б) Нужно все элементы , расположенные в отмеченных строках матрицы , преобразовать по правилу: отрицательные элементы заменить на –1, положительные – на 1 , а нулевые оставить без изменения.

  1. Дана действительная квадратная матрица порядка 12. Заменить нулями все ее элементы , расположенные на главной диагонали и выше нее.

  2. Даны действительные числа Х1, …., Х8. Получить действительную квадратную матрицу порядка 8:

  1. Дана действительная матрица размера m х n.

Определить числа b1, … ,bm , равные соответственно:

а) произведениям элементов строк;

б) наименьшим значениям элементов строк ;

в) значениям средних арифметических элементов строк ;

г) разностям наибольших и наименьших значений элементов строк.

  1. Все элементы с наибольшим значением в данной целочисленной квадратной матрице порядка 10 заменить нулями.

  2. Дана действительная матрица размера 6 х 9 . Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.
  3. Дана действительная матрица размера 18 х n . Найти значение наибольшего по модулю элемента матрицы, а также индексы какого-нибудь элемента с найденным значением модуля.
  4. Дана действительная матрица размера m х n . Найти сумму наибольших значений элементов ее строк.
  5. В данной действительной квадратной матрице порядка n найти сумму элементов строки , в которой расположен элемент с наименьшим значением . Предполагается , что такой элемент единственный.
  6. В данной действительной матрице размера 6 х 9 поменять местами строку , содержащую элемент с наибольшим значением , со строкой , содержащей элемент с наименьшим значением. Предполагается , что эти элементы единственны.
  7. Дано натуральное число n. Выяснить, сколько отрицательных элементов содержит матрица [аij ] i , j =1,…, n, если

аij = sin (i+j/2);

  1. Даны натуральное число n , действительная квадратная матрица порядка n , действительные а1,…, аn+5

Элементы последовательности а1,…, аn+5 домножить на 10 ,если наибольший элемент матрицы (в предположении, что такой элемент единственный ) находится на главной диагонали , и на 0.5 в противном случае.

  1. В данной квадратной целочисленной матрице порядка 17 указать индексы всех элементов с наибольшим значением.

  2. Дана действительная матрица размера m х n. Определить числа b1, … ,bm, равные соответственно:

а) наименьшим значениям элементов строк ;

б) значениям средних арифметических элементов строк ;

в) разностям наибольших и наименьших значений элементов строк.

  1. Дана действительная матрица размера m х n, все элементы которой различны . В каждой строке выбирается элемент с наименьшим значением , затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.

  2. Дана действительная матрица размера m х n.Получить последовательность b1 ,…, bn , где br –это

а) наибольшее из значений элементов r-й строки ;

б) сумма наибольшего и наименьшего из значений элементов r-й строки ;

в) число отрицательных элементов r-й строке ;

г) произведение квадратов тех элементов r-й строки , модули которых принадлежат отрезку [1, 1.5].

  1. Дана целочисленная квадратная матрица порядка 8 . Найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов. Если таких столбцов несколько ,то взять первый из них.

  2. Даны натуральное число n , целочисленная квадратная матрица порядка n. Получить b1 ,…, bn , где bi- это

а) наименьшее из значений элементов , находящихся в начале i – й строки матрицы до элемента , принадлежащего главной диагонали , включительно:

б) значение первого по порядку положительного элемента i – й строки (если таких элементов нет , то принять bi=1);

в) сумма элементов , расположенных за первым отрицательным элементом в i – й строке (если все элементы строки неотрицательны , то принять bi = 100) ;

г) сумма элементов i – й строки (если все элементы строки неотрицательны ,то принять bi = -1 ).

  1. Дана целочисленная квадратная матрица порядка n . Найти номера строк:

А) элементы которых – нули ;

Б) элементы в каждой из которых одинаковы ;

В) все элементы которых четны ;

Г) элементы каждой из которых образуют монотонную последовательность (монотонно убывающую или монотонно возрастающую);

  1. Даны натуральное число n , действительное число х , действительная матрица размера n х 2 n. Получить последовательность b1 ,…, bn из нулей и единиц , где bi=1, если элементы i– й строки матрицы не превосходят х , и bi=0 в противном случае.

  2. Дана действительная квадратная матрица порядка 10 . В строках с отрицательным элементом на главной диагонали найти:

А) сумму всех элементов;

Б) наибольший из всех элементов.

  1. Дано натуральное число n. Выяснить, сколько положительных элементов содержит матрица [аij ] i , j =1,…, n, если

аij = sin .

CC-BY-CA Анатольев А.Г., 31.01.2012