mozok.click » Інформатика » Табличні величини та алгоритми їх опрацювання. Складання й виконання алгоритмів опрацювання масивів данних. Алгоритми пошуку елементів масиву
Інформація про новину
  • Переглядів: 3864
  • Автор: admin
  • Дата: 15-01-2018, 08:04
15-01-2018, 08:04

Табличні величини та алгоритми їх опрацювання. Складання й виконання алгоритмів опрацювання масивів данних. Алгоритми пошуку елементів масиву

Категорія: Інформатика

 

  • що таке таблична величина;
  • як описувати табличні величини мовами програмування;
  • як здійснювати введення та виведення табличних величин у програмах;
  • як для роботи з масивами на формах проектів використовують візуальні елементи.

 

15.1. Що таке таблична величина?

Ви вмієте створювати програми мовами програмування Free Pascal чи Python для опрацювання певної кількості змінних. Їхні значення вводять за допомогою команд введення, що описані правилами мови програмування, у вікнах повідомлень чи, наприклад, у текстовому полі. Але часто потрібно опрацьовувати велику кількість змінних або множину значень однієї змінної. Для зручності їх подають у вигляді таблиць (мал. 15.1).

Мал. 15.1

Щоб розрізняти таблицю, їй надають ім’я — позначають словом, словосполученням або літерою. Наприклад, на малюнку 15.1 Алфавіт — ім’я таблиці-рядка, у кожну клітинку якого занесено по одній літері українського алфавіту. F — ім’я таблиці, яка містить квадрати чисел від 1 до 10. До клітинок таблиці можуть бути занесені величини різних типів: цілі, дійсні, символьні, рядкові та інші.

Клітинки таблиці нумерують. У таблицях може міститися різна кількість клітинок. У таблиці Температура_повітря нумерація розпочинається з 1 й завершується 24. Таким чином можна знайти кількість клітинок таблиці.

Щоб знайти кількість клітинок таблиці, треба від номера останньої клітинки відняти номер першої клітинки та отримане значення збільшити на одиницю.

У нашому випадку: 24 - 1 + 1 = 24.

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

Якщо складовими лінійної таблиці знову є лінійні таблиці (рядки чи стовпчики), тоді маємо двовимірну таблицю, окремими елементами якої є лінійні таблиці. Якщо в двовимірній таблиці зазначити номер рядка та номер стовпця, де розташована клітинка, тоді два вказані номери (у цілком визначеному порядку) визначають координати клітинки в усій двовимірній таблиці.

Впорядкований набір змінних деякого типу називають табличною величиною.

15.2. Як описувати табличні величини мовами програмування?

Сукупність деяких значень величини одного типу мовою програмування Free Pascal можна описати змінною інтервального чи перелічуваного типу (табл. 15.1).

Таблиця 15.1

Сукупність однотипних змінних, що об’єднані спільним іменем та яким можна надавати значення в процесі виконання програми, у мові програмування Free Pascal називають масивом.

Під масивом розуміють структурований тип даних — набір однотипних змінних, що розташовані в пам’яті безпосередньо одне за одним, доступ до яких здійснюється за його порядковим номером (індексом). Індекс елемента масиву — це ціле число, яке вказує на місце розташування елемента в масиві. Для опису масиву мовою Free Pascal у розділі опису змінних var вказують його ім’я, діапазон номерів елементів і тип елементів масиву (мал. 15.2).

Наприклад, на малюнку 15.2 задано опис лінійної табличної величини — одновимірного масиву з іменем а, який складається з не більш ніж 10 цілих чисел. Двовимірний масив b зі 100 цілих чисел (таблиця

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

Щоб звернутися до конкретного елемента лінійного масиву, слід після імені масиву записати у квадратних дужках індекс потрібного елемента, наприклад а[4]. Аналогічно можна звернутися до будь-якого елемента двовимірного масиву, але у квадратних дужках слід записати номер рядка та номер стовпчика, де розташований потрібний елемент. Наприклад, b [2,3] — елемент, що у двовимірному масиві розташований на перетині другого рядка та третього стовпчика.

У мові програмування Python є декілька складених типів даних, що використовуються для групування значень. Найбільш універсальним є список, що може бути створений як послідовність елементів, розділених комами і взятих у квадратні дужки. Елементи списку не обов’язково мають належати одному типу, інтерпретатор мови визначить тип у процесі виконання програми. Окрім того, кількість елементів списку може змінюватись. Індекси списків починаються з 0. Наприклад, змінна data = [‘blue’, ‘brown’, 178, 70] — це список із чотирьох елементів, елемент data[2] = 178. Довжину списку, тобто кількість його елементів, можна визначити за допомогою функції len. Наприклад, len(data) = 4.

Доступ до елемента списку a = [[1,2,3], [4, 5, 6]], який дорівнює 6, здійснюють за допомогою посилання на номер списку та відповідного елемента вкладеного списку: a[1][2].



15.3. Як здійснювати введення та виведення табличних

величин у програмах?

У мові програмування Free Pascal не передбачено спеціальних засобів для введення-виведення масиву, який складається з різних, але однотипних значень. Тому таку операцію організовують поелементно, тобто при введенні масиву необхідно послідовно вводити значення 1, 2, 3... n елемента. Для цього зазвичай використовують цикл for.

Для введення та виведення елементів масиву можна застосувати відомі вам об’єкти форми: текстове поле Edit, напис Label, вікна повідомлень, або задавати випадкові значення з деякого діапазону.

У мові програмування Python є декілька способів створення та зчитування списків:

1) створити порожній список (який не містить елементів, наприклад, a[]) та додати до нього елементи за допомогою методу append;

2) використати операції конкатенації списку (приєднання другого списку в кінець першого), повторення списку (мал. 15.3).

У мові програмуваня Python вивести всі елементи списку а можна за допомогою команди print(a), при цьому буде виведено значення елементів списку, поміщені у квадратні дужки, через кому.

Якщо потрібно вивести елементи списку в стовпець або рядок, використовують поелементне виведення (мал. 15.4).

Вправа 1. Введення масиву дійсних чисел.

Завдання. Розробіть проект для введення масиву х, що складається з n (n < 20) дійсних чисел, де значення кількості елементів масиву вводять у текстове поле, а самі елементи — у вікні введення.

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

