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


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



ЗНАЕТЕ ЛИ ВЫ?

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



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

Цель

Создание программы обработки двумерного массива А(5,5).

Входные данные: элементы массива.

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

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

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

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

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

Расположение пустой надписи

 

На второй форме располагаются 1 текстовая надпись, 25 текстовых полей для вывода данных; 1 кнопка (Закрыть) для закрытия формы.

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

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

 

Таблица 2.9

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

Элемент управления Свойство Имя Свойство Caption
     
Форма Form1 Операции с двумерным массивом
Надпись1 Label1  
Надпись2 Label2  
Надпись3 Label3  
Надпись4 Label4  
Надпись5 Label5  
Надпись6 Label6 Выбор операции
Надпись7 Label7 *
Текстовое поле1 Первый -
Текстовое поле2 Второй -
Текстовое поле3 Третий -
Текстовое поле4 Четвертый -
Текстовое поле5 Пятый -
Текстовое поле6 Результат -
Кнопка1 Command1 Ввод данных
Кнопка2 Command2 ОК
Кнопка3 Command3 Выход/Ввод новой матрицы
Список List1 -
Флажок1 Check1 Вывод элементов матрицы
Флажок2 Check2 Ввод новой матрицы
Рамка1 Frame1 Ввод данных

 

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

 

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

 

Таблица 2.10

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

Элемент управления Свойство Name Свойство Caption
Форма Form2 Вывод элементов матрицы
Надпись1 Label1 Элементы матрицы
Массив из 25 элементов Текстовое поле * Text1 -
Кнопка1 Command1 Закрыть

* - для создания массива из 25 текстовых полей выполните следующие операции: создайте текстовое поле Text1, выделите это текстовое поле и скопируйте с помощью контекстного меню (Copy), вставьте скопированное текстовое поле в форму (Paste), подтвердите запрос о создании массива текстовых полей, построчно вставьте 25 полей (5х5) (рис. 2.15)

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

Для первой диалоговой формы:

 

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

Option Base 1

'Объявление квадратной матрицы из целых чисел

Dim A(5, 5) As Integer

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

Dim f As Integer

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

Private Sub Command1_Click()

'Объявление счетчика строки матрицы

Static i

'Если переменная f содержит единицу (повторный ввод данных)

'обнуляем счетчик строк матрицы и переменной f присваиваем ноль

If f = 1 Then

i = 1

f = 0

End If

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

If i <= 5 Then

A(i+1, 1) = Val(Первый.Text)

A(i+1, 2) = Val(Второй.Text)

A(i+1, 3) = Val(Третий.Text)

A(i+1, 4) = Val(Четвертый.Text)

A(i+1, 5) = Val(Пятый.Text)

i = i + 1

'Деактивация кнопки после окончания ввода элементов матрицы

If i >= 5 Then

Command1.Enabled = False

End If

End If

'Очистка текстовых полей

Первый.Text = ""

Второй.Text = ""

Третий.Text = ""

Четвертый.Text = ""

Пятый.Text = ""

'Установка курсора в текстовое поле

Первый.SetFocus

End Sub

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

Private Sub Command2_Click()

'Проверка включения флажка на вывод элементов матрицы

If Check1.Value = 1 Then

'Вывод элементов матрицы в форму

For j = 1 To 5

Form2.Text1(j-1).Text = A(1, j)

Next

For j = 6 To 10

Form2.Text1(j-1).Text = A(2, j - 5)

Next

For j = 11 To 15

Form2.Text1(j-1).Text = A(3, j - 10)

Next

For j = 16 To 20

Form2.Text1(j-1).Text = A(4, j - 15)

Next

For j = 21 To 25

Form2.Text1(j-1).Text = A(5, j - 20)

Next

'Открытие формы с элементами матрицы

Form2.Show

End If

'Объявление переменных

Dim M As Integer

Dim Sum As Integer

'Определение максимального элемента

If List1.Text = "Максимум" Then

M = A(1, 1)

For i = 1 To 5

For j = 1 To 5

If A(i, j) >= M Then

M = A(i, j)

End If

Next j

Next i

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

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

'Вывод надписи "Максимум"

Label7.Caption = "Максимум"

End If

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

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

Sum = 0

For i = 1 To 5

For j = 1 To 5

Sum = Sum + A(i, j)

Next j

Next i

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

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

'Вывод надписи "Сумма"

Label7.Caption = "Сумма"

End If

End Sub

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

Private Sub Command3_Click()

'Проверка включения флажка на ввод новой матрицы

If Check2.Value = 1 Then

'Проверка активации кнопки ввода данных

If Command1.Enabled = False Then

Command1.Enabled = True

f = 1

End If

'Установка курсора в текстовое поле

Первый.SetFocus

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

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

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

Label7.Caption = ""

'Выход из программы

Else: End

End If

End Sub

Для второй диалоговой формы:

 

’Процедура скрытия формы с элементами матрицы

Private Sub Command1_Click()

Form2.Hide

End Sub

 

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

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

 

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

 

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

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

 

 

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

Обработка символьных данных



Поделиться:


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

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