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

33. Знаходження підсумкових величин в Python

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





Попередня сторінка:  32. Практична робота 8. «Дії з масивами в...
Наступна сторінка:   34. Пошук елементів у масиві в Python

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

ВПРАВА 33.1

Завдання. Дано прибутки та збитки деякої фірми за кожний місяць поточного року. Визначити:

суму прибутків та суму збитків;

прибутковою чи збитковою була робота фірми за підсумками року і якою була сума прибутку чи збитку; кількість місяців, коли фірма мала збитки; кількість місяців, коли прибуток був більший за 50000.

Створення масиву прибутків та збитків

Для зручності створення масиву прибутків та збитків заповнимо його випадковими числами в діапазоні від -100000 до 100000.

1. Уведіть команду імпорту модуля random.

2. Додайте команду створення порожнього списку d, у якому будемо формувати масив доходів фірми.

3. Додайте оператор циклу для створення масиву 12 випадкових чисел, що відповідають кількості місяців у році.

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

Сума прибутків та сума збитків

Наступним етапом є визначення суми прибутків та суми збитків. Суму прибутків позначимо змінною sp, а суму збитків — sz.

5. Додайте команду встановлення початкового значення для суми прибутків, рівного 0.

6. Додайте оператор циклу знаходження суми прибутків:

Тут оператор розгалуження перевіряє умову, чи є значення елемента масиву додатним. Якщо умова виконується, то значення суми прибутку sp збільшується на значення елементу масиву d[i].

7. За межами тіла циклу додайте команду виведення значення суми прибутку.

8. Аналогічно додайте команди обчислення суми збитків sz. a. Перед попереднім циклом установіть початкове

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

9. Додайте команду виведення суми збитків sz.

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

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

Далі визначимо, прибутковою чи збитковою була робота фірми за підсумками року і якою була сума прибутку чи збитку.

11. Надайте змінній r значення різниці між сумою прибутку та збитку

12. Додайте оператор розгалуження: якщо значення r є додатним, то виведіть повідомлення, що фірма є прибутковою, інакше — збитковою:

Тут функція abs дозволяє вивести абсолютне значення r.

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

Визначення кількості місяців, коли фірма мала збитки

Далі визначимо кількість місяців, коли фірма мала збитки. Кількість збитків позначимо змінною kz. Пошук кількості збиткових місяців виконаємо в тілі того ж циклу, в якому виконували обчислення суми прибутків та збитків.

14. Перед оператором тіла циклу додайте команду

що визначає початкове значення змінної kz.

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

16. За межами тіла циклу додайте команду виведення значення кількості збиткових місяців.

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

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

Далі визначимо кількість місяців, коли фірма мала прибуток більший за 50000. Кількість таких місяців позначимо змінною kp. Пошук кількості прибуткових місяців виконаємо в тілі того ж циклу.

18. Додайте команду

для встановлення початкового значення змінній

kp.

19. У тілі циклу додайте оператор розгалуження: якщо значення елемента масиву більше за 50000, то збільшіть значення змінної kp на 1:

20. Додайте команду виведення значення змінної kp після виконання тіла циклу.

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

22. Самостійно додайте команди визначення: кількості місяців коли прибуток становив від 50000 до 100000; суми, одержаної в літні місяці; прибутковості чи збитковості роботи фірми зимою.

33.1.

Знаходження суми та кількості елементів

Знаходження суми

Отже, для знаходження та виведення суми елементів, що задовольняють указану умову, використовується така загальна конструкція:

Спочатку сумі надається початкове значення 0. Оскільки сума обчислюється в циклі, наступним кроком є оператор циклу. Далі здійснюється перевірка умови. У разі виконання умови обчислюється сума за таким правилом: до попереднього значення суми додається значення елемента масиву. Виведення значення суми відбувається за межами тіла циклу.

Знаходження кількості

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

Дана конструкція є аналогічною до знаходження суми. Відмінною є лише формула знаходження кількості.

33.2.

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

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

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

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

ВПРАВА 33.2

Завдання. В поліклініці з понеділка починають робити щеплення. Кожен день фіксують кількість проведених щеплень. Заповнити масив проведення щеплень випадковими числами, врахувавши, що кількість днів щеплень має ввести користувач, у неділю щеплення не відбувається та кількість щеплень за один день від 20 до 50 осіб. Визначити:

кількість щеплень, зроблених у парні дні, та кількість щеплень, зроблених у непарні дні;

кількість днів, коли було зроблено від 30 до 40 щеплень за день; середню кількість щеплень, що було зроблено у робочі дні.

Створення та виведення масиву кількості щеплень

1. Уведіть команду імпорту модуля random.

