Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Візуал Бейсік 2010 Глінський.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.12 Mб
Скачать

Контрольна робота № 3

Варіант № 1

  1. Яке значення логічного виразу 5 >= 3 And 6 < 7 Or 5 > 8?

  2. Запишіть логічний вираз для визначення, чи точка х належить від­різку [-5; 5) або (10; 15].

  3. Нарисуйте графічну схему і наведіть код обчислення (для введеного значення *) значення складеної функції у, яка задана формулою

  1. Розробіть проект розв’язування наступної задачі (наведіть ескіз фор­ми і код). На складі є чотири види товарів (пронумеровані числами від 1 до 4). Надати довідку про ціну і кількість товару, якщо на запит комп’ютера ввести номер товару.

Варіант № 2

  1. Яке значення логічного виразу 6 >= 4 And (6 < 8 Or 5 > 7)?

  2. Запишіть умову того, що ціле число а непарне і ділиться без остачі на 5.

  3. Нарисуйте графічну схему і наведіть код алгоритму дослідження, чи більше з двох введених чисел належить проміжку [0; 10]?

  4. Розробіть проект розв’язування наступної задачі (наведіть ескіз форми і код). У вас є чотири друга. Надайте довідку про дату народження і номер телефону друга, якщо на запит комп’ютера ввести його ім’я.

§ 16*. Списки

Список — це динамічна (зі змінною кількістю елементів) струк­тура даних, що містить дані зазвичай про об’єкти з деякої пре­дметної області. Списки застосовують для розв’язування задач інформаційно-пошукового характеру.

1. Поняття про списки. Розглянемо приклади даних, які варто зберігати у списках:

  1. перелік назв країн (Угорщина, Італія, Греція,..., Непал);

  2. назви столиць (Будапешт, Рим, Афіни, ...);

  3. кількість населення декількох країн;

  4. послідовність років: 2010, 2011, 2012, 2013 і т.д.;

  5. назви місяців (січень, лютий, березень, ...) тощо.

Термін «динамічна структура даних» означає, що кількість еле­ментів у списку в різні моменти часу може бути різною. У списку важливий порядок слідування даних, ним нехтувати не можна. Ну­мерація елементів у списку починається від нуля.

Можна додавати елемент у кінець списку. Можна вставляти еле­мент у список під певним номером, розсуваючи список. Зі списку можна вилучити елемент з певним номером з автоматичним стиску­ванням списку. Список можна повністю очистити.

Списки дають змогу розв’язувати задачі про відшукання потріб­них даних (чи додаткових відомостей) про об’єкти тощо.

Список можна створити програмним шляхом або за допомогою елемента керування з класу «списки».

Списки в елементах керування створюють з метою їх перегляду, а також для виконання реакцій на події з елементом списку. Події у списку можуть бути такими:

  1. клацання на елементі списку (вибір елемента);

  2. зміна значення вибраного елемента списку;

  3. подвійне клацання мишею на елементі та ін.

Реакції на події залежать від умови задачі, наприклад, нехай вибір назви країни у списку має вести до виведення у текстові поля даних про назву столиці й кількість населення країни.

Для створення списків та їх опрацювання у візуальному програ­муванні є елемент керування класу «списки» - ListBox . Послідовно вставлені списки отримують назви ListBox1, ListBox2, ListBox3 і т.д. Списки заповнюють даними зазвичай програмним шляхом (у VB — частіше в конструкторі, де можна створити потрібні набори даних, які називають колекціями).

2. Елемент керування ListBox у VB. Розглянемо деякий список з назвою ListBox1. Значення елементів цього списку зберігаються у властивості Items.Item(), тобто у таких змінних:

ListBox1.Items. Item(0), ListBox1.Items. Item(1), ListBox1.Items.Item(2),...

Є три способи наповнення списку.

1. За допомогою конструктора. Серед властивостей списку ListBox1 треба вибрати властивість Items і її значення — Колекція. Відкриється вікно, де у стовпчик можна ввести елементи списку, наприклад, Угорщина, Італія, Греція та ін.

2. У коді за допомогою команди присвоєння. Значення можна за­нести у список так:

ListBox1.Items.Item(0) = "Угорщина"

ListBox1.Items.Item(1)= "Італія"...

Недолік цього способу — для створення списку потрібно засто­сувати багато команд присвоєння.

