Досить часто при роботі з масивами виникає необхідність обчислення суми, добутку та кількості елементів масиву, що задовольняють деяку умову. Як знаходити такі величини, розглянемо далі, розв’язуючи прикладні задачі.
Бажано розуміти!З чим працюємо в алгоритмі і що потрібно вивести на екран.
Це може бути індекс (номер) елементу списку (масиву)
Це може бути елемент списку (масиву)
Це може бути результат дій, функцій, методів над індексами (номерами) елементів списку (масиву)
Це може бути результат дій, функцій, методів над елементами списку (масиву)
Це може бути комбінований результат дій, функцій, методів над індексами (номерами) елементів списку (масиву) та над елементами списку (масиву)
Завдання. Дано прибутки та збитки деякої фірми за кожний місяць поточного року. Визначити:
• суму прибутків та суму збитків;
• прибутковою чи збитковою була робота фірми за підсумками року і якою була сума прибутку чи збитку;
• кількість місяців, коли фірма мала збитки;
• кількість місяців, коли прибуток був більший за 50000.
Створення масиву прибутків та збитків
Для зручності створення масиву прибутків та збитків заповнимо його випадковими числами в діапазоні від –100000 до 100000.
1. Уведіть команду імпорту модуля random.
2. Додайте команду створення порожнього списку d, у якому будемо формувати масив доходів фірми.
3. Додайте оператор циклу для створення масиву 12 випадкових чисел, що відповідають кількості місяців у році.
for i in range(12):
a=random.randint(-100000,100000)
d.append(a)
print(d[i])
4. Запустіть програму на виконання та переконайтеся, що буде виведено
масив із 12ти випадкових чисел, що належать діапазону від –100000 до 100000.
Сума прибутків та сума збитків
Наступним етапом є визначення суми прибутків та суми збитків.
Суму прибутків позначимо змінною sp, а суму збитків — sz.
5. Додайте команду встановлення початкового значення для суми прибутків, рівного 0.
6. Додайте оператор циклу знаходження суми прибутків:
for i in range(12):
if d[i]>0:
sp=sp+d[i]
Тут оператор розгалуження перевіряє умову, чи є значення елемента масиву додатним. Якщо умова виконується, то значення суми прибутку sp збільшується на значення елементу масиву d[i].
7. За межами тіла циклу додайте команду виведення значення суми прибутку.
8. Аналогічно додайте команди обчислення суми збитків sz.
a. Перед попереднім циклом установіть початкове sz=0.
b. У тілі циклу, в якому було знайдено суму прибутків, додайте команди обчислення суми збитків:
if d[i]<0:
sz=sz+d[i]
9. Додайте команду виведення суми збитків sz.
10. Запустіть програму та перевірте правильність її виконання.
Визначення прибутковості чи збитковості роботи фірми
Далі визначимо, прибутковою чи збитковою була робота фірми за підсумками року і якою була сума прибутку чи збитку.
11. Надайте змінній r значення різниці між сумою прибутку та збитку
r=sp-abs(sz).
12. Додайте оператор розгалуження: якщо значення r є додатним, то виведіть повідомлення, що фірма є прибутковою, інакше — збитковою:
if r>0:
print('Фірма є прибутковою, прибуток фірми за рік становить:',r)
else:
print('Фірма є збитковою, збиток фірми за рік становить:', abs(r))
Тут функція abs дозволяє вивести абсолютне значення r.
13. Запустіть програму та перевірте правильність її виконання.
Визначення кількості місяців, коли фірма мала збитки
Далі визначимо кількість місяців, коли фірма мала збитки. Кількість збитків позначимо змінною kz.
Пошук кількості збиткових місяців виконаємо в тілі того ж циклу, в якому виконували обчислення суми прибутків та збитків.
14. Перед оператором тіла циклу додайте команду kz=0, що визначає початкове значення змінної kz.
15. У тілі оператора розгалуження, що перевіряє чи є значення елемента масиву від’ємним, додайте команду збільшення значення змінної kz на 1.
if d[i]<0:
sz=sz+d[i]
kz=kz+1
16. За межами тіла циклу додайте команду виведення значення кількості збиткових місяців.
17. Запустіть програму та перевірте правильність її виконання.
Визначення кількості місяців, коли фірма мала прибуток більший за 50000
Далі визначимо кількість місяців, коли фірма мала прибуток більший за 50000. Кількість таких місяців позначимо змінною kp. Пошук кількості прибуткових місяців виконаємо в тілі того ж циклу.
18. Додайте команду kp=0, для встановлення початкового значення змінній kp.
19. У тілі циклу додайте оператор розгалуження: якщо значення елемента масиву більше за 50000, то збільшіть значення змінної kp на 1:
if d[i]>50000:
kp=kp+1
20. Додайте команду виведення значення змінної kp після виконання тіла циклу.
21. Запустіть програму та перевірте правильність її виконання.
22. Самостійно додайте команди визначення:
• кількості місяців коли прибуток становив від 50000 до 100000;
• суми, одержаної в літні місяці;
• прибутковості чи збитковості роботи фірми зимою.