1. У папці Навчальні проекти своєї структури папок створіть папку Введення масиву.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 15.5) об’єкти, надайте значення їхнім властивостям самостійно.

3. Створіть процедуру опрацювання події натиснення кнопки Розпочати введення. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: х — масив дійсних чисел, n — кількість елементів масиву, і — номер (індекс) елемента масиву.

4. У вікні редактора коду запишіть команди введення кількості елементів масиву та значень елементів у вікні повідомлення з використанням оператора повторення for.

розробка проекту в середовищі програмування PyCharm

1. Відкрийте середовище програмування PyCharm. Створіть новий файл програми мовою програмування Python з іменем Введення масиву в папці Навчальні проекти своєї структури папок.

2. У вікні редактора коду введіть команди для імпорту бібліотеки візуальних компонентів.

3. Запишіть програму за зразком, використавши метод append — додавання елементів списку (мал. 15.6).

4. Розмістіть елементи управління на екранній формі (мал. 15.7), доповнивши програму кодом (мал. 15.8).

5. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх.

6. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

Вправа 2. Виведення масиву цілих чисел.

Завдання. Розробіть проект для поелементного виведення масиву а з n (n < 20) цілих чисел від 0 до 10 у вікні повідомлення, де значення кількості елементів масиву вводять у текстове поле, а елементи добираються випадково після запуску програми.

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

1. У папці Навчальні проекти своєї структури папок створіть папку Виведення масиву.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 15.9) об’єкти, надайте значення їхнім властивостям самостійно.

3. Створіть процедуру опрацювання події натиснення кнопки Розпочати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив цілих чисел; п — кількість елементів масиву; і — номер (індекс) елемента масиву; s — рядок, у якому формуватиметься масив значень для виведення.

4. У вікні редактора коду в тілі програми запишіть команди введення кількості елементів масиву та надання значень елементів масиву за допомогою функції генерування цілих чисел.

5. Продовжте введення програми (мал. 15.10).

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

1. Відкрийте середовище програмування PyCharm. Створіть новий файл програми мовою програмування Python з іменем Виведення масиву в папці Навчальні проекти своєї структури папок.

2. У вікні редактора коду введіть команди оголошення об’єктів екранної форми проекту (мал. 15.11).

3. Продовжте програму за зразком (мал. 15.12), створюючи рядкову величину sl, у якій формується результуючий список значень, розділених пропусками. Наприклад, для n = 3 одним з можливих результатів буде список, поданий на малюнку 15.13.

4. Розмістіть елементи управління на екранній формі (мал. 15.14), доповнивши програму кодом (мал. 15.15).

5. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх.

6. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

15.4. Як для роботи з масивами на формах проектів використовують візуальні елементи?

Для введення, виведення та опрацювання масиву текстових рядків у середовищах програмування можна використовувати елемент управління — багаторядкове текстове поле.

У середовищі Lazarus багаторядкове текстове поле задають елементом Memo

з панелі компонентів екранної

форми Стандартна (мал. 15.16).

Розмір текстового поля змінюють у процесі налаштування екранної форми перетягуванням маркерів зміни розміру або в програмі, надаючи необхідних значень властивостям Width {Ширина), Height {Висота).

Опрацювання тексту в полі Memo можливе також із використанням буфера обміну, при цьому можна застосовувати стандартні комбінації клавіш: Ctrl+X — вирізати, Ctrl+C — копіювати, Ctrl+V — вставити.

В інспекторі об’єктів змінюють значення таких властивостей елемента управління Memo (табл. 15.2).

Таблиця 15.2

Властивість

Опис

Name

Ім’я. Використовують у програмі для доступу до елемента управління та його властивостей, зокрема для доступу до тексту, який введений у поле редагування

Lines

Масив рядків, що відповідає вмісту поля. Доступ до рядка здійснюється за номером. Рядки нумеруються, починаючи з нуля

MaxLength

Максимальна довжина тексту в полі Memo. Значення 0 знімає обмеження довжини

Left

Відстань від лівої межі поля до лівої межі форми

Top

Відстань від правої межі поля до правої межі форми

Font

Шрифт, який використовують для відображення тексту

Корисним для введення та виведення як лінійних масивів, так і двовимірних є використання елемента StringGrid (Таблиця рядків), який міститься на вкладці Additional (мал. 15.17).

Після розміщення елемента управління на формі проекту користувач отримує таблицю, яка складається з рядків (Rows) і стовпців (Cols). Таблиця — це двовимірний масив, значенням якого є рядки символів, а отже, кожний елемент має тип string. Доступ до елементів масиву здійснюється через властивість Cells (Клітинка). Клітинці таблиці, яка міститься на перетині стовпця з номером Col і рядка з номером Row, відповідає елемент масиву Cells[Col,Row]. Зверніть увагу на те, що при зверненні до клітинки елемента StringGrid спершу вказують стовпець, а потім рядок. Нумерація стовпців і рядків починається з нуля. Перелік основних властивостей елемента управління StringGrid подано в таблиці 15.3.

Таблиця 15.3

Властивість

Опис

ColCount

Кількість стовпців таблиці

RowCount

Кількість рядків таблиці

FixedCols

Кількість фіксованих стовпців таблиці. Зазвичай фіксується один — крайній лівий, який використовують для заголовка. Усі фіксовані стовпці виділяються кольором і при горизонтальній прокрутці таблиці не змінюють свого розташування

Властивість

Опис

FixedRows

Кількість фіксованих рядків таблиці, які використовують аналогічно до фіксованих стовпців

FixedColor

Колір фіксованих стовпців і рядків таблиці

VisibleColCount

VisibleRowCount

Кількість видимих (тих, що прокручуються) стовпців або рядків

ScrollBars

Наявність у таблиці смуг прокручування. Якщо вказати значення властивості ssAutoBoth, то смуги прокручування з’являтимуться за потреби автоматично

Вправа 3. Обмін даними.

Завдання. У середовищі Lazarus розробіть проект, у якому стовпець із п’яти слів, які користувач вводить у багаторядкове поле, буде розміщуватись у рядку таблиці.

Мал. 15.18

1. У папці Навчальні проекти своєї структури папок створіть папку Обмін даними.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на формі проекту багаторядкове поле, таблицю та кнопку Сформувати для запуску проекту.

