Программирование многомерных массивов. Двумерный массив, содержащий десять строк и десять столбцов

Страницы работы

Фрагмент текста работы

ЛЕКЦИЯ № 7

ПРОГРАММИРОВАНИЕ МНОГОМЕРНЫХ МАССИВОВ

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

Частным случаем многомерных массивов является матрица или двумерный массив. При работе с двумерными массивами используются два индекса: первый указывает на номер строки, а второй определяет номер столбца таблицы. Рассмотрим двумерный массив, состоящий из ста элементов: десяти строк и десяти столбцов (см. таблицу ).

Таблица. Двумерный массив, содержащий десять строк и десять столбцов.

I\J

1

2

3

4

5

6

7

8

9

10

1

2

3

5

8

1

23

17

54

36

36.45

2

4

54

5

9

8

15

45

5.2

5.7

25.4

3

-8

5

76

43

76

12

45

32

4.5

2.1

4

-45

7

98.12

64

43

45

4

1

3

2

5

-2

7

-32

1

26

79

21

19

89

478

6

-7

0

-4

1

34

48

21

54

65

54

7

9

3

0

21

16

78

13

68

45

65

8

4

5

21.4

13

24

98

14

14

25

21

9

2

0

21.1

14

46

-72

-4

-9

134

12

10

8

7

12

14

-78

-98

-4

12

12

32

Ввод двумерного массива целесообразно осуществлять из файла, так как при отладке программы экономится время на ввод значений элементов массива. В качестве примера напишем программу, осуществляющую ввод значений элементов массива и отображающую ее в элементе MSFlexGrid. Создайте текстовый файл в текстовом редакторе Блокнот, который содержит приведенную выше таблицу (см. рис.).  Приложение будет содержать  систему меню. В пункте меню File будут находиться подпункты Open… - для открытия файла, Save As… для сохранения файлов и Exit для выхода из программы. Меню в Visual Basic создается с помощью редактора меню. Выберите пункт меню Visual Basic Tools, а в выпадающем меню подпункт Menu Editor… На экране появится окно редактора меню (см. рис. 27). 

Рис. 27. Окно редактора меню. 

Рассмотрим основные поля и клавиши редактора. Свойство Caption отображает на экране пункт меню, а свойство Name присваивает имя пункту меню. Поле Shortcut позволяет установить «горячие клавиши»  для пункта меню. Для создания подпункта меню, необходимо нажать на стрелку вправо, расположенную рядом с клавишами Next, Insert и

Delete. 

Создадим меню нашего приложения. Для создания меню выполните следующие действия:

1.  В поле Caption введите File.

2.  В поле Name введите mnuFile. Префикс mnu говорит программисту о том, что этот объект является пунктом меню.

3.  Нажмите кнопку Next. Затем, для того чтобы создать подпункт меню, нажмите на кнопку .

4.  В поле Caption наберите Open…, а в поле Name nmuOpen. Нажмите на кнопку Next.

5.  В поле Caption введите Save As…, в качестве имени подпункта меню введите mnuSave.

6.  Для того чтобы отделить пункты меню от выхода из программы,  необходимо поставить разделитель. Для этого в поле Caption наберите знак -, а в поле Name введите mnuSep (от английского Separation - разделение), затем, нажмите кнопку Next.

7.  И, наконец, добавьте последний пункт меню. В поле Caption введите Exit, а в поле Name введите mnuExit. В результате окно редактора меню должно выглядеть примерно так как показано на рисунке 28.

 

Рис. 28. Вид окна редактора меню.

8.  Нажмите на кнопку Ok

Пункты меню, так же как и командные кнопки обладают событием Click. Поэтому с ними можно работать также как и с кнопками.

Наша программа будет производить следующие действия: вводить двумерный массив из текстового файла, выводить его в MSflexGrid и в файл. Форма приложения приведена на рисунке 29.

 

Рис. 29. Изображение формы приложения с выпадающим меню.

Программный код приложения приведен ниже:

Dim a() As Single, n As Integer, m As Integer

Private Sub mnuExit_Click()

End

End Sub

Private Sub mnuOpen_Click()

Dim s As String, i As Integer, j As Integer CommonDialog1.Action = 1 s = CommonDialog1.FileName

Open s For Input As #1

Input #1, n, m

ReDim a(1 To n, 1 To m) As Single

For i = 1 To n

For j = 1 To m

Input #1, a(i, j)

Next j

Next i

Close #1

End Sub

Private Sub mnuSave_Click()

Dim s As String, i As Integer, j As Integer CommonDialog1.Action = 2 s = CommonDialog1.FileName

Open s For Output As #1

With MSFlexGrid1

.Rows = n + 1

.Cols = m + 1

For i = 1 To n

.Col = 0

.Row = i

.Text = CStr(i)

For j = 1 To m

.Row = 0

.Col = j

.Text = CStr(j)

.Row = i

.Text = CStr(a(i, j))

Print #1, a(i, j); " ";

Next j

Print #1, ""

Next i

Close #1

End With

End Sub

Приведенный выше программный код требует пояснений. В нем используется оператор With…End With. Данный оператор позволяет обращаться к свойствам объекта, описанного после ключевого слова With. Оператор заканчивается ключевым словом End With.  Между   ключевыми   словами With и End With  записываются  свойства  объекта,  перед которыми ставится точка.

Рассмотрим еще один пример работы с двумерными массивами. Создадим программу, определяющую наименьшие элементы строк двумерного массива, и записывающую их в одномерный массив. Форма приложения будет содержать два текстовых окна Text1 и Text2, куда будут выводиться соответственно одномерный и двумерный массивы. Ввод двумерного массива будет осуществляться из файла, а вывод одномерного массива только в текстовое окно. Форма приложения в момент выполнения представлена на рисунке

Похожие материалы

Информация о работе