3. Застосування методів Add() та Insert() у коді. Щоб встави­ти деяке значення в кінець списку, застосовують команду

ListBox1.Items.Add(<значення>).

Щоб вставити деяке значення під номером п із розсуванням спис­ку, застосовують команду

ListBox1.Items.Insert (n, <значення>).

Розглянемо способи опрацювання списків. Як визначати номер z вибраного мишею елемента у списку? Для цього призначена влас­тивість SelectedIndex:

z = ListBox1.SelectedIndex.

Яке значення вибраного у списку елемента? Відповідь:

a = ListBox1.Items.Item(z).

Це ж значення можна отримати також за допомогою властивості SelectedItem списку:

a = ListBox1.SelectedItem.

Для опрацювання списків застосовують функцію Count і три ме­тоди колекції ListBox1.Items.

Функція ListBox1.Items.Count дає кількість елементів у списку.

Метод Clear призначений для очищення списку. Його використо­вують так: ListBoxl.Items.Clear.

Метод RemoveAt(<номep>) вилучає елемент із заданим номером зі стискуванням списку.

Метод Remove(<значення>) вилучає зазначений елемент зі списку з його стискуванням.

3. Елемент керування ListBox у VBA. Розглянемо деякий список з назвою ListBoxl. Значення елементів цього списку зберігаються у властивості List(), тобто у змінних

ListBoxl.List(0), ListBoxl.List(1), ListBoxl.List(2),...

Розглянемо три способи наповнення списку у коді.

1. Застосування функції Array. За допомогою функції Array спи­сок можна наповнити такою командою присвоєння:

ListBoxl .List = Array ("Угорщина", "Італія",...)

2. Застосування команди присвоєння. Значення можна занести у список ще й так:

ListBoxl .List(0) = "Угорщина"

ListBoxl .List(1) = ”Італія"...

Недолік цього способу — для наповнення списку потрібно засто­сувати багато команд присвоєння.

3. Застосування методу AddItem. Щоб вставити у список деяке значення під номером п із розсуванням списку, застосовують ко­манду ListBoxl.AddItem <значення>, n. Якщо елемент вставляють у кі­нець списку, то номер не зазначають.

Розглянемо способи опрацювання списків. Визначити номер z вибраного мишею елемента можна за допомогою властивості ListIndex. Наприклад, змінній z номер вибраного у списку елемента мож­на присвоїти командою

z = ListBoxl.ListIndex.

Значення вибраного у списку елемента можна присвоїти змінній а командою a=ListBoxl.List(z).

Розглянемо функцію Count і два методи списку.

Функція ListBoxl.Count дає кількість елементів у ListBoxl.

Метод Clear очищає список. Його застосовують так: ListBoxl.Clear.

Метод RemoveItem <номер> вилучає елемент із заданим номером зі стискуванням списку. Наприклад, командою ListBoxl.RemoveItem 2 ви­лучаємо зі списку ListBoxl третій елемент.

4. Використання списків для відшукання потрібних даних. За­стосуємо списки для розв’язування задачі про країни.

Задача 1. Назви країн помістити у список. Вибір мишею кон­кретної назви країни у списку на стадії виконання проекту має за­безпечити появу у двох текстових полях таких даних про цю краї­ну: назва столиці та кількість населення.

Розв’язування. Для розв’язування задачі створимо три списки:

  1. для зберігання назв країн;

  2. для зберігання назв столиць;

  3. для зберігання кількості населення (млн осіб).

Розробка форми та кодів списку й кнопки. Виконаємо такий ал­горитм.

1. На форму помістимо список ListBox1 і підпишемо його як «Список країн», застосувавши для цього напис. Задамо влас­тивості Visible списку значенням True.

2. Для створення інших списків вставимо на форму ліворуч об’єкти ListBox2 і ListBox3.

Рис. 1.17. Довідник про країни (конструктор)

3. Зробимо ListBox2 і ListBox3 невидимими, надавши властивостям Visible значення False (адже в завданні не зазначено, що ці спи­ски треба переглядати під час виконання проекту).

4. Вставимо два текстові поля TextBox1 і TextBox2 і підпишемо їх так: «Столиця» і «Населення». Далі конкретніше розглядаємо одне з двох середовищ розробки.

5. VB. Дані у списки введемо у конструкторі, набравши у стов­пець у колекції властивості Items такі значення:

