- •Центральный филиал
- •Тема 6: «Моделирование, алгоритмизация и программирование
- •Тема 6.6. Программирование задач с циклической структурой в среде
- •Литература
- •Содержание занятия и методика его проведения
- •1. Составление схемы алгоритма решения задачи
- •З адание 1. Составить схему алгоритма для целенаправленного выбора из заданного множества g осуждённых по определённым статьям или соответствующим срокам.
- •Вопросы для самопроверки
З адание 1. Составить схему алгоритма для целенаправленного выбора из заданного множества g осуждённых по определённым статьям или соответствующим срокам.
Порядок выполнения задания 1.
Входные параметры: Исходное множество осуждённых – G, критерий выбора K (номер статьи или срок заключения).
Выходные параметры: Найденное подмножество осуждённых, удовлетворяющих критерию выбора K.
Для решения поставленной задачи необходимо:
1. Ввести критерии выбора осуждённых K из заданного множества G (номер статьи или срок заключения).
2. Организовать цикл перебора (от 1 до n, где n мощность исходного множества G, т.е. количество осуждённых) всех осуждённых из заданного множества и выбор тех, чьи параметры удовлетворяют введённым на шаге 1 значениям.
3. Вывести на экран список осуждённых, найденных на шаге 2.
Схема данного алгоритма представлена на рис. 1.
2. Составление программ решения задач с циклической структурой
Задание 2. Написать программу для целенаправленного выбора из заданного перечня осуждённых по определённым статьям или соответствующим срокам заключения (см. алгоритм из задания 1, рис. 1). Ввод данных осуществить через текстовые окна. Пример формы представлен на рис. 2.
Порядок выполнения задания 2.
2.1. Включите компьютер и зарегистрируйтесь в системе под именем пользователя Студент.
2.2. Щёлкните два раза по пиктограмме на рабочем столе Visual Basic и создайте стандартное приложение. Для этого щёлкните по пиктограмме Standard.exe. Откроется новый проект Visual Basic Project 1 и окно новой формы Form1.
Рис. 2. Образец формы для задания 2
2.3. Используя панель
инструментов (ToolBox),
расположите
на форме в соответствии с рис. 2 четыре
текстовых окна
,
два комбинированных списка (ComboBox)
и восемь меток. Сделайте в них надписи,
поясняющие назначение текстовых окон.
Под меткой Результаты
поиска
расположите элемент PictureBox.
Разместите три командные кнопки
и сделайте надписи на них «Найти
по статье»,
«Найти по
мере пресечения»
и «Ввести
данные».
2.4. Выделите объект Combo1 и напишите в его свойстве Text следующие слова: Ст. 105. Раскройте свойство List и напишите в нём список возможных статей для выбора, каждую новую статью добавляя нажатием клавиши Enter (Например, Ст. 105, Ст. 273, Ст. 278, Ст. 139). Скопируйте объект Combo1 (выделите его мышкой и нажмите Правка ► Копировать) далее нажмите Правка ► Вставить (на вопрос диалогового окна ответьте Нет) и расположите копию объекта Combo1 на форме в соответствии с рис. 3.21. Заметьте, что имя этого объекта изменилось на Combo2.
2.5. Установите свойство Text текстового окна Text4 равное 1.
2.6. Перейдите в
окно кода программы. Для этого щёлкните
по кнопке
(Показать
код) справа
от формы в окне проводника проектов и
выберите следующие разделы:
Запишите в разделе объявлений глобальные переменные программы:
Dim i As Integer
Dim k As Integer
Dim str As String
Dim fam(10) As String
Dim statay(10) As String
Dim mera(10) As Integer
Dim j As Integer
2.7. Вернитесь в
окно формы, нажав кнопку «Показать
объект»
проводника проектов. Щёлкните два раза
по свободной области формы. В результате
откроется окно кода программы. Запишите
в код процедуры, отвечающий за событие
Form_Load
(создание
формы).
Private Sub Form_Load()
k = 0
Text1.Text = CStr(k + 1)
End Sub
2.8. Вернитесь в окно формы, нажав кнопку «Показать объект» проводника проектов. Откройте окно редактирования кода первой командной кнопки Command1 «Найти по статье». Для этого дважды щёлкните по этой кнопке, в результате перед Вами откроется окно с кодом программы. Для события Click напишите программу процедуры:
Private Sub Command1_Click()
Picture1.Cls
str = Combo2.Text
j = 0
For i = 1 To k
If Combo2.Text = statay(i) Then
Picture1.Print Tab; fam(i), Tab; statay(i), Spc(5); mera(i)
j = j + 1
End If
Next i
' Вывод предупреждения об отсутствии осужденных по данной статье
If j = 0 Then MsgBox ("Осужденных по такой статье нет")
End Sub
2.9. Вернитесь в окно формы, нажав кнопку «Показать объект» проводника проектов. Откройте окно редактирования кода второй командной кнопки Command2 «Найти по мере пресечения». Для этого дважды щёлкните по этой кнопке, в результате перед Вами откроется окно с кодом программы. Для события Click напишите программу процедуры:
Private Sub Command2_Click()
Dim m As Integer
j = 0
Picture1.Cls
m = Val(Text4.Text)
If m <= 0 Then
MsgBox ("Вы неправильно ввели меру пресечения")
Else
For i = 1 To k
If m = mera(i) Then
Picture1.Print Tab; fam(i), Tab; statay(i), Spc(5); mera(i)
j = j + 1
End If
Next i
' Вывод предупреждения об отсутствии осужденных по данной статье
If j = 0 Then MsgBox ("Осужденных на такой срок нет")
End If
End Sub
2.10. Вернитесь в окно формы, нажав кнопку «Показать объект» проводника проектов. Откройте окно редактирования кода третьей командной кнопки Command3 «Ввести данные». Для этого дважды щёлкните по этой кнопке, в результате перед Вами откроется окно с кодом программы. Для события Click напишите программу процедуры:
Private Sub Command3_Click()
k = k + 1
fam(k) = Text2.Text
statay(k) = Combo1.Text
mera(k) = Val(Text3.Text)
Text1.Text = CStr(k + 1)
Text2.Text = ""
Text3.Text = ""
End Sub
2.11.
Запустите программу, нажав кнопку
«Старт»
на панели
инструментов. Введите порядка 10 различных
осужденных с разными статьями и мерами
заключения. Например, Иванов И.И. ст. 105
12, Дмитриев С.В. ст. 105 13, Путилин П.Л. ст.
273 6, Нестеров Н.С. ст. 105 12 и т.д.
2.12. Организуйте поиск осуждённых по статье 105. Для этого выберите из списка статью 105 и нажмите кнопку «Найти по статье». Посмотрите результаты поиска и сравните его с рис. 3.
Рис. 3. Результаты поиска осужденных по ст. 105
2.13. Самостоятельно организуйте поиск осуждённых по мере пресечения.
2.14 Сохраните проект в своей папке на диске C:\Мои документы и доложите преподавателю о выполнении задания.
Задание 3. В соответствии с Вашим вариантом написать программу для реализации алгоритма решения задачи из п 3.2.3 (задание 6). Примерная форма приложения представлена на рис. 4.
Порядок выполнения задания 3.
3.1. Создайте новый проект VB (Файл ► Новый проект ► Standard EXE).
3.2. Используя панель инструментов (ToolBox), расположите на форме в соответствии с рис. 4 одно тестовое окно , две метки и сделайте в них надписи, поясняющие назначение текстовых окон. Разместите две командные кнопки и сделайте надписи на них «Вычислить» и «Exit».
Рис. 4. Образец формы для задания 3
3.3. Откройте окно редактирования кода первой командной кнопки «Вычислить». Для этого дважды щёлкните по этой кнопке, в результате перед Вами откроется окно с кодом программы. Для события Click напишите программу процедуры (для примера ниже приведена процедура для расчёта суммы ряда из задания 6 п 3.2.3):
Private Sub Command1_Click()
Dim s As Double
Dim y As Double
s = 0
For i = 1 To 40
y = (i + 6) * 3 ^ (7 * i)
s = s + y
Next i
Text1.Text = CStr(s)
End Sub
3.4. Вернитесь в окно формы, нажав кнопку «Показать объект» проводника проектов.
3.5. Дважды щёлкните по кнопке «Exit», в результате перед Вами откроется окно с кодом программы. Для события Click напишите следующую команду Unload Form1, которая выгружает форму из оперативной памяти и завершает работу программы.
Private Sub Command2_Click()
Unload Form1
End Sub
3.6. Запустите программу, нажав кнопку «Старт» на панели инструментов. Нажмите кнопку «Вычислить». Посмотрите результат вычисления суммы ряда S.
3.7. Сохраните созданный проект и доложите о выполнении задания.
По команде преподавателя закройте все окна и завершите работу с Windows. Для этого нажмите кнопку «Пуск», выберите пункт «Завершение сеанса Студент». В появившемся диалоговом окне нажмите кнопку «Выход». Выключите компьютер.