3. Задайте значення властивостей об’єктів форми (табл. 15.4).

Таблиця 15.4

4. Створіть процедуру опрацювання події натиснення кнопки Сформувати. У вікні редактора коду опишіть змінні: і — лічильник номерів рядків у багаторядковому полі та номерів стовпців у таблиці виведення; a — масив значень (мал. 15.19).

Мал. 15.19

5. Запишіть програму для зчитування даних з текстового поля, формування написів у таблиці та заповнення клітинок таблиці (мал. 15.20).

6. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх.

7. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

1. Чим табличні величини відрізняються від текстових або числових величин?

2. У чому особливість опису табличних величин мовами програмування Free Pascal, Python?

3. У чому відмінність табличної величини та елемента табличної величини?

4. Чи обов’язково кожному елементу табличної величини ставити у відповідність його номер? Для чого потрібні такі номери?

5. Чи можна визначити кількість елементів за описом табличної величини мовами програмування Free Pascal, Python?

6. Які засоби для введення й виведення елементів табличної величини передбачені у програмах мовами програмування Free Pascal, Python?

7. Які елементи управління використовують для введення чи виведення значень табличних величин у середовищі програмування Lazarus?

1. Обговоріть, чим відрізняється елемент управління Memo в середовищі Lazarus від елементів управління Edit і Label?

2. Обговоріть, які засоби мов програмування Free Pascal, Python можна використати в проекті, щоб після введення елементів табличних даних їх можна було б опрацьовувати: додавати, дублювати, записувати в різному порядку.

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

а) текстові поля чи написи;

б) генерування випадкових чисел;

в) елемент управління — багаторядкове поле;

г) елемент управління — таблицю рядків;

д) вікно повідомлення.

Оберіть один із запропонованих проектів, щоб його можна було реалізувати в довільному з вивчених середовищ програмування.

1. Придумайте назву таблиці. Запишіть значення елемента таблиці з індексом 2. Визначте кількість елементів табличної величини.

2. Поставте у відповідність опис табличної величини та відповідну таблицю значень:

1) таблиця з 10 текстових величин;

2) таблиця з 10 дійсних чисел;

3) таблиця із 6 символьних величин;

4) таблиця з послідовності 9 чисел, що змінюються через 0,1;

5) таблиця із 7 текстових величин.

3. Наведіть приклади можливих значень табличних величин, які можна додати в масив або список за їхнім описом (табл. 15.5).

Таблиця 15.5

4. Засобами обраного самостійно середовища програмування створіть проект Розклад уроків, у якому назви уроків формують табличну величину з іменем nazva за допомогою вікна введення, а результат виводиться у вигляді стовпця таблиці.

5. Засобами обраного самостійно середовища програмування створіть проект Гравітаційна стала, у якому формуються значення елементів лінійної таблиці з 5 дійсних чисел з діапазону від 6.0 до 7.0, а результат виводиться в написі, повторюючи послідовність отриманих значень двічі.

6. Засобами обраного самостійно середовища програмування створіть проект Зріст, у якому вводиться масив цілих чисел, що відповідають зросту членів вашої родини, і виводиться в таблицю з відповідними підписами стовпців.

Проект «Е-урядування»

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


  • як можна опрацьовувати табличні величини;
  • як описати програму зміни значення елемента табличної величини;
  • як описати алгоритми знаходження суми чи кількості елементів табличної величини мовами програмування.

16.1. Як можна опрацьовувати табличні величини?

Практичні завдання, для розв’язування яких можна застосовувати алгоритми опрацювання табличних величин, можуть мати різне формулювання. Наприклад, найпростіше завдання може розпочинатися зі слів: «Дано n чисел...», і далі вказується, що саме потрібно зробити із цими числами. Але зазвичай трапляються складніші завдання, у яких спосіб організації даних задано неявно. Наприклад, сформувати таблицю квадратів двоцифрових чисел. При написанні програм для розв’язування подібних завдань слід виконати такі дії:

1) за умовою завдання встановити, чи можна подати вхідні дані у вигляді табличної величини (масиву для мови Free Pascal чи списку — для Python);

2) надати табличній величині одне ім’я (його в програмі буде використано для роботи з окремими елементами табличних даних);

3) визначити тип елементів табличної величини та описати його в розділі змінних var (Free Pascal) або задати порожній список, у якому буде зберігатися набір даних;

4) у програмному коді записати команди для введення елементів табличної величини в пам’ять комп’ютера.

Подальше опрацювання табличних величин зводиться до використання алгоритмів:

• зміни значень елементів масиву;

• знаходження підсумків за набором даних, які передбачають використання простих арифметичних операцій чи виразів над елементами масиву;

• обчислення суми або кількості значень елементів, що задовольняють заданим умовам;

• пошуку елементів табличної величини, що задовольняють заданим умовам;

• упорядкування масиву за деякою ознакою.

16.2. Як описати програму зміни значення елемента табличної

величини?

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

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

У мові програмування Free Pascal для зміни значення елемента масиву, як і для зміни значення деякої простої змінної, використовують операцію присвоювання :=, у якій у лівій частині звертаються до потрібного елемента масиву, для цього вказують ім’я масиву й у квадратних дужках задають номер (індекс) елемента, а в правій — відповідне значення. При цьому розмір масиву залишається незмінним й операцію присвоювання можна застосувати тільки в тому разі, коли надане значення відповідає типу елементів оголошеного масиву.

Мовою програмування Python можна не тільки змінювати елементи списку з використанням операції присвоювання, яка позначається символом =, а й збільшувати чи зменшувати розмір списку. Операції послідовної зміни елементів списку a=[2, 4, 6, 8, ‘десять’] та отриманих результатів подано в таблиці 16.1. Візьміть до уваги, що нумерація елементів списку починається з 0.

Таблиця 16.1

Вправа 1. Квадрати значень.

Завдання. Створіть проект Квадрати значень, у якому елементи табличної величини a, яка містить 10 цілих чисел, змінюються їх квадратами.

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

1. У папці Навчальні проекти своєї структури папок створіть папку Квадрати значень.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 16.1) об’єкти, надайте значення їхнім властивостям за зразком (табл. 16.2).

Таблиця 16.2

3. Створіть процедуру опрацювання події Виконати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: a — масив цілих чисел, і — номер (індекс) елемента масиву.