а) колекція для ListBox1.Items: Угорщина, Італія, Греція, Туре­ччина, Єгипет, Непал;

б) колекція для ListBox2.Items: Будапешт, Рим, Афіни, Анкара, Каїр, Катманду;

в) колекція для ListBox3.Items: 11, 60, 10, 55, 53, 18.

6. VB. Запрограмуємо або реакцію на подію клік (Click) на назві країни, або реакцію на подію вибору (SelectedlndexChanged) країни у списку ListBoxl. Для цього двічі клацнемо в конструкторі на списку і у заго­товку процедури введемо такий код:

TextBox1.Text=ListBox2.Items.Item(ListBoxl.Selectedlndex)

TextBox2.Text=ListBox3.ltems.ltem(ListBox1.Selectedlndex)

Код проекту створено.

5. VBA. Вставимо на форму кнопку «Створити списки». Утворимо код кнопки, що міститиме три команди наповнення списків:

ListBoxl.List=Array("Угорщина", "Італія", "Греція", _

"Туреччина", "Єгипет", "Непал")

ListBox2.List=Array(“Будапешт", "Рим", "Афіни", "Анкара", "Каїр", "Катманду")

ListBox3.List=Array(11, 60, 10, 55, 53,18).

6. VBA. Запрограмуємо реакцію на подію клік (Click) на назві країни у списку ListBoxl. Для цього двічі клацнемо в конструкторі на списку і введемо у заготовку процедури такий код:

TextBox1.Text = ListBox2.List(ListBox1.ListIndex)

TextBox2.Text = ListBox3.List(ListBox1.ListIndex)

7. VB і VBA. Запустимо проект на виконання. У VBA натиснемо на кноп­ку «Створити списки». Клацнемо на будь-якій назві країни у списку. Отримаємо такий результат:

Рис. 1.18. Довідник про країни (етап виконання проекту)

Завдання 1. Створіть і виконайте описаний проект.

Завдання 2. Модифікуйте проект. Зробіть список з назвами столиць видимим. Вибір столиці має вести до виведення у тексто­вих полях назви країни і кількості населення.

Завдання 3*. На основі заданих списків створіть окремий спи­сок країн, населення яких перевищує 50 млн. Для цього вставте на форму базового проекту ще один список і запрограмуйте реакцію на подію клік на назві країни у старому списку так, щоб у новий спи­сок додавалася назва країни, якщо її населення понад 50 млн.

5. Комбінований список ComboBox. Розглянемо елемент керуван­ня класу «комбіновані списки» — ComboBox . Цей елемент є ком­бінацією списку, що розгортається, і текстового поля. Список роз­гортається після натискання кнопки зі стрілкою. Після вибору елемента зі списку він згортається, а вибраний елемент поміщається у текстове поле. Можна і не розгортати список, а почати вводити у текстове поле значення елемента списку. Інших відмінностей від звичайного списку (ListBox) немає.

Переробимо попередній проект, застосувавши замість ListBoxl елемент керування ComboBoxl. Вилучимо ListBoxl з форми і на його місце вставимо ComboBoxl. Змінимо коди так: скрізь замість ListBoxl напишемо ComboBoxl. Запустимо проект на виконання й отримаємо такий результат:

Рис. 1.19. Використання комбінованого списку

Завдання 1. Реалізуйте описаний проект.

Завдання 2. Модифікуйте проект. Комбінований список з на­звами столиць має бути видимим, а інші списки — невидимі. Вибір міста у комбінованому списку має вести до появи в текстових полях таких даних: назва країни, відстань від Києва, час авіаперельоту, вартість квитка. Для зручності вважатимемо, що вартість квитка в гривнях чисельно дорівнює 75% від відстані у кілометрах (точніші дані відшукайте у мережі).

Завдання 3*. Розв’яжіть задачу 1, не використовуючи двох до­поміжних списків для зберігання назв столиць і кількості населен­ня, а маючи лише список для назв країн.

Підказка. Потрібно застосувати команду Select Case. Код реакції на клік у списку буде схожим до коду задачі 1 і використовуватиме команди Select Case <номер вибраної країни у списку> і Case <номер 1> і т.д. або Select Case <назва вибраної країни у списку> і Case <назва 1> і т.д.

Вправа

1. Розробіть проект розв’язування задачі № 6 свого варіанта з розділу «Задачі» із застосуванням списків.