Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uchebnoe_posobie_Sistema_programmirovania_VB_20...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.81 Mб
Скачать

3.5 Производная алгоритмическая структура Поиск минимума

Используется для нахождения минимального элемента массива и его местоположения.

Особенности алгоритма аналогичны производной алгоритмической структуре Поиск максимума. Отличие состоит в том, что начальным значением дополнительной переменной может быть число, намного большее любого из возможных значений, которые могут принимать элементы массива.

Пример 17.

Разработать информационную технологию, позволяющую определить местоположение элемента матрицы А произвольной размерности mn, имеющего минимальное значение. При наличии нескольких одинаковых минимальных элементов выбрать элемент, имеющий наибольшие индексы.

Входные данные:

m – целое число;

n – целое число;

A = [aij], , – массив целых чисел.

Выходные данные:

min – минимальное значение элемента массива, целое число;

k и q – значения индексов, определяющих его местоположение, целые числа.

Описание математических и логических зависимостей.

min = a11;

для i = 1… m,

для j = 1… n,

если ai j ≤ min, то min = ai j, k = i, q = j.

Схема алгоритма:

Нет

Нет

Да

К од приложения:

Private Sub Command1_Click()

Dim m As Integer, i As Integer, j As Integer, k As Integer, q As Integer

Dim a() As Integer, min As Integer

m=InputBox(“Количество строк матрицы=”)

n =InputBox(“Количество столбцов матрицы=”)

Redim a(1 To m,1 To n)

For i=1 To m

For j=1 To n

a(i,j)=InputBox(“a(“ & i & ”,” & j & ”)”)

Next j

Next i

Print “Исходный массив

For i=1 To m

Print

For j=1 To n

Print a(i, j);

Next j

Next i

min = a(1,1)

For i=1 To m

For j=1 To n

If a(i,j)<=min then

min = a(i, j)

k=i: q=j

End If

Next j

Next i

MsgBox “ Минимум = ” & min & Сhr(10) & _

Индекс i=” & k & “Индекс j=” & q

End Sub

3.6 Производная алгоритмическая структура Cумма

Используется для вычисления суммы элементов массива или степенного ряда.

Особенности алгоритма.

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

2. Дополнительной переменной присваивается начальное значение, равное 0.

3. Определяется тип циклического процесса:

  1. цикл с параметром, если задана размерность массива или ее можно определить перед началом процесса;

  2. итерационный цикл, если накопление суммы заканчивается при достижении заданной точности.

4. Телом цикла служит структура, в которой вычисляется значение искомой суммы.

Пример 18.

Разработать информационную технологию, позволяющую вычислить сумму значений элементов первой и последней строк матрицы А произвольной размерности m×n.

Входные данные:

m – целое число;

n – целое число;

A = [aij], , – массив вещественных чисел.

Выходные данные:

s – искомая сумма, вещественное число.

Описание математических и логических зависимостей.

Схема алгоритма:

Нет

Код приложения:

Option Base 1

Private Sub Command1_Click()

Dim m As Integer, n As Integer

Dim s As Single, a() As Single, i As Integer, j As Integer

m=InputBox(“Введите количество строк матрицы”)

n=InputBox(“Введите количество столбцов матрицы”)

Redim a(m,n)

For i=1 To m

For j=1 To n

a(i, j)=InputBox(“a(“ & i & ”,” & j & ”)”)

Next j

Next i

s=0

For j=1 To n

s=s+a(1, j)+a(m, j)

Next j

Print “Исходная матрица”

For i=1 To m

Print

For j=1 To n

Print Format(a(i, j),”0.00”);

Next

Next

Msgbox “Сумма первой и последней строк матрицы равна ” & s

End Sub

При вычислении суммы членов степенного ряда дополнительной переменной присваивается значение, равное значению первого члена степенного ряда.

Пример 19.

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

Полученную величину сравнить со значением библиотечной функции.

Входные данные: х – аргумент функции, вещественное число;

eps – константа, определяющая заданную точность вычисления, вещественное число.

Выходные данные:

s – значение суммы степенного ряда, вещественное число.

Описание математических и логических зависимостей.

; s = ln; n = 2.

В цикле с постусловием выполнять:

ln1= ln; ; s = s + ln; n = n + 1, пока |ln1–ln| > eps.

Схема алгоритма:

Нет

Код приложения:

Private Sub Form_Activate()

Const eps As Single = 0.000001

Dim x As Double

Dim ln As Double

x = InputBox("Введите значение аргумента")

ln = (x - 1) / x: s = ln: n = 2

Do

ln1 = ln

ln = (x - 1) ^ n / (n * x ^ n)

s = s + ln

n = n + 1

Loop While (Abs(ln1 - ln) > eps)

MsgBox "Заданная точность = " & eps & Chr(10) & _

"Сумма ряда=" & Format(s, "0.00000") & " логарифм=" & _

Format(Log(x), "0.00000") & Chr(10) & "Итераций - " & n - 2

End Sub

Результат выполнения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]