Студопедия — Практическая работа 12. Создание процедуры Sub
Студопедия Главная Случайная страница Обратная связь

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

Практическая работа 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; просмотров: 525. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

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

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

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

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

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