Пример 2. Xk=inputbox(“введите конечное значение параметра цикла”)

Разработать информационную технологию, позволяющую зaполнить матрицу Y=[yij], первый столбец которой хранит значения аргумента х (при изменении х от начального значения х0 до конечного значения хk с шагом Dх), а второй – значения функции y = sin(x).

Входные данные: х0 – вещественное число;

xk – вещественное число;

dx – шаг, вещественное число.

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

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

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

Размерность массива вычисляется по формуле:

m = ;

для x = x0..xk, i = 1..m, yi,1 = x, yi,2 = sin(x)

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


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

Private Sub Command1_Click()

Dim x0 As Single, xk As Single, dx As Single

Dim i As Integer, y() As Single, m As Integer

x0=InputBox(“Введите начальное значение параметра цикла”)

xk=InputBox(“Введите конечное значение параметра цикла”)

dx=InputBox(“Введите шаг изменения параметра цикла”)

m=(xk-x0)/dx+1

ReDim y(1 To m,1 To 2)

x=x0

For i=1 To m

y(i,1) = x

y(i,2) = sin(x)

x=x+dx

Next

For i=1 To m

Print “y(“ & i & “,1)=” & y(i,1) & ” y(“ & i & ”,2)=” & y(i,2)

Next

End Sub

П р и м е ч а н и е. Значения y(i,1) и y(i,2) лучше выводить с использованием функции Format: Format (y(i,1), “0.00”), Format (y(i,2), “0.00”).

Частным случаем алгоритма структуры Формирование служит алгоритм ввода значений элементов массива. В этом случае в вычислительную среду вводятся не только размерность массива, но и значения элементов.

Алгоритм ввода значений элементов одномерного массива А произвольной размерности m и вывода введённых значений на форму представлен на схеме:

Алгоритм ввода значений элементов массива будет обозначаться одним блоком:

 
 


Алгоритм вывода значений элементов массива также будет обозначаться одним блоком:

 
 


Код приложения на языке Visual Basic, реализующий представленный выше алгоритм:

Option Base 1

Private Sub Command1_Click()

Dim m As Integer, i As Integer, a() As Integer

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

ReDim a(m)

For i=1 To m

a(i)=InputBox(“Введите а(“ & i & ”)”)

Next

Print “Значения элементов введённого массива:”

Print

For i=1 To m

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

Next

End Sub

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).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: