ЛАБОРАТОРНАЯ РАБОТА №1 по курсу «Информатика» (II семестр)
В данном методическом указании рассмотрены наиболее типичные алгоритмы для работы с массивами, элементами массивов, даны стандартные решения многих инженерных задач.
1. Суммирование слагаемых
Для одномерного массива B необходимо вычислить сумму его элементов.Для этого необходимо определить переменную (S), которая будет хранить накапливаемую сумму. Затем в открывшемся цикле будем складывать элементы в следующем порядке: к первому элементу прибавляем обнуленную выше переменную (S), запоминаем результат сложения в этой же переменной (S). Циклический ход программы позволит таким образом накапливать сумму элементов массива В.
2. Вычисление произведения
Для одномерного массива B необходимо вычислить произведение его элементов. Для этого необходимо определить переменную (V), которая будет хранить накапливаемое произведение. Затем в открывшемся цикле будем умножать элементы в следующем порядке: первый элемент умножаем на переменную (V), запоминаем результат умножения в этой же переменной (V). Циклический ход программы позволит таким образом накапливать произведение элементов массива В. Необходимо учесть, что переменной V перед открыванием цикла надо присвоить значение 1.
3. Почленное суммирование элементов двух массивов.
Для одномерных массивов A и B необходимо получить массив C с элементами Ci=Ai+Bi, где i = I, 2,...N.
В открываемом цикле складываем поэлементно оба массива. Первый элемент массива A складываем C первым элементов массива B и запоминаем полученную сумму в первый элемент массива С, затем второй элемент массива А складываем со вторым элементом массива В, запоминаем во второй элемент массива С и т. д. Таким образом, элементы массива С будут хранить суммы элементов массивов А и В. Полученный массив С выводим на экран.
4. Сумма элементов диагонали
Для матрицы А размерностью п x п необходимо вычислить сумму элементов, лежащих на главной диагонали. Условимся, что элемент Ai,j. лежащий на главной диагонали имеет значения индексов i =j. Для упрощения решения задачи можно открыть один единственный цикл, и в этом цикле организовать накопительную сумму элементов Аi,j. Решение этой задачи аналогично решению для нахождения обычной накопительной суммы.
5. Сумма строк матрицы
Для матрицы А размерностью п xn необходимо вычислить сумму каждой строки в отдельности, записывая ее в отдельный массив С. Для этогонеобходимо завести переменную, которая хранила бы текущую накопительную сумму отдельной строки, но после вычисления суммы всей строки и записи значения этой суммы в массив С, она бы обнулялась для того, чтобы опять хранить накопительную сумму следующей строки.
Sub summ_strok_matr()
…
For i = 1 To n
Sum(i) = 0
For j = 1 To m
Sum(i) = Sum(i) + A(i, j)
Next j
Next i
…
End Sub
6. Перестановка элементов в массиве
Для одномерного массива B требуется поменять местами два элемента (Вк и Bс). Для этого заведем вспомогательную переменную Р. На первом шаге перестановки занесем значение переменной Вк в переменную Р, затем на место переменной Вк запишем переменную Вс, а потом на место переменной Вс запишемпеременную Вк. На примере этовыглядит так:
Р ← Вк
Bк←Bc
Bc←P
7. Перестановка строк матрицы
Перестановка I-той J-той строк матрицы A размерностью MxN, также осуществляется с использованием переменной Р, как и в предыдущем примере, но этот процесс имеет циклический характер.
Sub perest_strok_matr()
…
For k = 1 To m
P = A(i,k)
A(i, k) = A(j, k)
A(j,k) = P
Next
…
End Sub
8.Транспонирование матрицы
Необходимо заменить строки матрицы её столбцами, а столбцы - строками, т.е. вычислить Cj,i—Ai,j, где i=l,...,N; j=1,...,M
Рассмотрим алгоритм транспонирования квадратной матрицы. Для квадратной матрицы размером N x N необходимо поменять местами каждый элемент верхнего треугольника с соответствующим элементом нижнего (диагональные элементы переставлять не нужно).
Для каждой строки нужно выполнять перестановку элементов, расположенных выше главной диагонали, с элементами соответствующего столбца, расположенными ниже главной диагонали.
При перестановке применим общий прием, который заключается в использовании вспомогательной переменной, т.е.
P=Ai,j Аi,j=Aj,i Aj,i=P
где i = 1,...,N-1; j = i + 1,...,N
Sub Transp_Matr()
…
For i = 1 To N – 1
For j = j + 1 To N – 1
p = A(i,j)
A(i,j) = A(j,i)
A(i,j) = p
Next
Next
...
End Sub
9. Умножение матрицы на вектор
Для вычисления произведения матрицы А размером N x М на вектор В размером М необходимо вычислить вектор С размером N с элементами Ci = ∑ Ai,j * Bj для j от 1 до M под знаком суммы
Sub Mult_ Matr_Vect()
…
For i = 1 To N
С(i) = 0
For j = 1 To M
C(i) = C(i) + A(i,j) * B(i,j)
Next
Next
…
End Sub
10. Умножение матрицы на матрицу.
Для вычисления произведенияматрицы A размером N x К на матрицу B размером К x М необходимовычислить матрицу С размером N x М с элементамиCi,j = ∑ Ai,j * B при j от 1 до k под знаком суммы.
Sub Mult_Matr_Matr()
…
For i = 1 To N
For j = 1 To M
C(i,j) = 0
For l = 1 To K
C(i,j) = C(i,j,) + A(i,l) * B(l,j)
Next
Next
Next
…
End Sub
11 .Поиск экстремума
Требуется найти минимальный (максимальный) элемент в массиве А и поместить его значение в переменную MIN (МАХ), а его индекс в переменную IMIN (IMAX).
Длянахождение экстремума необходимо переменным MIN (MAX) и IMIN (IMAX) присвоить начальное значение, в нашем случае это можем быть первый элементмассива A и его индекс:
MIN (МАХ)=А1IMIN (IМАХ)=1
Открыв цикл, нумерацию (перебор)индексов массива А можно начать со второго.
При нахождении меньшего (большего) по величине элемента массива нужно заменить значения переменных MIN (MAX) и IMIN (IMAX)
Sub Max_Matr()
…
Max = A(1)
IMax = 1
For i = 1 To N
For j = 1 To M
If A(i) > Max Then
Max = A(i)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.