2. Для створення масиву кількості проведених щеплень додайте команду створення порожнього списку vac.

3. У наступному рядку додайте команду введення кількості днів проведення щеплення:

4. Для створення масиву уведіть оператор циклу, що буде виконуватися n раз:

У тілі циклу оператор розгалуження здійснює перевірку, чи ділиться порядковий номер дня на 7, тобто чи припадає цей день на неділю. Зверніть увагу, що тут до і додається 1, оскільки нумерація індексів циклу починається з 0, а порядок днів з одиниці, отже, індекс відрізняється від порядкового номера дня на 1. В лівій частині виразу обчислюється остача від ділення порядкового номера дня на 7. Отже, в умові перевіряється, чи ділиться число на 7 без остачі. Якщо вказана умова виконується, то змінній а присвоюється значення 0. Тут змінна а — це кількість щеплень у поточний день. У протилежному випадку змінній а надаємо значення цілого випадкового числа у проміжку від 20 до 50. За межами оператора розгалуження додаємо значення змінної а в кінець масиву vac.

5. За межами оператора циклу додайте команду виведення масиву vac.

6. Запустіть програму на виконання, введіть кількість днів щеплення, наприклад, 50. Переконайтеся, що виведено масив чисел, де кожний сьомий елемент є нульовим, а інші числа є випадковими числами від 20 до 50.

Кількість щеплень, зроблених у парні та непарні дні

Далі визначимо кількість щеплень, зроблених у дні, що мають парний порядковий номер, та кількість щеплень у непарні дні. Так, для даного прикладу це елементи масиву, що мають індекс 1, 3, 5 тощо, відповідно вони будуть мати парні порядкові номери днів 2, 4, 6 і так далі. Значення, яке необхідно знайти, будемо надавати змінній sp, в якості суми елементів масиву vac. Відповідно інші елементи

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

7. У програмному коді встановіть початкові значення для змінних sp та sn, рівні нулю.

8. Для знаходження суми додайте оператор циклу для виконання n ітерацій:

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

9. За межами тіла циклу додайте команду виведення знайдених значень.

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

Кількість днів, коли було зроблено від 30 до 40 щеплень за день

Далі обчислимо кількість днів, коли було зроблено від 30 до 40 щеплень. Результат надамо змінній k. Дане значення знайдемо у тілі того ж самого циклу, що і для попереднього завдання.

11. Перед оператором циклу встановіть початкове значення для змінної k, рівне 0.

12. Для перевірки умови додайте вказівку розгалуження, в якій скористайтеся подвійною умовою, суть якої полягає в тому, що значення елемента масиву vac є більшим або рівним числу 30 та меншим або рівним числу 40. Якщо умова виконується, збільшіть значення змінної k на 1.

13. За межами тіла циклу додайте команду виведення знайденого значення.

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

Середня кількість щеплень, що було зроблено у робочі дні

Знайдемо ще одне значення. А саме, середню кількість щеплень, що було зроблено у робочі дні. Тобто необхідно врахувати усі дні, крім неділь. Результат обчислення округлимо до цілого значення та надамо змінній avg. Для знаходження середньої кількості щеплень у робочі дні необхідно розділити загальну кількість щеплень (5) на кількість робочих днів:

ау£=5/(кількість робочих днів)

Кількість робочих днів можна визначити за формулою — від загальної кількості днів (n) відняти кількість неділь (k_Sun):

avg=s/(n-k_Sun)

У даній формулі залишаються невідомими загальна кількість щеплень (s) та кількість неділь (k_Sun). Отже, переходимо до їхнього пошуку.

15. У тілі програми додайте команду знаходження кількості неділь:

Для знаходження кількості неділь скористаємося методом count, який визначає у масиві кількість входжень вказаних у дужках значень.

16. Додайте команду визначення загальної кількості щеплень:

17. Додайте команду обчислення середньої кількість щеплень у робочі дні:

18. Додайте команду виведення знайденого значення.

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

20. Самостійно додайте команди визначення: кількості днів, коли було зроблено більше ніж 45 щеплень; у які дні було зроблено максимальну та мінімальну кількість щеплень; кількості днів, коли щеплення не робили.

Контрольні запитання та завдання

1. Як знайти суму, кількість та добуток елементів масиву, що задовольняють указаній в умові?

2. Чим відрізняється структура коду знаходження суми від знаходження добутку?

Питання для роздумів

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

2*. Якою має бути оператор циклу для знаходження суми та кількості усіх парних елементів масиву?

 

 

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

 




Попередня сторінка:  32. Практична робота 8. «Дії з масивами в...
Наступна сторінка:   34. Пошук елементів у масиві в Python



^