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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Цель занятия – изучение операций по обработке одномерного массива с использованием конструкций условия.

 

Конструкция условия For...Next выполняет последовательность команд определенное число раз. Такую конструкцию называют циклом, а выполняемые ею программные коды — телом цикла.

Синтаксис конструкции For...Next следующий:

For счетчик = начальное значение То конечное значение [ Step шаг]

конструкции

Next [счетчик]

Первый аргумент конструкции — счетчик определяет имя переменной, которая будет считать количество выполнении цикла. Параметр начальное значение указывает числовое значение, которое присваивается переменной-счетчику перед первым выполнением цикла. Цикл выполняется до тех пор, пока значение счетчика не превысит конечного значения, указанного после ключевого слова . После каждого выполнения цикла значение счетчика изменяется на величину шага, указанную за ключевым словом Step. Ключевое слово Next обозначает конец тела цикла и является обязательным.

Перед каждым проходом цикла Visual Basic сравнивает значения счетчика и аргумента конечное значение. Если значение счетчика не превышает установленного значения конечное значение, то выполняются конструкции тела цикла. В противном случае управление переходит к следующей за Next конструкции. Например:

 

For n = 1 То 10 Step 2

m = m+1

Next

Здесь цикл выполняется пять раз при значениях счетчика n = 1, 3, 5, 7 и 9.

Ключевое слово Step можно опустить. В этом случае значение шага по умолчанию принимается равным 1.

 

Для создания в форме раскрывающегося списка используется объект типа ComboBox. Этот тип списка позволяет пользователю осуществлять выбор значения, вводимого в размещаемое сверху поле ввода, или выбирать значение из списка, открываемого нажатием кнопки со стрелкой, размещаемой с правой стороны.

Список данного типа удобно использовать в том случае, если вводимых значений много, а места в форме для расположения обычного списка не хватает.

 

В качестве примера рассмотрим создание программы обработки одномерного числового массива.

 

Входные данные: размер массива (size), элементы массива.

Выходные данные: сумма элементов (sum), минимальный элемент (min).

Разработка алгоритма: алгоритмы разработаны на предыдущих занятиях.

Диалоговая форма программы

Спроектируйте интерфейс программы с использованием элементов управления (рис. 2.13).

На форме располагаются 4 текстовых надписи (одна из них пустая), 2 текстовых поля для ввода данных, 1 - для вывода результата; раскрывающийся список для выбора операции; 4 кнопки: 1 для ввода размера (количество элементов) массива (Ввод размера), 1 для ввода элементов массива (Ввод массива), 1 для выполнения операции (ОК), 1 для выхода из программы (Выход).

 


Свойства объектов

В окне свойств объектов определите свойства каждого элемента управления:

Таблица 2.8

 

Свойства элементов управления

Элемент управления Свойство Имя Свойство Caption
     
Форма Form1 Операции с одномерным массивом
Надпись1 Label1 Размер
Надпись2 Label2 Элементы
Надпись3 Label3 *
Надпись4 Label4 Выбор операции
Текстовое поле1 РазмерМассива -
Текстовое поле2 ЭлементыМассива -
Текстовое поле3 Результат -
Кнопка1 Command1 Ввод размера
Кнопка2 Command2 Ввод массива
Кнопка3 Command3 ОК
Кнопка4 Command4 Выход
Раскрывающийся список Combo1 -

* - пустая надпись (надпись выводится в зависимости от типа операции)

В текстовых полях необходимо стереть заданный по умолчанию текст. В раскрывающемся списке в свойстве List наберите список операций: Сумма и Минимум.

 

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

 

'Установка индексации элементов массива (начинается с 1)

Option Base 1

'Объявление переменной целого типа для ввода размера массива

Dim size As Integer

'Объявление переменной целого типа (флага) для обеспечения многократного ввода данных

Dim f As Integer

'Объявление имени массива и максимального количества элементов

Dim A(100)

'Процедура ввода размера массива

Private Sub Command1_Click()

size = Val(РазмерМассива.Text)

Command1.Enabled = False

'Установка курсора в окно ввода элементов массива

ЭлементыМассива.SetFocus

'Активация кнопки ввода элементов массива в случае ее деактивации

If Command1.Enabled = False Then

Command2.Enabled = True

'Установка флага на единицу

f = 1

End If

'Очистка формы

Form1.Cls

'Очистка текстового поля

Результат.Text = ""

'Очистка надписи

Label3.Caption = ""

End Sub

'Процедура ввода элементов массива

Private Sub Command2_Click()

'Установка курсора в окно ввода элементов массива

ЭлементыМассива.SetFocus

'Объявление счетчика элементов массива (статическая переменная)

Static i

'Если флаг содержит единицу (повторный ввод данных) устанавливаем счетчик элементов массива на 0 и флаг устанавливаем на 0

If f = 1 Then

i = 0

f = 0

End If

'Операция ввода элементов массива

If i <= size Then

A(i+1) = Val(ЭлементыМассива.Text)

i = i + 1

'Очистка текстового поля ввода элементов массива

ЭлементыМассива.Text = ""

End If

'Деактивация кнопки ввода элементов массива и их вывод (индекс больше или равен количеству элементов массива)

If i >= size Then

Command2.Enabled = False

Command1.Enabled = True

Combo1.SetFocus

For i = 1 To size

Print Spc(1); A(i);

Next

End If

End Sub

'Процедура выполнения операций по обработке массива данных

Private Sub Command3_Click()

'Объявление переменных для хранения результатов обработки массива данных

Dim min As Double

Dim sum As Double

'Поиск минимального элемента

If Combo1.Text = "Минимум" Then

min = A(1)

For i = 1 To size

If A(i) <= min Then

min = A(i)

End If

Next

'Вывод минимального элемента

Label3.Caption = "Минимум"

Результат.Text = Str(min)

End If

'Вычисление суммы элементов массива

If Combo1.Text = "Сумма" Then

sum = 0

For i = 1 To size

sum = sum + A(i)

Next

'Вывод суммы элементов массива

Label3.Caption = "Сумма"

Результат.Text = Str(sum)

End If

End Sub

'Процедура выхода из программы

Private Sub Command4_Click()

End

End Sub

 

Практическое задание

1. Дополнительно запрограммируйте операцию поиска максимума, вычисления произведения элементов массива, среднего арифметического из элементов, суммы отрицательных и суммы положительных элементов, определение номера максимального элемента.

 

Контрольные вопросы

 

1. Объясните работу конструкции For… Next.

2. Объясните работу элемента управления ComboBox.

 

 

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



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 163; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.191.22 (0.015 с.)