4. У вікні редактора коду запишіть команди введення, опрацювання та виведення елементів масиву (мал. 16.2). Зверніть увагу на те, що багатосторінкове текстове поле містить тільки текстові дані, тому для опрацювання їх спочатку слід перетворити на цілі числа, а потім для виведення результати подати рядками.

5. Запустіть проект на виконання. Введіть у багаторядкове поле ліворуч послідовно 10 натуральних чисел, натискаючи після кожного клавішу Enter. Перевірте на цьому тестовому прикладі, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх.

Розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Квадрати значень у папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду введіть команди (мал. 16.3).

5. Запустіть проект на виконання. Введіть значення елементів списку для тестового прикладу — числа від 1 до 10 у вікні виконання проекту після зазначеної вказівки.

Введіть елемент списку

6. Перевірте, чи відповідають умові завдання отримані результати. Якщо є помилки, виправте їх.

7. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

16.3. Як описати алгоритми знаходження суми чи кількості елементів табличної величини мовами програмування?

Засобами мов програмування можна автоматизувати процес знаходження підсумкових даних: суми, добутку, середнього значення набору числових

даних. Такі задачі передбачають, що табличні елементи не змінюватимуться, а результатом їх виконання буде одне підсумкове значення.

У програмах, де передбачено дії з елементами табличної величини, що задовольнять деяким умовам, використовують оператор розгалуження if. Опис умов здійснюють так само, як і з простими змінними. Для запису простих умов використовують оператори порівняння: >, <, <=, >=, =, <>, а складені умови формують із простих з використанням логічних операторів and, or, not.

Вправа 2. Середнє значення.

Завдання. Складіть проект Середнє для обчислення середнього значення десяти дійсних чисел з діапазону 9,0-10,0, отриманих у ході деякого експерименту.

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

1. У папці Навчальні проекти своєї структури папок створіть папку Середнє значення.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 16.4) об’єкти, надайте значення їхнім властивостям за зразком (табл. 16.4).

Таблиця 16.3

3. Створіть процедуру опрацювання події натиснення кнопки Розрахувати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: a — масив дійсних чисел, і — номер (індекс) елемента масиву, s — середнє значення.

4. У вікні редактора коду запишіть команди введення, опрацювання та виведення елементів масиву (мал. 16.5). Зверніть увагу на те, що елементи масиву генеруються випадково. А для перетворення значення елемента

дійсного типу в рядковий використано команду FloatTostrF — перетворення дійсного числа з фіксованою крапкою із 3 цифр, серед яких 2 — у дробовій частині, у рядкову величину: FloatTostrF(a[i+1],ffFixed,3,2) (мал. 16.5).

5. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

Розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Середнє значення в папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду введіть команди (мал. 16.6). Візьміть до уваги, що для округлення дійсного числа можна застосувати команду round(<величина>, <порядок>), яка не потребує підключення бібліотеки math.

4. Запустіть проект на виконання. Перевірте, чи відповідають отримані результати умові завдання. Наприклад, при одному із запусків програми отримано результат (мал. 16.7):

5. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши зміни.

Вправа 3. Сума додатних елементів таблиці.

Завдання. Створіть програму для знаходження суми додатних елементів заданої таблиці.

розробка проекту в середовищі програмування Lazarus

1. У папці Навчальні проекти своєї структури папок створіть папку Сума додатних.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 16.8) об’єкти, самостійно надайте значення їхнім властивостям.

3. Заповніть таблицю значеннями. Для цього в контекстному меню об’єкта StringGrid1 оберіть вказівку Змінити StringGrid... У вікні редактора таблиці введіть потрібні значення (мал. 16.9).

4. Створіть процедуру опрацювання події натиснення кнопки Розрахувати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив дійсних чисел; і — номер (індекс) стовпця масиву; j — номер (індекс) рядка масиву; s — сума.

5. У вікні редактора коду запишіть команди присвоювання значень елементів масиву, їх опрацювання та виведення значення суми елементів (мал. 16.10).

6. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши зміни.

Розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Сума додатних у папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду введіть команди (мал. 16.11).

4. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання отримані результати. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

Вправа 4. Кількість елементів.

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

розробка проекту в середовищі програмування Lazarus

1. У папці Навчальні проекти своєї структури папок створіть папку Кількість елементів.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 16.12) об’єкти, самостійно надайте значення їхнім властивостям.

3. Створіть процедуру опрацювання події натиснення кнопки Виконати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив дійсних чисел; і — номер (індекс) елемента масиву; k — кількість.

4. У вікні редактора коду запишіть команди введення значень елементів масиву, їх опрацювання та виведення значення кількості елементів, які дорівнюють її першому елементу, враховуючи, що нумерація рядків у багаторядковому текстовому полі починається з 0 (мал. 16.13).

5. Запустіть проект на виконання. Перевірте на контрольному прикладі, дібраному самостійно, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

Розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Кількість елементів у папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду введіть команди (мал. 16.14).

4. Запустіть проект на виконання. Перевірте на контрольному прикладі, дібраному самостійно, чи відповідають умові завдання отримані результати. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

1. Яким є порядок розв’язування задач, у яких передбачено опрацювання деякої сукупності даних?

2. Які є способи зміни елементів масиву мовою програмування Free Pascal, а які — мовою програмування Python? Чи можна вважати, що за способом зміни табличних величин одна мова переважає іншу?

3. Які елементи управління в середовищі Lazarus можна використати для введення й виведення елементів масиву?

4. Як описати алгоритм зміни значень табличних елементів мовами програмування Free Pascal, Python?

5. Як описати алгоритм знаходження суми чи добутку значень табличних елементів мовами програмування Free Pascal, Python?

6. Як описати алгоритм знаходження суми чи кількості табличних елементів, що відповідають заданим умовам, мовами програмування Free Pascal, Python?

1. Мовами програмування Free Pascal, Python запишіть фрагмент програми, у якій будуть реалізовані такі завдання:

1) П’ятому елементу лінійної таблиці А рядкового типу з 10 елементів надати значення 123.

2) Першому елементу лінійної таблиці А цілого типу з 10 елементів надати значення восьмого елемента цієї ж таблиці.

