- •§ 1. Поняття про інформаційне моделювання
- •Опорний конспект
- •§ 2. Етапи розв’язання задач на комп’ютері
- •§ 3. Середовища розробки проектів
- •§ 4. Властивості елементів керування
- •§ 1. Поняття про інформаційне моделювання 2
- •Контрольна робота № 1
- •§ 5. Створення проектів
- •§ 6. Основні поняття мови програмування
- •9. Процедура кнопки «Обчислити» для задачі про калькулятор.
- •§ 7. Алгоритм та його властивості
- •Запитання
- •§ 8. Різновиди алгоритмів
- •Запитання
- •§ 9. Типи даних
- •§ 10. Лінійні програми
- •Запитання та вправи
- •Контрольна робота № 2
- •§11. Введення даних і виведення результатів
- •§ 12. Текстові файли даних
- •§ 13. Програми з розгалуженням
- •§ 1. Поняття про інформаційне моделювання 2
- •Запитання
- •§ 14. Елементи керування прапорці і перемикачі
- •§ 15. Алгоритмічна конструкція вибір
- •Контрольна робота № 3
- •§ 16*. Списки
- •§ 17. Підпрограми. Функції користувача
- •§ 18. Підпрограми. Процедури користувача
- •§ 19. Цикли. Цикл з параметром
- •§ 20. Задачі пошуку даних. Цикл «доки»
- •§ 21. Застосування циклів
- •Контрольна робота № 4
- •Розділ 2. Складені структури даних
- •§ 22. Одновимірні масиви. Створення масивів
- •§ 23. Пошук даних в одновимірному масиві
- •1. Пошук даних у масиві за заданим критерієм.
- •5. Проект «На метеостанції». Застосування масивів і процедур користувача у vb.
- •§ 24. Впорядкування одновимірного масиву
- •§ 1. Поняття про інформаційне моделювання 2
- •4. Моделювання предметних областей за допомогою масивів.
- •§ 25. Двовимірні масиви. Створення масивів
- •§ 26*. Опрацювання двовимірних масивів
- •1. Елементи керування DataGridView (vb) та DataGrid (vba).
- •Контрольна робота № 5
- •§ 27. Опрацювання текстових даних
- •§ 28. Структури даних (записи)
- •§ 1. Поняття про інформаційне моделювання 2
- •§ 29. Файли даних прямого доступу
- •5. Vb. Команди для роботи з файлами даних прямого доступу.
- •§ 30. Застосування файлів даних послідовного доступу
- •§ 31. Графіка у vb
- •§ 32. Поняття про об’єктно-орієнтоване програмування
- •Розділ 3. Задачі
- •Складніші задачі*
- •Розділ 4. Vba у програмах пакету ms office
- •§ 33. Застосування vba у ms word
- •§ 34. Vba у програмі ms excell
- •§ 35. Задача про облік товарів на складі
- •§ 36. Розв’язування математичних задач
- •§ 37. Робота 3 базами даних
- •Список літератури
- •§ 1. Поняття про інформаційне моделювання 2
Контрольна робота № 3
Варіант № 1
Яке значення логічного виразу 5 >= 3 And 6 < 7 Or 5 > 8?
Запишіть логічний вираз для визначення, чи точка х належить відрізку [-5; 5) або (10; 15].
Нарисуйте графічну схему і наведіть код обчислення (для введеного значення *) значення складеної функції у, яка задана формулою
Розробіть проект розв’язування наступної задачі (наведіть ескіз форми і код). На складі є чотири види товарів (пронумеровані числами від 1 до 4). Надати довідку про ціну і кількість товару, якщо на запит комп’ютера ввести номер товару.
Варіант № 2
Яке значення логічного виразу 6 >= 4 And (6 < 8 Or 5 > 7)?
Запишіть умову того, що ціле число а непарне і ділиться без остачі на 5.
Нарисуйте графічну схему і наведіть код алгоритму дослідження, чи більше з двох введених чисел належить проміжку [0; 10]?
Розробіть проект розв’язування наступної задачі (наведіть ескіз форми і код). У вас є чотири друга. Надайте довідку про дату народження і номер телефону друга, якщо на запит комп’ютера ввести його ім’я.
§ 16*. Списки
Список — це динамічна (зі змінною кількістю елементів) структура даних, що містить дані зазвичай про об’єкти з деякої предметної області. Списки застосовують для розв’язування задач інформаційно-пошукового характеру.
1. Поняття про списки. Розглянемо приклади даних, які варто зберігати у списках:
перелік назв країн (Угорщина, Італія, Греція,..., Непал);
назви столиць (Будапешт, Рим, Афіни, ...);
кількість населення декількох країн;
послідовність років: 2010, 2011, 2012, 2013 і т.д.;
назви місяців (січень, лютий, березень, ...) тощо.
Термін «динамічна структура даних» означає, що кількість елементів у списку в різні моменти часу може бути різною. У списку важливий порядок слідування даних, ним нехтувати не можна. Нумерація елементів у списку починається від нуля.
Можна додавати елемент у кінець списку. Можна вставляти елемент у список під певним номером, розсуваючи список. Зі списку можна вилучити елемент з певним номером з автоматичним стискуванням списку. Список можна повністю очистити.
Списки дають змогу розв’язувати задачі про відшукання потрібних даних (чи додаткових відомостей) про об’єкти тощо.
Список можна створити програмним шляхом або за допомогою елемента керування з класу «списки».
Списки в елементах керування створюють з метою їх перегляду, а також для виконання реакцій на події з елементом списку. Події у списку можуть бути такими:
клацання на елементі списку (вибір елемента);
зміна значення вибраного елемента списку;
подвійне клацання мишею на елементі та ін.
Реакції на події залежать від умови задачі, наприклад, нехай вибір назви країни у списку має вести до виведення у текстові поля даних про назву столиці й кількість населення країни.
Для
створення списків та їх опрацювання у
візуальному програмуванні є елемент
керування класу «списки» - 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. На форму помістимо список 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 свого варіанта з розділу «Задачі» із застосуванням списків.
