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

Блок-схема

Рис. 24 Блок-схема

алгоритма создания одномерного массива

Для реализации циклического алгоритма, создающего массив, используем оператор FOR-NEXT (с параметром).

Форма должна иметь следующие объекты: три командные кнопки, два поля списков для вывода элементов исходного массива и отсортированного массива (Рис.25).

ListBox

Рис 25. Внешний вид формы

Создадим программный код. Объявим одномерный динамичный массив А() и переменные, используемые в программных кодах обеих кнопок в модуле General (Declarations)

Dim А(), I As Integer, n As Integer

‘ Программный код кнопки «Создание»

Private Sub Command1_Click()

n = Val(InputBox("Введите число элементов в массиве", "Размерность массива"))

‘ Укажем размерность

ReDim a(n) As Single

For I = 1 To n

a(I) = Val(InputBox("a(i)=", "Ввод элементов массива"))

List1.AddItem Str(a(I))

Next I

End Sub

Программный код кнопки «Сортировка» создан с использованием следующего принципа: в цикле каждый предыдущий элемент массива А(I) сравнивается со следующим А(J) и, если его значение меньше, то элементы меняются местами с помощью промежуточной переменной d, временно сохраняющей значение элемента А(I).

Private Sub Command2_Click()

Dim J As Integer, D As Single

For I = 1 To n - 1

For J = I + 1 To n

If А(I) < А(J) Then

D = А(I)

А(I) = А(J)

А(J) = D

End If

Next J

Next I

For I = 1 To n

List2.AddItem Str(А(I))

Next I

End Sub

Пример 2.

Создать двумерный массив F( 5 , 7 ) случайных вещественных чисел на интервале [-2,5]. Найти:

  1. произведение отличных от нуля элементов главной диагонали;

  2. максимальный элемент в каждом столбце;

  3. количество элементов, значения которых находятся в интервале [-1 ; 2]

Решение:

Создайте форму достаточно большого размера, т.к. все результаты обработки будут выводиться на форму методом Print. На форме разместите две командные кнопки «Пуск» и «Выход».

Для создания массива используем датчик случайных чисел RND. Чтобы последовательность случайных чисел не повторялась, используем оператор Randomize Timer.

Программный код:

Dim F(1 to 5, 1 to 7) As Single, i As Integer, j As Integer

Randomize timer

‘ Цикл по строкам

For i=1 to 5

‘ Цикл по столбцам

For j=1 to 7

F(i,j)=-2+RND(1)*7

‘ округление до трех знаков после запятой

F(i,j)=Round(F(i,j),3)

Print F(i,j),

Next j

Print

Next i

‘ Произведение элементов главной диагонали массива

Dim p As Single

P=1

For i=1 to 5

For j=1 to 7

If F(i,j) = 0 Then goto 1

If i = j Then p=p* F(i,j)

1 Next j

Next i

Print “Произведение элементов главной диагонали массива”; p

‘ Нахождение максимального элемента в столбце.

Dim Max As Single

For j = 1 to 7

Max = F(1,j)

For I = 2 to 5

If F(i,j) > Max Then Max = F(i,j)

Next i

Print “Максимальный элемент в ”; j; “ столбцe ”; Max

Next j

‘ Подсчет элементов из интервала [-1, 2]

Dim k As Integer

k=0

For i=1 to 5

For j=1 to 7

If F(i,j) > -1 Then

If F(i,j) < 2 Then k=k+1

End If

Next j

Next i

Print “Элементов из интервала [ -1, 2]”; k

Задание для самостоятельного выполнения.

    1. Найти среднее арифметическое максимального и минимального элементов массива A(4,7).