3) Елементу з номером і лінійної таблиці А дійсного типу надати значення 15,5.

4) Сьомому елементу лінійної таблиці Nomer цілого типу з 10 елементів надати деяке конкретне значення.

5) Другому елементу лінійної таблиці Nomer дійсного типу з 10 елементів надати значення вмісту цієї ж клітинки, збільшене вдвічі.

6) Елементу двовимірної таблиці з іменем Costs цілого типу, який міститься на перетині другого стовпця та третього рядка, надати значення вмісту цієї ж клітинки, збільшене на 1.

Перевірте записи одне в одного. Обговоріть, чи можуть відрізнятися фрагменти програм, записані однією й тією самою мовою програмування.

2. Мовами програмування Free Pascal, Python запишіть фрагмент програми, у якій перевірятимуться такі умови:

1) Вміст першого елемента лінійної таблиці Year рядкового типу дорівнює значенню високосний.

2) Вміст кожного елемента лінійної таблиці А дійсного типу належить заданому відрізку [a,b],

3) Вміст шостого елемента лінійної таблиці А дійсного типу не перевищує значення величини Н.

4) Вміст п’ятого елемента лінійної таблиці з іменем Book цілого типу не збігається з пятнадцятим елементом цієї ж таблиці, збільшеним утричі.

5) Вміст сьомого елемента лінійної таблиці А дійсного типу не перевищує дійсного числа К і вміст першого елемента лінійної таблиці з іменем City літерного типу дорівнює Київ.

3. Обговоріть, як зміниться програмний код у проектах Квадрати значень, Середнє значення, якщо:

1) вхідні дані будуть подані величинами іншого типу;

2) вхідні дані генеруватимуться випадково;

3) на екранній формі проекту в середовищі Lazarus використати інші елементи управління, наприклад, таблиці рядків StringGrid;

4) у середовищі PyCharm використати елементи управління з бібліотеки tkinter: інформаційне вікно, текстове поле, напис тощо.

Щоб перевірити власні припущення, внесіть відповідні зміни до кожного з проектів. Запустіть їх на виконання та збережіть з іменами Квадрати значень новий і Середнє значення новий у папці Проекти своєї структури папок.

1. У вибраному середовищі програмування створіть проект Надбавка, у якому заробітна плата 10 працівників деякого підприємства, подана дійсними величинами в лінійній таблиці, збільшується на 15 %. Елементи управління доберіть самостійно.

2. У вибраному середовищі програмування створіть проект Продаж товару, у якому для введеної кількості проданих одиниць товару, яка фіксується кожну годину за зміну (8 год), знаходять підсумкове значення, яке виводиться в текстове поле.

3. У вибраному середовищі програмування створіть проект Конвеєр, за допомогою якого можна знайти сумарне навантаження на його стрічки за умови: на конвеєрі працюють по 5 робітників на трьох лініях, на стрічку надходять фрукти різної ваги, яка задається випадково. Елементи управління доберіть самостійно.

4. У вибраному середовищі програмування створіть проект Підрахунок, у якому знаходять суму додатних і кількість від’ємних елементів лінійної таблиці дійсного типу.

Проект «Обираємо майбутню професію»

Для роботи у проекті «Обираємо майбутню професію» у вибраному середовищі програмування створіть проект Вибір, у якому задано список якостей, необхідних для роботи за деякою професією. Користувач проекту може вказати наявність чи відсутність цієї якості відповідною позначкою: наявність — 1, відсутність — 0. У результаті виконання проекту користувач отримує рекомендації щодо того, якою мірою його якості відповідають вимогам професії.

СКЛАДАННЯ й ВИКОНАННЯ АЛГОРИТМІВ ОПРАЦЮВАННЯ ТАБЛИЧНИХ ВЕЛИЧИН

Як вводити та виводити значення табличних величин у програмах;

які алгоритми є базовими для опрацювання табличних величин;

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

У власній структурі папок створіть папку Практична робота 6.

Під час виконання практичних завдань пам’ятайте про правила безпеки життєдіяльності при роботі з комп’ютером!

Завдання 1. Зміна ціни (12 балів)

У магазині одягу є гнучка система зміни ціни. Кожного тижня товар змінював свою ціну за таблицею.

1 тиждень

2 тиждень

3 тиждень

4 тиждень

Підвищення на 10 %

Підвищення на 5 %

Зниження на 7 %

Зниження на 10 %

У вибраному середовищі програмування створіть проект Знижки, у якому за введеною вартістю товару можна обчислити:

1) значення ціни товару протягом кожного тижня та вивести їх на екран у вигляді таблиці (списку) значень;

П р и м і т к а. Щоб знайти результат збільшення ціни а на 1 %, виконують дію а*1,01; щоб зменшити на 1 %, виконують дію а*0,99;

2) відсоток зміни ціни протягом місяця, як добуток відсоткових змін кожного тижня.

Завдання 2. Кислотність ґрунтів (12 балів)

На 10 земельних ділянках проведено обстеження рівня pH ґрунту. Результати обстеження подано в таблиці.

1

2

3

4

5

6

7

8

9

10

5

6

7

3

9

8

4

5

7

5

У вибраному середовищі програмування створіть проект Ґрунти, у якому можна визначити кількість земельних ділянок з кислими (pH < 7), нейтральними (pH = 7) та лужними (pH > 7) ґрунтами.

завдання 3. Гра (12 балів)

На деякій гральній дошці, яка має форму прямокутної таблиці з 5 стовпців і 5 рядків, випадково розміщуються білі та чорні фігури. У вибраному середовищі програмування створіть проект Гра, у якому після запуску гри фігури розташовуються в таблиці й виводиться повідомлення, фігур якого кольору на полі для гри виявилося більше.


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

18.1. Як описати програму пошуку заданого елемента?

При опрацюванні табличних величин часто розв’язують завдання пошуку елемента, який відповідає деякій умові. Для розв’язування цього завдання можна, як у прикладах, розглянутих на попередніх уроках, переглядати кожний елемент масиву та підраховувати кількість входжень. Якщо така кількість дорівнює 0, то зазначеного елемента таблична величина не містить, якщо більше 0, то містить. Але такий підхід є нераціональним, особливо якщо кількість елементів дуже велика, наприклад, понад 1000, а збіг є вже серед перших елементів. У цьому разі використовують цикл while та виконують такі дії:

