Работа с массивами, элементами массивов и решение инженерных задач: Методические указания

Страницы работы

Содержание работы

ЛАБОРАТОРНАЯ РАБОТА №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,iAi,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)

Похожие материалы

Информация о работе