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



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

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

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

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

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

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

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

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

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