1. Уводять спеціальну логічну величину — прапорець, призначення якої полягатиме в тому, що її значення зберігатиме результат наявності чи відсутності такої величини в таблиці. Початкове значення цієї величини — false, яке означає, що шукане значення поки що не траплялось у масиві.

2. Переглядають усі елементи табличної величини, починаючи з першого, доти, доки не буде переглянуто всі елементи або знайдено елемент із потрібним значенням.

3. Якщо елемент знайдено, то змінюють значення прапорця на true та переривають виконання циклу. Нагадаємо, що для переривання виконання циклу використовують команду break.

4. Здійснюють виведення результату залежно від значення прапорця. Якщо потрібно не просто визначити наявність елемента, а його номер

у масиві чи списку даних, то вводять змінну, наприклад flag, для фіксування такого номера. Початкове значення змінній flag можна присвоїти 0 (у Free Pascal передбачено нумерацію елементів масиву з 1) або -1 (у Python передбачено нумерацію елементів масиву з 0). Якщо елемент буде знайдено, тоді змінній flag присвоюють його номер. Тоді ця змінна може слугувати прапорцем завершення перегляду елементів: якщо flag>0 (Free Pascal) flag>-1 (Python), тоді виконання циклу зупиняють.

Вправа 1. Пошук номера елемента.

завдання. Створіть проект Номер елемента, у якому здійснюють пошук номера елемента лінійної таблиці з 10 цілих чисел, значення якого дорівнює її першому елементу.

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

1. У папці Навчальні проекти своєї структури папок створіть папку Номер елемента.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 18.1) об’єкти, самостійно надайте значення їхнім властивостям.

3. Створіть процедуру опрацювання події Виконати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив цілих чисел; і — номер (індекс) елемента масиву; flag — номер шуканого елемента.

4. У вікні редактора коду запишіть команди введення значень елементів масиву, знаходження номера елемента та виведення його значення або повідомлення, що такого елемента не існує (мал. 18.2).

5. Запустіть проект на виконання. Перевірте на контрольному прикладі, дібраному самостійно, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Номер елемента в папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду введіть команди введення значень елементів масиву, знаходження номера елемента та виведення його значення або повідомлення, що такого елемента не існує (мал. 18.3).

Мал. 18.3

4. Запустіть проект на виконання. Перевірте на контрольному прикладі, дібраному самостійно, чи відповідають умові завдання отримані результати. Якщо є помилки — виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

18.2. Як описати програму пошуку елемента з найбільшим або найменшим значенням?

Для того щоб зрозуміти, як відбувається пошук найбільшого елемента деякої табличної величини, уявімо себе на місці виконавця алгоритму. Елементи табличної величини записані в пам’яті, доступ до комірок якої здійснюється за номерами елементів. Виконавець може одночасно відкривати доступ до однієї комірки. Нехай задано лінійну таблицю з n цілих чисел (мал. 18.4).

Виконаємо такий алгоритм:

1) прочитаємо з пам’яті перший елемент таблиці. Його значення дорівнює 5. Запам’ятаємо його як максимальне — надамо його значення величині max;

2) прочитаємо другий елемент таблиці. Його значення більше за max, тому «забудемо» про попереднє значення й запам’ятаємо значення max=6;

3) прочитаємо третій елемент таблиці. Його значення менше за max, тому можна приступати до наступного кроку без зміни значення max.

Продовжимо таким чином кроки алгоритму, поки не будуть переглянуті всі елементи лінійної таблиці до n включно. На кожній ітерації циклу в змінній max міститиметься найбільше значення з пройденої частини лінійної таблиці, а по завершенні циклу змінна max зберігатиме максимальне значення в усьому масиві.

Пошук найменшого елемента масиву здійснюють за аналогічним алгоритмом, знаходячи відповідно елемент (min), який є меншим від усіх переглянутих елементів.

Вправа 2. Різниця між найбільшим і найменшим.

Завдання. Створіть проект Випробування, у якому знаходять різницю між найбільшим і найменшим елементом лінійної таблиці з 10 дійсних чисел, які набувають значень від 5 до 10 випадково.

розробка проекту в середовищі програмування Lazarus

1. У папці Навчальні проекти своєї структури папок створіть папку Випробування.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 18.5) об’єкти, самостійно надайте значення їхнім властивостям.

3. Створіть процедуру опрацювання події натиснення кнопки Знайти. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив дійсних чисел; і — номер (індекс) елемента масиву; max — найбільше значення серед елементів; min — найменше значення серед елементів.

Мал. 18.5

4. У вікні редактора коду запишіть команди випадкового генерування елементів масиву та виведення їх у таблицю, пошуку найбільшого й найменшого елементів масиву, виведення різниці значень max і min (мал. 18.6). Зауважте, для того щоб отримати випадкове дійсне число, яке відповідає умові 5<x<10, використано вираз: 10.0 - random*5.0.

5. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки — виправте їх.

6. Знайдіть на екранній формі найбільше та найменше значення елементів згенерованої таблиці. Обчисліть їхню різницю. Перевірте програму на наявність логічних помилок. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

Розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Випробування в папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду запишіть команди випадкового генерування елементів масиву та виведення списком у вікні виконання проекту, пошуку найбільшого й найменшого елементів масиву, виведення різниці значень max і min (мал. 18.7). Зауважте, для того щоб отримати випадкове дійсне число за умовою 5 < x < 10 з двома знаками після коми, використано вираз: round((10.0 - random.random()*5.0),2).

4. Запустіть проект на виконання. У згенерованому списку знайдіть найбільше та найменше значення елементів. Обчисліть їхню різницю. Перевірте програму на наявність логічних помилок.

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

18.3. Як упорядковувати дані в лінійній таблиці?

Для розв’язування багатьох задач зручно спочатку впорядкувати дані за певною ознакою. Наприклад, пошук елемента в масиві чи списку можна значно прискорити, якщо відповідні дані впорядковані. При цьому ознакою такого впорядкування може бути за зростанням (якщо значення елементів не повторюються), за неспаданням (якщо значення елементів можуть повторюватись), за спаданням, за незростанням.

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

