Демонстрационные примеры

Пример 1. Вычислить на ПК наибольший элемент массива X, состоящего из 10 элементов вещественного типа, и его индекс.

Структурная схема алгоритма приведена на рис. 8


Рис. 8. Структурная схема алгоритма нахождения наибольшего элемента массива.

Текст соответствующей программы:

Sub Primer1()

Dim X(9) As Single, MAX As Single, IMAX As Byte

Dim S As String

For I=0 To 9

X(I)=InputBox (“I=”+Str (I),,”Значения элементов массива X”)

Next I

MAX=X(9)

IMAX=0

For I=0 To 9

If X(I)>MAX Then

MAX=X(I)

IMAX=I

EndIf

Next I

S=“Максимальный элемент массива “+Str (MAX)

S=S+” его порядковый номер “+Str (IMAX)

MsgBox S,,”РЕЗУЛЬТАТ”

End Sub

 
 

Выполним тестирование программы для следующих исходных данных:

X(0)=10 X(1)=-1 X(2)=0 X(3)=0.5 X(4)=1.5 X(5)=1 X(6)=-0.1 X(7)=0.1 X(8)=0.35 X(9)=-1.5

Тогда максимальный элемент должен быть равен 10, его порядковый номер 1.

Результаты работы программы совпадают с ручным счетом.

Рис 9. Результаты выполнения программы.

Пример 2. Переписать все элементы одномерного массива А размера N (N<=10) в массив D, заменив отрицательные значения на их квадраты. Сравнить исходный массив и полученный массивы на равенство, выдав на экран дисплея сообщение о результатах сравнения. Ограничение: A(I) – целые.

Текст соответствующей программы:

Sub Primer2()

Dim A(10) As Integer, D(10) As Integer, N As Byte

Dim I As Byte, FLAG As Boolean, STROKA As String

Dim STROKA1 As String

N = InputBox("ВВЕДИТЕ ЗНАЧЕНИЕ №")

For I = 0 To N

A(I) = InputBox("I=" + Str(I), "Значения элементов массива А")

Next I

STROKA = "Исходный массив:"

STROKA1 = "Результирующий массив:"

For I = 0 To N

STROKA = STROKA + " " + Str(A(I))

If A(I) < 0 Then

A(I) = A(I) ^ 2

FLAG = False

Else

FLAG = True

End If

D(I) = A(I)

STROKA1 = STROKA1 + " " + Str(D(I))

Next I

If FLAG = False Then

STROKA1 = STROKA1 + " МАССИВЫ ОДИНАКОВЫЕ "

Else

STROKA1 = STROKA1 + " МАССИВЫ РАЗНЫЕ "

End If

MsgBox STROKA1,, STROKA

End Sub

Тестирование:

1. N=5

A: 1 2 3 –6 0 0

D: 1 2 3 36 0 0

2. N=4

A: 1 2 3 6 0

D: 1 2 3 6 0


1. Примеры к заданиям 1 - 4 вариантов 1 – 11 раздела 3

Пример к заданию1.

Sub Формула()

Dim t, p, z, X, y As Single

X = Val(InputBox("")) '

y = Val(InputBox("")) '

t = (X + y) / y

p = Sin(X)

z = Format(t * p, "FIXED")

MsgBox "Результат вычислений", vbInformation, "z=" & z

End Sub

Пример к заданию 2.

Sub PRIM2_1()

Dim A, B As Single

A = Val(InputBox(""))

B = Val(InputBox(""))

If (A - B) > 0 Then

C = Sqr(A - B)

Else

C = (A - B) ^ 2

End If

MsgBox "A= " & A & " " & "B= " & B, _

vbInformation, "C= " & Format(C, "FIXED")

End Sub

Пример к заданию 3.

Sub PRIM3_Цикл_do()

'Вычисление значения функции F =Sin(X ^ 2 + 2 * X)

'Объявление типов переменных X, H, F,S

Dim X, H, F As Single

Dim S As String

'Задание начальных значений

X = 0

H = 0.1

S = 0

'Начало цикла с предусловием

Do While X <= 1.4

'Вычисление значений функции в цикле в формате с фиксированной точкой

F = Format(Sin(X ^ 2 + 2 * X), "FIXED")

'Суммирование значений функции для вывода в одну строку

S = S + " " + Str(F)

'Изменение параметра цикла на величину шага

X = X + H

'Окончание цикла

Loop

'Вывод результата в диалоговое окно

MsgBox "Значения функции", vbInformation, "S= " & S

'Конц записи программы

End Sub

Пример 1 к заданию 4.

Sub PRIM4_МАССИВ_A()

'Объявление переменных I, J, K целого типа

Dim I, J, K As Integer

'Объявление переменных MIN, MAX и массива A(1 To 10)вещественного типа

Dim A(1 To 10), MIN, MAX As Single

'Объявление переменной S строкового типа

Dim S As String

'Начало цикла, где I- параметр цикла

For I = 1 To 10

'Заполнение элементов массива - A(I)случайными величинами

A(I) = (Rnd * 10 + I)

'Суммирование значений элементов в строку для вывода в окно

S = S + " " + Str(Format(A(I), "FIXED"))

'Продолжение цикла

Next I

'Вывод значений элементов массива в диалоговое окно

MsgBox "Вывод элементов массива", vbInformation, "S= " & S

'Задание начальных значений переменным MIN и MAX

MAX = A(1)

MIN = A(1)

'Начало цикла

For I = 2 To 10

'Поиск MIN путем сравнения MIN с последующими элементами

If A(I) < MIN Then MIN = A(I): J = I

'Поиск Mах путем сравнения Mах с последующими элементами

If A(I) > MAX Then MAX = A(I): K = I

'Продолжение цикла

Next I

'Вывод результата вычислений

MsgBox "Индексы мин. и макс. элементов " & (Chr(10) & Chr(13)) _

& "j= " & J & " " & " k= " & K, vbInformation, _

" MIN= " & Str(Format(MIN, "fixed")) & " " & " MAX= " & Str(Format(MAX, "fixed"))

'Конец кода программы

End Sub

Пример 2 к заданию 4.

Sub prim5_Массив_B()

Dim B(1 To 10), I, N, S As Integer

Dim S1 As String

S = 0

For I = 1 To 10

B(I) = Val(InputBox(""))

S1 = S1 + " " + Str(B(I))

If (B(I) >= -5) And (B(I) <= 35) Then S = S + B(I)

Next I

MsgBox "Вывод массива в строку", vbInformation, "s1= " & S1

MsgBox "Сумма значений из указанного диапазона [-5,35]" _

, vbInformation, " s= " & S

End Sub


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



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