Інформація про новину
  • Переглядів: 375
  • Дата: 5-02-2022, 16:05
5-02-2022, 16:05

41. Практична робота 9. «Дії з двовимірними масивами» в Python

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





Попередня сторінка:  40. Двовимірні масиви в Python
Наступна сторінка:   42. Поняття 3D-моделювання

Завдання. На змаганнях з фігурного катання 10 спортсменів одержують оцінку свого виступу від 5 суддів. Оцінка, яку може виставити один суддя, визначається кількістю балів від 0 до 6. Визначити сумарний бал кожного учасника змагань, установити рейтинг учасників, визначити номер судді, який виставив найбільший бал кожному учаснику. Дані та їхню обробку представити в графічному вікні (рис. 41.1). У виносках наведеного рисунка подано імена елементів керування, що будуть використовуватися у коді програми.

Для виконання завдання скористайтеся файлом-заготовкою ПР_9.ру із матеріалів до даного параграфа. Даний файл містить команди створення деяких елементів інтерфейсу програми, список name із прізвищами учасників змагань.

1. Завантажте та відкрийте файл ПР_9.ру.

2. Додайте команди виведення списку name до елемента керування Lb_name. Самостійно визначте місце їхнього розташування:

Створення та виведення масиву результатів змагань

3. Додайте команду імпорту модуля random.

4. Після команди створення графічного вікна додайте команди створення масиву оцінок 10-м учасникам від 5-ти суддів.

5. Нижче додайте обробник події кнопки Результати змагань.

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

6. В конструкторі кнопки B_rez додайте виклик обробника події b_rez_click.

7. Запустіть програму та перевірте правильність її виконання. Обчислення та виведення масиву суми балів

8. Додайте команди створення та виведення до графічного вікна елементів Lb_sum та B_sum (див. рис. 41.1).

9. Додайте команду створення порожнього списку suma для знаходження суми оцінок кожного учасника змагань:

10. Додайте команди обробника події кнопки Обчислення суми.

11. В конструкторі кнопки B_sum додайте виклик обробника події b_sum_click.

12. Запустіть програму та перевірте правильність її виконання.

Сортування масивів за рейтингом

Для встановлення рейтингу учасників необхідно відсортувати елементи масиву suma за спаданням та вивести відсортований масив в елементі Lb_sum. Під час сортування елементи масиву мають бути переміщені. Відповідно до цього необхідно перемістити і елементи масиву name, а також рядки масиву rez.

13. Додайте команди створення та розташування в графічному вікні кнопки B_rank.

14. Додайте команди обробника події кнопки Рейтинг.

a. Уведіть заголовок обробника події b_rank_click, а у тілі обробника події команди очищення списків Lb_name, Lb_rez та Lb_sum.

b. У тілі обробника додайте команди сортування списку suma методом вибору:

c. Нижче додайте команду виведення відсортованого списку до елемента L_sum:

d. Самостійно додайте команду переміщення елементів масиву name відповідно до переміщення елементів масиву sumа під час його

сортування, а також команду виведення даного масиву до елемента Lb_name.

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

e. Додайте наведену вище команду до тіла циклу сортування масиву.

f. Додайте команди виведення оновленого масиву rez у тілі циклу виведення масивів name та suma.

15. В конструкторі кнопки B_rank додайте виклик обробника події b_rank_click.

16. Запустіть програму та перевірте правильність її виконання.

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

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

необхідно знайти максимальне значення кожного рядка та його номер

у масиві rez. Знайдені значення вивести у форматі: максимальний

бал — номер судді.

17. Додайте команди створення та розташування в графічному вікні елементів керування Lb_ref та B_ref.

18. Додайте команди обробника події кнопки Найкращий бал судді.

19. В конструкторі кнопки B_ref додайте виклик обробника події b_ref_click.

20. Запустіть програму та перевірте правильність її виконання.

21*. Самостійно обчисліть та визначте середній бал кожного учасника змагань.

22*. Визначте та виведіть медіану оцінки для кожного учасника. Для цього потрібно відсортувати оцінки кожного учасника за зростанням та вивести 3-й елемент масиву.

23*. Порівняйте значення, одержані в п.21 та п.22. Як ви думаєте, чому деякі значення не співпадають?

Висновки

Масив — це впорядкований набір елементів одного типу зі спільним ім’ям. У мові Python для створення масивів використовують списки.

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

Функція

Призначення

sum(cnMCOK)

Обчислення суми елементів

тах(список)

Визначення максимального елемента

тіп(список)

Визначення мінімального елемента

івп(список)

Визначення розмірності списку

йеі(діапазон)

Видалення елементів

Метод

Призначення

append

Додавання значення в кінець списку

extend

Додавання значень в кінець списку

insert

Додавання значення до вказаної позиції списку

pop

Вилучення елемента з указаної позиції

remove

Вилучення першого входження вказаного елемента

sort

Сортування списку

clear

Очищення списку

index

Пошук номера першого входження елемента

count

Пошук кількості входжень елемента

split

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

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

Знаходження

суми

Знаходження

кількості

Знаходження

добутку

s=0

for i in range(): if умова:

s=s+імJя_списку[i]

k=0

for i in range(): if умова: k=k+1

P=1

for i in range(): if умова:

р=р*ім'я_списку[і]

Для сортування масивів використовуються методи сортування вибором, бульбашками тощо.

Для обміну елементів масиву

та

місцями використовується така конструкція:

 

 

 

Це матеріал з підручника Інформатика 9 клас Казанцева, Стеценко 2022

 




Попередня сторінка:  40. Двовимірні масиви в Python
Наступна сторінка:   42. Поняття 3D-моделювання



^