Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
07.06.2015
Размер:
8.4 Mб
Скачать

3. Ответ

3.1. После щелчка мышью по кнопке «Ввод одномерного массива» появится окно ввода рис. 2.

Рис. 2.

3.2. Введем длину массива (число 35) и щелкнем кнопку « Вывод массива в текстовом окне», после чего вэтом окне появится массив чисел рис. 3.

Рис 3.

3.3. Теперь мы можем выполнить любую из предложенных на кнопках операций, например, нахождение суммы отрицательных элементов массива. Для этого необходимо щелкнуть соответствующую кнопку на форме и получим результат (рис. 4, рис. 5) и т.д.

Рис. 4. Рис. 5

Вывод:

Приведенное Windows-приложение дает возможность пользователям ПК создавать свои приложения, решающие подобные задачи.

Задача №8

Создать приложение «Работа с двумерными массивами», позволяющее вводить и выводить двумерные массивы любого типа, произвольной длины и производить различные вычисления с его элементами по указанию пользователя. В программе использовать текстовые файлы. Вывод результатов вычислений организовать в кнопках Command Button.

Решение:

Эскиз экранной формы представлен на рис. 1.

1. Расставим имена объектов на эскизе экранной формы.

CommandBatton

Рис 1.

2. Этапы решения задачи (алгоритм).

В начале программы нужно описать все переменные, которые будет использовать программа:

Dim q, n, m, а(500, 500), p, s аs String

Теперь делаем двойной щелчок на объект, для написания кода. При щелчке на кнопке «Пуск», отображается её код, который изначально выглядит так:

Private Sub Command1_Click()

End Sub

Программа должна создавать матрицу и отображать её в текстовом окне код объекта выглядит так:

Private Sub Command1_Click()

Включаем счётчик таймера:

Randomize Timer

Нажав на кнопку «Пуск», текстовое окно активируется:

Text1.Enabled = True

Выводим диалоговое окно InputBox для задания количества элементов по горизонтали:

n = InputBox("Введите количество элементов по горизонтали”, , _ "Размерность матрицы")

Выводим диалоговое окно InputBox для задания количества элементов по вертикали:

m = InputBox("Введите количество элементов по вертикали", , _ "Размерность матрицы")

Открываем файл «M.tmp» для записи в него данных (использованием RND):

Open "M.tmp" For Output As #1

Для сохранения формата ввода данных, перед добавлением матрицы в файл, ставим кавычки:

Print #1, """";

Добавляем данные в кратном цикле:

For i = 1 To m

If i > 1 Then Print #1,

For j = 1 To n

A (i, j) = Abs (Int (Rnd * (99 - 10)) - 99)

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

Next

Print #1, " "

Next

Close #1

Открываем файл «M.tmp»

Open "M.tmp" For Input As #2

With Text1

Do While Not EOF (2)

Input #2, t ‘Для считывания данных в переменную t

Присваиваем элементу Text1.Text значение переменной t:

Text1.Text = Text1.Text + t

i = i + 1

Loop

Close #2

End With

Теперь удалим временный файл:

Kill ("M.tmp")

End Sub

При нажатии кнопки «Пуск» и задании всех параметров, количество элементов по вертикали и по горизонтали, в текстовом поле появляется матрица:

При двойном нажатии на кнопку «Сумма», отображается её код. Задача программы посчитать сумму элементов матрицы над главной диагональю. Код объекта выглядит так:

Private Sub Command3_Click ()

Обнуляем сумму:

s = 0

Добавим данные в цикл:

For i = 1 To n

For j = 1 To m

Делаем проверку условием:

If i < j Then

s = s + A (i, j)

End If

Берем следующие значения i и j:

Next

Next

Отображения значение суммы на кнопке «Сумма»:

Command3.Caption = "S = " & s

End Sub.

Двойным нажатием на кнопку «Произведение» получаем её код. Задача программы - посчитать произведение элементов на побочной диагонали.

Код объекта выглядит так:

Private Sub Command4_Click()

p = 1

For i = 1 To n

For j = 1 To m

If i + j = n + 1 Then

p = p * A (i, j)

End If

Next

Next

Command4.Caption = "Р = " & p

End Sub

После появления матрицы в текстовом окне, нажимаем на кнопки «Произведение» или «Сумма», получаем результат произведения или суммы.

Кнопка «Очистить» очищает содержимое TextBox .

Код её выглядит так:

Private Sub Command5_Click()

Text1.Text = ""

Присваивает Text 1.Text значение пустого поля

Command4.Caption = "Произведение"

Присваивает Command4.Caption значение «Произведение»

Command3.Caption = "Сумма"

Присваивает Command3.Caption значение «Суммы»

End Sub

При нажатии кнопки «Выход» программа закрывается.

Код выглядит так:

Private Sub Command2_Click ()

End

End Sub

3. Программный код (в компактном виде).

Dim q, n, m, A(500, 500), p, s As String

Private Sub Command1_Click()

Randomize Timer

Text1.Enabled = True

n = InputBox("Введите количество элементов по горизонтали", , "n=")

m = InputBox("Введите количество элементов по вертикали", , "m=")

Open "M.tmp" For Output As #1

Print #1, """";

For i = 1 To m

If i > 1 Then Print #1,

For j = 1 To n

A(i, j) = Abs(Int(Rnd * (99 - 10)) - 99)

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

Next

Print #1, " "

Next

Close #1

Open "M.tmp" For Input As #2

With Text1

Do While Not EOF(2)

Input #2, t

Loop

Close #2

End With

Kill ("M.tmp")

Text1.Text = Text1.Text + t

i = i + 1

End Sub

Private Sub Command2_Click()

Text1.Text = ""

Command5.Caption = "Сумма"

Command4.Caption = "Произведение"

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Command4_Click()

p = 1

For i = 1 To n

For j = 1 To m

If i + j = n + 1 Then

p = p * A(i, j)

End If

Next

Next

Command4.Caption = "Р = " & p

End Sub

Private Sub Command5_Click()

s = 0

For i = 1 To n

For j = 1 To m

If i < j Then

s = s + A(i, j)

End If

Next

Next

Command5.Caption = "S = " & s

End Sub

Соседние файлы в папке Задания и примеры