Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Практическая работа 12. Создание процедуры Sub





Решается задача деления городов на группы в зависимости от соответствующей численности населения, которая задаeтся как набор случайных чисел. Рассматриваются 2 варианта:

· деление на группы с использованием блока Select Case,

· в блоках Case используется вызов процедуры (Call mList(i, k)).

Последовательность действий:

1. создать на форме объекты, данные на рис. 2.3

o 2 элемента управления ListBox (слева), содержащие списки названий городов и численности населения. Их идентификаторы: lstName, lstNum. Список из 20 названий, см. рис. 2.3 (Athen - Helsinki) вводится в поле свойстваList объекта lstName (окно свойств). После ввода каждого названия использовать клавиши CTRL + Enter, в конце ввода - клавишу Enter. Oбразуется список, индексация проводится с 0,

o 2 массива (каждый из 4-х элементов) объектов: lstNameGr(0) - lstNameGr(3) и lstNumGr(0) - lstNumGr(3)(справа вверху), в которые будет выводиться результат деления численности населения городов на группы. В поле свойства List каждого объекта - элемента массива нужно ввести несколько нулей (поле списка представляет собой элемент массива и если при обращении к j+1 элементу j элемент не определен, то появится сообщение об ошибке),

o элемент управления List1 (внизу), в который заносится информация, позволяющая проверить, обработан ли весь исходный список и указывающая, сколько городов содержится в каждом групповом списке,

o 2 объекта CommandВutton; свойствам Caption присвоить значение Select Case и Call mList(i,k),

2. ввести код, данный ниже.

Переменная j используется для индексации элемeнтов списков названий городов и численностей населения, а переменные i1, i2, i3, i4, i5 - для индексации численностей населения и названий городов в списках групп. 5-я группа создана для списка названий городов и соответствующих численностей населения, не попавших в предыдущие 4 группы.

Во второй строке кода Form_Load () проводится проверка названий городов: "If lstName.List(j) >= "A" Then: ". Код буквы А - наименьший и для всех названий городов задаeтся численность населения; если список названий закончился, то численности присваивается значение -1.

(General) (Declarations) Dim j As IntegerPrivate Sub Form_Load() ' задать численность населенияFor j = 0 To 29If lstName.List(j) >= "A" ThenlstNum.List(j) = Int(Rnd ^ 3 * 2000000 + 100000)ElselstNum.List(j) = -1End IfNext jEnd SubPrivate Sub Command1_Click()Dim i1 As Integer, i2 As Integer, i3 As IntegerDim i4 As Integer, i5 As Integerj = 0: i1 = 0: i2 = 0: i3 = 0: i4 = 0: i5 = 0Do Until Val (lstNum.List(j)) <= 0Select Case Val(lstNum.List(j))Case Is < 100000: i5 = i5 + 1lst1.List(5) = "i5=" & i5Case Is < 500000lstNameGr(0).List(i1) = lstName.List(j)lstNumGr(0).List(i1) = lstNum.List(j): i1 = i1 + 1lst1.List(1) = "i1=" & i1Case Is < 1000000lstNameGr(1).List(i2) = lstName.List(j)lstNumGr(1).List(i2) = lstNum.List(j): i2 = i2 + 1lst1.List(2) = "i2=" & i2Case Is < 1500000lstNameGr(2).List(i3) = lstName.List(j)lstNumGr(2).List(i3) = lstNum.List(j): i3 = i3 + 1lst1.List(3) = "i3=" & i3Case Is < 2000000lstNameGr(3).List(i4) = lstName.List(j)lstNumGr(3).List(i4) = lstNum.List(j): i4 = i4 + 1lst1.List(4) = "i4=" & i4Case Is >= 2000000: i5 = i5 + 1lst1.List(5) = "i5=" & i5End Selectj = j + 1LoopEnd Sub

3. стартовать проект, сделать щелчок на командной кнопке Select Case, наблюдать результат.

Анализ блоков Case показывает, что код аналогичен; при организации работы блоков используются переменные j, i1, i2, i3, i4, i5 и индексы элементов массивов к(0, 1, 2, 3) элементов управления ListBox, например: lstName(0).List(i1) = lstName.List(j)

Создадим процедуру Sub mList(i As Integer, k As Integer), переменные i (i1, i2, i3, i4, i5) и k(0, 1, 2, 3) будем передавать как аргументы. Создание процедуры Добавить процедуру поле выведенного диалогового окна ввести имя процедуры mList в поле Тип сделать щелчок на Sub, в поле Район - щелчок на Public а ОК а выводятся инструкцииSub и End Sub, ввести аргументы процедуры: (i As Integer, k As Integer). Создаваемая процедура Sub представлена ниже, а обращение к ней, например для блока Case Is<500000 будет иметь вид: Call mList(i1, 0) - здесь i1 - индекс элемeнта в списке группы, а 0 - индекс элемента массива, (i - индекс элемента в списке группы, к - индекс элемента массива).

Public Sub mList(i As Integer, k As Integer)lstNameGr(k).List(i) = lstName.List(j)lstNumGr(k).List(i) = lstNum.List(j): i = i + 1lst1.List(k + 1) = "i = " & iEnd Sub

4. ввести код процедуры Command2_Click(),

5. стартовать проект, сделать щелчок на кнопке Call mList(i,k), наблюдать результат, рис. 2.3

Private Sub Command2_Click()Dim i1 As Integer, i2 As Integer, i3 As Integer, i4 As IntegerDim i5 As Integerj = 0: i1 = 0: i2 = 0: i3 = 0: i4 = 0: i5 = 0Do Until lstNum.List(j) <= 0Select Case Val(lstNum.List(j))Case Is < 100000: i5 = i5 + 1: lst1.List(5) = "i5=" & i5Case Is < 500000: Call mList(i1, 0)Case Is < 1000000: Call mList(i2, 1)Case Is < 1500000: Call mList(i3, 2)Case Is < 2000000: Call mList(i4, 3)Case Is >= 2000000: i5 = i5 + 1: lst1.List(5) = "i5=" & i5End Selectj = j + 1LoopEnd Sub

Рис. 2.3. Деление городов на группы в зависимости от соответствующей численности населения







Дата добавления: 2015-06-12; просмотров: 560. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия