Студопедия

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

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

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






Практическая работа 16. Оператор LIKE - сравнение элементов массивов со строкой, введeнной в диалоговом режиме; элемент управления Timer






Задание: создать в диалоговом режиме 4 массива национальностей, проживающих в 4-х странах (рис. 2.8 в центре вверху), затем вывести в массив ListBox из 4-х элементов (рис. 2.8 слева в центре). Ввести в диалоговом режиме одну из 10 - 16 национальностей (введeнных ранее), для ввода использовать текстовое поле (рис. 2.8 слева). С использованием оператора LIKEнайти страны проживания этой национальности. Обеспечить вывод результатов поиска в поля меток (рис. 2.8 4 поля метки слева внизу). Обеспечить перемещение (использовать элемент управления Timer) флага страны проживания после нахождения страны проживания.

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

1. Создать на форме элементы управления, данные на рис. 2.8 соответствующие идентификаторы приведены в коде, данном ниже:

o 3 командные кнопки, см. рис. 2.8

§ Command1 (Caption = Vergleichen (Muster)),

§ Command2 (Caption = Nationalitaet-Massiv),

§ Command3 (Caption = MassivList),

o 4 массива элементов TextBox: (Text1(0) - Text1(3)), (Text2(0) - Text2(3)), (Text3(0) - Text3(3)), (Text4(0) - Text4(3)) для ввода национальностей, рис.2.8 вверху в центре,

o массив ListBox из 4-х элементов для вывода 4-х масивов национальностей, слева в центре,

o 4 объекта Image, в качестве значений свойства Picture использовать символы флагов 4-х стран (файлы *. ico),

o 4 поля Label для вывода результатов, см. рис. 2.8 2-ой столбец слева внизу,

o несколько меток для надписей, см. рис. 2.5

o элемент управления TextBox (Text5) для ввода искомой национальности, рис. 2.5 выше полей Label (используемых для вывода результатов),

2. ввести код, затем стартовать проект,

3. в диалоговом режиме ввести национальности (для этого созданы 16 текстовых пoлей), сделать щелчок на кнопке " Nationalitaet-Massiv", затем - на кнопке - " Massiv-List",

4. ввести в поле Text5 одну из ранее введённых национальностей, далее сделать щелчок на кнопке " Vergleichen (Muster)". После выполнения поиска стартуют процедуры TimerК_Timer (), см. код и рис.2.8

(General) (Declarations)Option Compare TextDim res As BooleanDim muster As String ' описание шаблона для оператора Like ' zeile - описание вводимой строки для сравнения с шаблоном' (оператор Like)Dim zeile As String Dim i As Integer, j As Integer' х1 - х4 - переменные, обеспечивающие старт процедур ' TimerК_Timer(), Dim x1 As Variant, x2 As Variant, x3 As Variant, x4 As VariantDim deu(4) As String ' deu(4) - grossb(4) - массивы национальностей, проживающих в ' соответствующих 4-х странахDim oest(4) As String, span(4) As String, grossb(4) As String' создание массивов национальностей, проживающих в 4-х ' странах: deu(4) - grossb(4) (кнопка Nationalitaet-Massiv)Private Sub Command2_Click()For i = 1 To 4deu(i) = Text1(i - 1).Text: oest(i) = Text2(i - 1).Textspan(i) = Text3(i - 1).Text: grossb(i) = Text4(i - 1).TextNext iEnd Sub' вывод в массив элементов ListBox элементов массивов ' национальностей, см. рис. 5.4: командная кнопка Caption = ' MassivLISTPrivate Sub Command3_Click()For j = 1 To 4List1(0).List(j - 1) = deu(j): List1(1).List(j - 1) = oest(j)List1(2).List(j - 1) = span(j): List1(3).List(j - 1) = grossb(j)Next jEnd Sub' выполнение поиска - использование оператора Like; старт' процедур, обеспечивающих перемещение флаговPrivate Sub Command1_Click() ' ввод в диалоговом режиме искомой национальностиzeile = Text5.TextFor i = 1 To 4' в качестве шаблона используется массив, ' просматриваемый в циклеmuster = deu(i) ' переменной типа Boolean присваивается возвращае-' мое значениеres = zeile Like muster ' если переменная res есть True, то вывести название ' страны, где проживает национальность " zeile", вводимая в' диалоговом режиме; далее определяется код х1: (Asc(x1)), ' что обеспечивает выполнение процедуры Timer1_Timer() (см.' ниже), иначе - просматривать массив далееIf res Then Label11 = " Deutschland": x1 = Label11: x1 = Asc(x1): GoTo 301Next i' если res всегда есть False, то вывести поясняющий текст: ' " Deutschland - Nein" - " В Германии не проживает" Label11.Caption = " Deutschland - Nein" ' блоки 301 - 303 работают аналогично вышеописанному301 For i = 1 To 4muster = oest(i): res = zeile Like musterIf res Then Label12 = " Oesterreich": x2 = Label12: x2 = Asc(x2): GoTo 302Next iLabel12.Caption = " Oesterreich - Nein" 302 For i = 1 To 4muster = span(i): res = zeile Like musterIf res Then Label13 = " Spanien": x3 = Label13: x3 = Asc(x3): GoTo 303Next iLabel13.Caption = " Spanien - Nein" 303 For i = 1 To 4muster = grossb(i): res = zeile Like musterIf res Then Label14 = " Grossbritan.": x4 = Label14: x4 = Asc(x4): GoTo 304Next iLabel14.Caption = " Grossbritanien - Nein" 304 End Sub' 4 процедуры ниже обеспечивают перемещение флагов стран ' проживания национальности, вводимой в диалоговом режи-' ме (cм. процедуру Command1_Click()). Процедуры стартуют ' после того, как определены переменные х1 - х4, т.е. найдена ' странаPrivate Sub Timer1_Timer()Image1.Left = Int(80 * Rnd * x1): Image1.Top = Int(90 * Rnd * x1)End SubPrivate Sub Timer2_Timer()Image2.Left = Int(80 * Rnd * x2): Image2.Top = Int(90 * Rnd * x2)End SubPrivate Sub Timer3_Timer()Image3.Left = Int(80 * Rnd * x3): Image3.Top = Int(90 * Rnd * x3)End SubPrivate Sub Timer4_Timer()Image4.Left = Int(80 * Rnd * x4): Image4.Top = Int(90 * Rnd * x4)End Sub

Рис. 2.8. Оператор LIKE (Где проживает национальость:?)

Лекция 3:






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