Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Производные структуры.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
544 Кб
Скачать
☆

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

Используется для изменения значений элементов массива, хранящихся в вычислительной среде в соответствии с заданной математической зависимостью.

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

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

2. Математическая зависимость, в соответствии с которой изменяются значения элементов массива, задаётся структурой Следование, которая служит телом цикла.

3. Алгоритм разрабатывается в зависимости от того, требуется или нет сохранять значения элементов исходного массива.

Пример 3.

Разработать информационную технологию, позволяющую уменьшить значения элементов массива А произвольной размерности m в k раз (k ≠ 0). Новый массив не заполняется.

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

А = [ai], – массив вещественных чисел;

k – целое число; т – целое число.

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

А = [ai], – пересчитанный массив вещественных чисел.

Математическая модель:

для i = 1..m, ai = при k  0

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

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

Private Sub Command1_Click()

Dim m As Integer, k As Integer, i As Integer

Dim a() As Single

m=InputBox(“Введите размерность массива ”)

ReDim a(1 To m)

Print “Введите значения элементов массива”

For i=1 To m

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

Next

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

For i=1 To m

Print “a(“ & i & ”) =“ & Format(a(i),”0.00”)

Next

k=InputBox (“Введите значение k”)

If k<>0 Then

For i=1 To m

a(i) = a(i)/k

Next

Print Chr(10);“Результирующий массив”

For i=1 To m

Print Format(a(i),”0.00”

Next

Else

Print “На нуль делить нельзя”

End If

End Sub

2. Вычислительный процесс поиск

Используется для нахождения местоположения элементов или их значений в массиве в соответствии с условием поиска. Условие поиска определяется операциями отношения (<, <=, >, >=, <>) между двумя операндами. Одним из операндов служит элемент массива, а другим – переменная, называемая Ключом поиска. Различают следующие производные алгоритмические структуры:

– Поиск по ключу;

– Поиск максимума;

– Поиск минимума.

2.1. Производная алгоритмическая структура Поиск по ключу

Используется для поиска местоположения элементов массива в соответствии с условием поиска, заданного выражением:

<Элемент массива> <Операция отношения> <Ключ поиска>

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

1. Ключу поиска присваивается начальное значение, определяющее элементы массива, местоположение которых должно быть найдено. В большинстве случаев значение ключа поиска задаётся вводом.

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

Если условие поиска ложно, осуществляется переход к следующему элементу массива.

3. В алгоритме предусматриваются действия, которые выполняются, если условие поиска окажется ложным для всех элементов массива. В этом случае вводится понятие "Флажок".

"Флажок" – это переменная, которая, как правило, может принимать два значения: True (Истина) или False (Ложь). Перед началом циклического вычислительного процесса "Флажку" присваивается начальное значение, допустим, False. В теле цикла в случае, когда значение условия поиска станет истинным, "Флажку" присваивается новое значение, допустим, True.

После окончания циклического вычислительного процесса проверяется значение "Флажка": если "Флажок" изменил своё значение, значит, условие поиска было выполнено хотя бы один раз, если нет, то условие поиска не было выполнено ни разу.

П р и м е ч а н и е. Если условие поиска задано точным равенством (=), то типы элементов массива и ключа поиска должны быть одинаковыми, допускающими сравнение (Byte, Integer, Long, String).

Пример 4.

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

Входные данные: m – целое число;

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

k – целое число.

Выходные данные: значения найденных индексов или сообщение об их отсутствии.

Математическая модель:

flag = Ложь;

для i = 1..m, если aii = k, то flag = Истина и вывод i;

eсли flag = Ложь, то вывод сообщения.

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

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

Private Sub Form_Activate()

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

Dim flag As Boolean, a() As Integer

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

ReDim a(1 To m, 1 To m)

For i = 1 To m

For j = 1 To m

a(i,j) = InputBox("a(" & i & "," & j & ")")

Next

Next

k = InputBox("Введите значение ключа поиска")

flag = False

For i = 1 To m

If a(i,i) = k Then

flag = True

Print "Индекс элемента =" & i

End If

Next

If flag = False Then

MsgBox "Элементов со значением " & k & " нет"

End If

Print “Значения элементов матрицы A:”

For i=1 To m

Print

For j=1 To m

Print a(i,j);

Next

Next

End Sub