- •____________________________________________________________
- •Задачи, решения и ответы
- •3. Программный код
- •4. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •2. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •4. Ответ
- •2. Программный код :
- •5. Ответ
- •2. Программный код :
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ
- •2. Программный код
- •3. Ответ:
- •2. Программный код
- •4. Программный код
- •5. Ответ
- •Литература
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