Є багато різних методів впорядкування, які відрізняються один від одного ступенем ефективності. Ступінь ефективності враховує кількість порівнянь та кількість обмінів, які виконано під час впорядкування: що меншою є така кількість, то ефективнішим є метод впрорядкування.

Розглянемо один з методів впорядкування лінійної таблиці — метод вибору. За таким методом спочатку з набору з довільним розташуванням елементів вибирають елемент із найменшим значенням i виконують його взаємозаміну зі значенням у першій клітинці таблицї, — таким чином у першій клітинці таблиці розташовується найменше значення вмісту клітинок таблиці. Далі знаходять елемент із найменшим значенням з решти n - 1 елементїв i виконують його взаємозаміну з вмістом клітинки з номером два i т. д. Потім розглядаються елементи, що лишилися, серед яких знову знаходять найменший, який потім міняють місцями з вмістом третьої клітинки. Таким чином, для прикладу таблиці з 5 елементів, яка містить значення довжини п’яти олівців, послідовно розглядають чотири різні набори олівців (чотири таблиці, що мають різну довжину): у першо-

му наборі було п’ять елементів, у другому — чотири, у третьому — три, у четвертому — два. З кожним набором елементів виконують однакові дії:

• у наборі вибирають найменший елемент, запам’ятовують його номер у такому наборі (таблиці);

• знайдений найменший елемент міняють місцями з першим елементом набору, що розглядається.

Приклад упорядкування лінійної таблиці з 5 цілих чисел продемонстровано на малюнку 18.8, де жовтим кольором виділено найменший елемент серед елементів, що залишаються для перегляду на кожному кроці, стрілками — порядок обміну елементами.

Зверніть увагу на те, що хоча лінійна таблиця має п’ять елементів, достатньо 4 рази знайти найменше значення елементів з іще не впорядкованої частини лінійної таблиці та обміняти його місцями зі значенням першого із ще не впорядкованої частини масиву елементів.

Вправа 3. Упорядкування масиву.

Завдання. Створіть проект Упорядкування, у якому елементи лінійної таблиці з 10 цілих чисел впорядковуються за зростанням.

Розробка проекту

в середовищі програмування Lazarus

1. У папці Навчальні проекти своєї структури папок створіть папку Упорядкування.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі (мал. 18.9) об’єкти, самостійно надайте значення їхнім властивостям.

3. Створіть процедуру опрацювання події Упорядкувати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив цілих чисел; і — номер ітерації пошуку мінімального елемента масиву; j — номер елемента масиву; min — найменше значення елемента; nmin — номер найменшого елемента.

4. У вікні редактора коду запишіть команди введення елементів масиву в багаторядкове текстове поле, впорядкування елементів та їх виведення в багаторядкове текстове поле (мал. 18.10).

5. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

Розробка проекту в середовищі PyCharm

1. Відкрийте середовище програмування PyCharm.

2. Створіть новий файл програми мовою програмування Python з іменем Упорядкування в папці Навчальні проекти своєї структури папок.

3. У вікні редактора коду запишіть команди введення значень елементів списку, його впорядкування та виведення списку у вікні виконання програми. Використайте у проекті змінні: а — список цілих чисел; і — номер ітерації пошуку мінімального елемента списку; j — номер елемента списку; min — найменше значення елемента; nmin — номер найменшого елемента (мал. 18.11).

18.4. Як прискорити пошук елемента в лінійній таблиці?

Якщо невідомо, які дані зберігаються в лінійній таблиці, то прискорити пошук елемента, що відповідає певній умові, у програмах мовою програмування Free Pascal неможливо. Якщо заздалегідь відомі деякі ознаки даних, серед яких ведеться пошук, наприклад таблиця впорядкована, можна суттєво скоротити час роботи, застосовуючи спеціальні методи пошуку.

Одним з методів пошуку, більш ефективним, ніж лінійний, є бінарний (двійковий) пошук, який називається також методом ділення навпіл. При його використанні на кожному кроці область пошуку скорочується вдвічі.

Для ознайомлення із цим методом доцільно уточнити властивості елементів таблиці — вони мають бути впорядковані за зростанням. Позначимо шуканий елемент масиву (списку) змінною х.

Можливі два випадки:

1) якщо х менший від елемента, розташованого посередині масиву (списку), тоді завдяки впорядкованості таблиці можна не розглядати всі елементи, розташовані правіше від середнього, і застосувати цей метод до лівої половини таблиці;

2) якщо х більший від елемента, розташованого посередині масиву (списку), тоді, міркуючи аналогічно, можна виключити з розгляду ліву половину таблиці й застосувати цей метод до його правої частини. Таким чином, на кожному кроці відсікається та частина таблиці, де не

може бути знайдено заданий елемент х.

Розглянемо суть методу на прикладі. Наприклад, знайдемо, чи є серед елементів таблиці з іменем а з 10 цілих чисел, впорядкованих за зростанням, значення х = 6 (мал. 18.12).

Знайдемо номер елемента, що міститься посередині таблиці: m = 5. Оскільки 6 < а[5], то далі розглядаються лише елементи, індекси яких менші ніж 5. Про інші елементи можна відразу сказати, що вони більші за х, оскільки таблиця впорядкована за зростанням, і тому правіше від а[5] шуканого елемента немає. Далі розглядатимемо тільки елементи таблиці від а[1] до а[4], знаходимо індекс середнього елемента цієї частини: m = 2, і порівнюємо задане число 6 з елементом а[2].

Виявляється, що 6 > а[2]. Це означає, що необхідно розглядати праву частину цієї половини таблиці від а[3] до а[4]. Знову знаходимо індекс середнього елемента m = 3 й порівнюємо його із шуканим: а[3] = 6. Елемент m знайдено — його номер 3.

У програмах мовою програмування Python для прискорення пошуку можна використати вбудовані засоби мови, зокрема ідеологію побудови циклу for, у якому замість індексів елементів можна переглядати самі елементи. Наприклад, у команді циклу

For elem in a:

змінна elem «пробігатиме» всі елементи списку а.

Можна не переглядати елементи списку, а просто перевірити входження елемента elem у список а за допомогою фрагмента програми:

Вправа 4. швидкий пошук.

завдання. У середовищі програмування Lazarus створіть проект Швидкий пошук для визначення, чи є вказане значення серед елементів лінійної таблиці з 10 цілих чисел.

