Інформація про новину
  • Переглядів: 2305
  • Дата: 8-05-2020, 19:37
8-05-2020, 19:37

Опрацювання елементів списку

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





Попередня сторінка:  Списки — змінювані послідовності
Наступна сторінка:   Функції та методи опрацювання списків

Уявіть себе бухгалтером підприємства, який аналізує відомість заробітної платні співробітників за місяць . Які задачі можуть виникнути під час такого аналізу? Визначення загальної суми виплат, середньої зарплатні, найбільшого значення — ці та багато інших прикладних задач потребують опрацювання сукупностей значень, тобто списків. Розглянемо основні типи задач опрацювання елементів списку:

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

• задачі на пошук елемента із заданою властивістю;

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

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

Перебір елементів списку

Перебрати елементи списку можна двома способами (розглянемо їх на прикладі виведення списку на екран):

1

Послідовно звертатися до елементів за їх індексами. У такому випадку потрібно знати кількість елементів у списку (функція len())

2

Перебрати всі наявні в списку елементи

Між цими способами є суттєва відмінність: лише звернення за індексом дозволяє змінювати значення елементів списку (див . далі) .

Опрацювання елементів списку

Розглянемо основні типи задач опрацювання даних, що містяться у списках, детальніше

Заміна значень усіх елементів списку

Алгоритм розв’язування задачі: послідовно перебрати всі елементи списку й значення чергового елемента змінити за заданим правилом (змінити знак на протилежний, збільшити на певну величину тощо)

Алгоритм розв’язування задачі: послідовно перебрати всі елементи списку; якщо черговий елемент або його індекс відповідає деякій умові, його значення змінити за певним правилом .

Визначення кількості елементів списку із заданою властивістю

Алгоритм розв’язування задачі: присвоїти змінній-лічильнику значення 0; у циклі перебрати всі елементи списку; якщо черговий елемент відповідає деякій умові, то значення лічильника збільшити на 1 .

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

Для розв’язування задачі створимо список show, до якого занесемо номери учасників, зазначених у SMS-повідомленнях. Створимо додатковий список win із 5 елементів — за числом учасників . У (і - 1)-му елементі списку win будемо зберігати інформацію про те, скільки разів зустрівся номер учасника в списку show (рис. 7.1) .

Алгоритм визначення переможця: припустити, що найбільшим є k = win[0], після чого перебрати елементи списку з індексами від 1 до 4; якщо черговий елемент win[i] > k, то k присвоїти win[i] і запам’ятати індекс і у змінній n.

Знаходження суми (добутку) елементів списку

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

Знаходження суми (добутку) елементів із заданою властивістю

Алгоритм розв’язування задачі: зробити початкове значення суми рівним 0 (значення добутку рівним 1); у циклі перебрати всі елементи списку; якщо черговий елемент відповідає деякій умові, додати його значення до значення суми (або помножити на нього значення добутку) .

Деякі типові алгоритми опрацювання списків реалізовані у вигляді методів класу list (про це далі) .

Питання для самоперевірки

1. Поясніть відмінності між двома способами перебору елементів списку:

а) for i in range(len(a)): print(a[i]) б) for i in a: print(i)

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

3. Поясніть алгоритм визначення кількості елементів списку із заданою властивістю .

4. Поясніть алгоритм обчислення суми елементів списку.

5. Дано список a = [2, -7, -1, 8, 4] . Що буде надруковано після виконання наведених фрагментів коду?

6. На складі зберігається 20 видів товарів . До списку а занесено кількість одиниць кожного товару, до списку b — ціни цих товарів . Обчисліть загальну вартість товарів на складі .

Вправа 7

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

2) Створіть змінну-лічильник помилок: k = 0 .

3) Змінній і для збереження індексу поточного елемента надайте значення 0 .

Запитання користувачеві пропонуються доти, поки не закінчився список країн (і < 5) і користувач не припустився третьої помилки (k < 3) .

4) Напишіть оператор розгалуження, в якому в залежності від значення k видається відповідне повідомлення:

5) Додайте до списків а і b ще декілька країн і їхніх столиць . Внесіть до програмного коду відповідні зміни .

6) Збережіть програму у файлі з іменем Vprava7.

Випробуйте програму, проаналізуйте результати її роботи

Комп’ютерне тестування

Виконайте тестове завдання 7 із автоматичною перевіркою результату

 

 

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

 




Попередня сторінка:  Списки — змінювані послідовності
Наступна сторінка:   Функції та методи опрацювання списків



^