NetNado
  Найти на сайте:

Учащимся

Учителям



Лабораторная работа №5 Обработка массивов в среде vb


Лабораторные работы по VB стр


Лабораторная работа №5

Обработка массивов в среде VB

1. Цель работы:

Отработка навыков описания и обработки одномерных и двумерных массивов. Использование операторов цикла и ветвления для решения различных задач. Анализ задач, поиск оптимального решения и разработке интерфейса.

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

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

  • Описание и способы создания массивов. Их реализация в среде VB.

  • Объекты VB, используемые при создании и обработке массивов.

3. Задание

а) Создать программу для сортировки по убыванию одномерного массива. Массив вводится с клавиатуры.

в) Создать двумерный массив, состоящий из 5 строк и 7 столбцов. Найти произведение отличных от нуля элементов главной диагонали, максимальный элемент в каждом столбце и количество элементов, имеющих значения в интервале от -1 до 2..

Теоретические сведения.

Массив – однородная последовательность пронумерованных элементов, объединенная общим именем. Описание массива выполняется оператором Dim, имеющим следующий формат:

  1. для одномерного массива

Dim имя ([нач. значение индекса to] кон. значение индекса) As тип элементов.

Например, Dim A(15) As string или Dim B(1 to 30) As Integer.

  1. для двумерного массива

Dim имя ([нач. значение индекса строки to] кон. значение индекса строки,[нач. значение индекса столбца to] кон. значение индекса столбца) As тип элементов.

Например, Dim A(15,10) As string или Dim B(1 to 30,2 to 10) As Integer.

Начальное значение индекса можно не указывать, тогда оно по умолчанию равно 0.
Пример 1.Создать одномерный массив, задавая его элементы с клавиатуры и отсортировать его элементы по убыванию.



Блок-схема

алгоритма создания одномерного массива
Для реализации циклического алгоритма, создающего массив, используем оператор FOR-NEXT (с параметром)
Форма, с которой придется работать, должна иметь следующие объекты: три командные кнопки, два поля списков для вывода элементов исходного массива и отсортированного массива.


ListBox


:

Создаем программный код с использованием цикла FOR- NEXT.

Объявляем массив (без указания количества элементов) и переменные, используемые в программных кодах обеих кнопок в модуле General (Declarations)
Dim a(), 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
Программный код кнопки «Сортировка» создан с использованием следующего принципа: в цикле каждый предыдущий элемент массива a(I) сравнивается со следующим a(J) и, если его значение меньше, то элементы меняются местами с помощью промежуточной переменной d, где временно хранится значение элемента a(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 a(I) < a(J) Then

d = a(I)

a(I) = a(J)

a(J) = d

End If

Next J

Next I

For I = 1 To n

List2.AddItem Str(a(I))

Next I

End Sub
Пример 2. Создать двумерный массив, состоящий из 5 строк и 7 столбцов. Найти произведение отличных от нуля элементов главной диагонали, максимальный элемент в каждом столбце и количество элементов, имеющих значение от -1 до 2.

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

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

Программный код будет следующим:
Dim a(1 to 5, 1 to 7) As Single, i As Integer, j As Integer

Randomize timer

Rem цикл по строкам

For i=1 to 5

Rem цикл по столбцам

For j=1 to 7

a(i,j)=-2+RND*(5-(-2))

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

a(i,j)=round(a(i,j),3)

Print a(i,j),

Next j

Print

Next i

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

Dim p As Single

P=1

For i=1 to 5

If a(i,i)<>0 then p=p* a(i,i)

Next i

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

Rem

Dim m As Single

For j=1 to 7

m= a(1,j)

For i=2 to 5

If a(i,j)>m then m= a(i,j)

Next i

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

Next j

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

Dim k As Integer

k=0

For i=1 to 5

For j=1 to 7

If a(i,j)>-1 and a(i,j)<2 then k=k+1

Next j

Next i

Print “Элементов из интервала -1, 2”; k
Самостоятельно

  1. Создайте блок-схему для кнопки «Сортировка» первого примера.

  2. Создайте блок-схему для второго примера.

страница 1


скачать

Другие похожие работы:




Документы

архив: 1 стр.



Документы

архив: 1 стр.

Документы

архив: 1 стр.