Студопедия

Главная страница Случайная страница

Разделы сайта

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






D. Задача на выбор ветви из набора условий - блок Select Case






Задание: массив tanker(к) содержит названия танкеров, массив capacity(к) - соответствующую вместимость. Разделить массивы на 3 группы в зависимости от вместимости (до 30 000, 30 000 - 100 000, более 100 000). Вывести результаты в массив поля списка.

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

1. Создать на форме, см. рис. 2.6

o элементы управления CommandButton, Label для вывода набора символов - условных названий танкеров, см. код ниже,

o 2 элемента управления ListBox для вывода массивов названий и вместимости танкеров, см. код процедурыForm_Load (),

o 2 массива элементов управления ListBox: каждый из 3-х элементов для вывода результатов деления объектов на 3 группы:

§ List3(0) - List3(2),

§ List4(0) - List4(2); следует заполнить массивы ListBox несколькими нулями, для этого использовать их свойствоList,

§ ввести код, данный ниже, пояснения даны под комментариями:


Рис. 2.6. Схема формы

(General) (Declarations)Dim tanker(24) As String ' описание массива названий танкеров' описание массива вместимостей танкеровDim capacity(24) As Long Private Sub Form_Load() Dim j As Integer, i As Integer, ch As String ' ch - символ - условное название танкераch = " A" ' формирование названий и вместимости танкеров, вывод ' данныхFor j = 0 To 21 Label1.Caption = chtanker(j) = ch ' массив условных названий танкеров, ' формирование случайных чисел, характеризующих ' вместимостьcapacity(j) = Int(Rnd ^ 3 * 1000000 + 1) List1.List(j) = tanker(j) ' вывод в поле List1 названий List2.List(j) = capacity(j) ' вывод в поле List2 ' вместимостей' изменить символ - название танкера. Функция Asc() ' возвращает значение типа Integer, представляющее ' код символа для первого символа строки, функция' Chr() возвращает значение типа String, содержащее ' символ, соответствующий указанному коду (набор' символов ANSI)ch = Chr(Asc(ch) + 1)' вывод в поле Label1 символов - условных названий ' танкеровLabel1.Caption = Label1.Caption & ch Next jcapacity(j) = -1 ' создание признака конца массива End SubPrivate Sub Command1_Click()Dim j As Integer ' переменные i1, i2, i3 определяют позиции элементов в ' массивах объектовDim i1 As Integer, i2 As Integer, i3 As Integer j = 0: i1 = 0: i2 = 0: i3 = 0' деление элементов массивов на 3 группыDo Until capacity(j) = -1 Select Case capacity(j)Case Is < 30000: List3(0).List(i1) = capacity(j)List4(0).List(i1) = tanker(j): i1 = i1 + 1 Case Is < 100000: List3(1).List(i2) = capacity(j)List4(1).List(i2) = tanker(j): i2 = i2 + 1Case Is > = 100000: List3(2).List(i3) = capacity(j)List4(2).List(i3) = tanker(j): i3 = i3 + 1End Selectj = j + 1LoopEnd Sub

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

Сортировка. Сортировка выполняется попарным сравнением сортируемых элементов (например, элементов массива). В общем случае для сортировки массива из N элементов требуется N*(N-1)/2 сравнений. В случае сортировки по убыванию, например, сравнивается к-элемент массива с предыдущим. Если он больше предыдущего, то их меняют местами, затем сравнивается следующая пара и.т.д. Ниже приведены элементарные примеры.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.