1. У папці Навчальні проекти своєї структури папок створіть папку Швидкий пошук.

2. Відкрийте середовище Lazarus і створіть новий проект. Розмістіть на екранній формі об’єкти, самостійно надайте значень їхнім властивостям. Наприклад, як на малюнку 18.13.

Мал. 18.13

3. Створіть процедуру опрацювання події натиснення кнопки Відповідь. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: а — масив цілих чисел; x — шуканий елемент; і — номер елемента масиву; m — номер елемента, з якого здійснюють пошук; p — ліва межа пошуку; r — права межа пошуку; f — прапорець пошуку.

4. У вікні редактора коду запишіть команди введення елементів масиву в багаторядкове текстове поле, впорядкування елементів та їх виведення в багаторядкове текстове поле (мал. 18.14).

Мал. 18.14

5. Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов’язані з об’єктами управління екранної форми. Якщо є помилки, виправте їх. Завершіть роботу з проектом і середовищем програмування, зберігши всі зміни.

1. У чому полягає особливість пошуку першого елемента лінійної таблиці, який відповідає заданій умові?

2. Який алгоритм лежить в основі пошуку найбільшого елемента лінійної таблиці?

3. Чим відрізняється алгоритм пошуку найменшого елемента лінійної таблиці від алгоритму пошуку найбільшого елемента?

4. З якою метою впорядковують дані в лінійній таблиці?

5. Який алгоритм лежить в основі упорядкування масиву за зростанням?

6. Чи завжди можна скласти програму для «швидкого» пошуку в лінійній таблиці елемента, що відповідає заданій умові? Наведіть приклади.

1. Обговоріть, як зміниться програмний код у проекті Пошук елемента, якщо:

а) розглядати таблицю дійсних чисел та здійснювати пошук елемента, який дорівнює останньому елементу;

б) у середовищі Lazarus лінійну таблицю вводити в елемент управління StringGrid;

в) у середовищі PyCharm елементи списку генеруються випадково. Внесіть відповідні зміни у проект Пошук елемента, збережіть зміни у проекті з новим іменем у папку Проекти власної структури папок, запустіть проект на виконання та перевірте своє припущення.

2. Обговоріть, як зміниться програмний код у проекті Випробування, якщо:

а) знаходити різницю між найбільшим елементом таблиці та середнім значенням усіх елементів;

б) знаходити найменший елемент серед елементів лінійної таблиці з парними індексами;

в) знаходити найбільший елемент у прямокутній таблиці а цілих чисел, що складається з 5 рядків і 5 стовпців.

Внесіть відповідні зміни у проект Випробування, збережіть зміни у проекті з новим іменем у папку Проекти власної структури папок, запустіть проект на виконання та перевірте своє припущення.

3. Обговоріть, як зміниться програмний код у проекті Упорядкування, якщо упорядковувати елементи лінійної таблиці за спаданням. Внесіть відповідні зміни у проект Упорядкування, збережіть зміни у проекті з новим іменем у папку Проекти власної структури папок, запустіть проект на виконання та перевірте своє припущення.

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

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

3. У середовищі програмування PyCharm створіть проект Швидкий пошук для знаходження у списку з 10 дійсних чисел елемента, що відповідає заданій умові.

4. У вибраному середовищі програмування створіть проект Функція, у якому за даними значеннями функції, поданої таблично, знаходять найбільше, найменше значення функції, кількість значень, які містяться над віссю Ох та під віссю Ох, чи досягає функція свого найбільшого значення на області визначення більш ніж один раз.

5. У вибраному середовищі програмування створіть проект гри Відгадай число. Користувач вводить число, яке, на його думку, може міститись у лінійній таблиці з 10 цілих чисел, що генеруються випадково від 0 до деякого випадкового цілого числа.

Якщо таке число відгадане, то гра припиняється й виводиться

повідомлення про перемогу; якщо після 5 спроб число не вгадують, то гра припиняється з повідомленням про невдалі спроби. У грі можуть бути підказки, які спрямовуватимуть користувача на правильний вибір значення.

Проаналізуйте матеріали, подані за посиланням https://uk.wikipedia.org/ wiki/Сортування бульбашкою. За наведеними прикладами, наочною демонстрацією (мал. 18.15) та описом алгоритму складіть проект у вибраному середовищі програмування, у якому елементи лінійної таблиці з 10 дійсних чисел будуть упорядковані за зростанням «методом сортування бульбашкою».

складання й виконання алгоритму пошуку значень у таблиці

Як описати алгоритми пошуку елемента табличної величини за поданою властивістю мовами програмування.

У власній структурі папок створіть папку Практична робота 7.

Під час виконання практичних завдань пам’ятайте про правила безпеки життєдіяльності при роботі з комп’ютером!

Завдання 1. Черга (12 балів)

У магазині утворилася черга з 5 покупців. Час обслуговування кожного покупця в черзі подано в таблиці:

У вибраному середовищі програмування створіть проект Черга, у якому можна отримати:

1) номер покупця, якого обслуговували найкоротший час;

2) час найтривалішого обслуговування в черзі;

3) лінійну таблицю або список із сумарним часом очікування свого обслуговування кожним покупцем.

Завдання 2. Спортивні змагання (10 балів)

У деяких видах спортивних змагань виступ спортсмена оцінюється десятьма суддями. Із сукупності виставлених ними балів вилучаються найвищий і найнижчий бали. На основі решти балів обчислюється середнє арифметичне, яке й зараховується спортсмену як оцінка його виступу. Судді користуються десятибальною системою, виставляючи оцінки від 0 до 10. У вибраному середовищі програмування створіть проект Спортивні змагання, у якому можна за виставленими суддівськими оцінками та вказаними правилами розрахунку визначити середню оцінку виступу спортсмена.

Завдання 3. Табель (12 балів)

У вибраному середовищі програмування створіть проект Табель, у якому реалізовано електронний табель. У проекті передбачте, що в лінійній таблиці задають назви предметів, які вивчає учень. Елементи управління екранної форми передбачають можливість за номером предмета дізнатись оцінку з відповідного предмета; отримати дані про максимальну оцінку з предметів, що вивчаються; кількість предметів, які мають найвищу та найнижчу оцінки; середній бал успішності.

 

Це матеріал з підручника Інформатика 9 клас Морзе

 






^