16.09.2021-23.10.2021
Тема: Операції над
одновимірними масивами(списками). Пошук
найменших та найбільших значень лінійних виразів на числових множинах мовою
програмування Python3
Теоретична частина
Множина lst=[a, b, c, d,
e, f, …, z] - це список чисел
Нумерація
елементів списку:
lst[0]=a - це перший елемент списку або масиву;
lst[1]=b - це другий елемент списку або масиву;;
lst[2]=c - це третій елемент списку або масиву;;
lst[3]=d - це четвертий елемент списку або масиву
………Перелік операцій над елементами у списку …
2.Видаляємо елемент зі списку з індексом 4 за допомогою команди
lst.pop(4) або del lst[4]
3.Видаляємо зі списку елемент із значення 7 за допомогою команди
lst.remove(4)
4.Видаляємо декілька елементів списку за допомогою команди
lst[3:6]=[]
5.У списку видаляється два елементи і додається пять елементів
lst[3:5]=[0,2,4,6,8]
6.Створення копії
списку записується командою:
A1=lst
7.Створення копії
списку за допомогою зрізу записується командою:
В1=lst[:]
8.Створення копії
списку за допомогою методу copy записується
командою:
H1=lst.copy
Практична частина
Завдання
1. Створити,
реалізувати та протестувати алгоритм
мовою програмування Python3 в середовищі
програмування Thonny для
створення одновимірних масивів(списків) з числовими елементами типу цілих та
дробових чисел різними способами та їх наповнення елементами.
Реалізація.
import random
print('********Перший
спосіб утворення списку lst')
print('Введіть
числа з клавіатури в рядок через один пропуск lst=')
lst=[int(x) for
x in input().split()]
print('rez=',lst)
for k in
range(0, len(lst)):
lst[k]=2*lst[k]
print('Подвоєнні
елементи списку',lst)
print('********Другий
спосіб утворення списку lst1')
print('Список,
що автоматично створений
лічильником lst1')
lst1=[int(x) for
x in range(1,56,5)]
print('rez1=',lst1)
for k in
range(0, len(lst1)):
lst1[k]=3*lst1[k]
print('Потроєнні
елементи списку lst1=',lst1)
print('*******Третій
спосіб утворення списку lst3******')
print('Список,
що створений генератором випадкових
цілих чисел lst3')
lst3=[1000*random.randint(11,22)]*7;
print('rez3=',lst3)
for k in
range(0, len(lst3)):
lst3[k]=0.5*lst3[k]
print('Половині
елементи списку lst3=',lst3)
print('*******Четвертий
спосіб утворення списку lst3******')
print('Список,
що створений генератором випадкових
дробових чисел lst3=')
lst3=[1000*random.gauss(11,22)]*7;
print('rez3=',lst3)
for k in
range(0, len(lst3)):
lst3[k]=0.5*lst3[k]
print('Половині
елементи списку lst3=',lst3)
print('*******Пятий
спосіб утворення списку lst4******')
print('Список,
що створений циклом із генератором випадкових цілих чисел lst4=')
h=6; k=6; lst4=['None']*k;
for j in
range(0,h):
lst4[j]=((-1)**h)*random.randint(-817+h,962-h)
print("Випадкові
цілі числа у масиві або списку lst4=", lst4)
for k in
range(0, len(lst4)):
lst4[k]=1.5*lst4[k]
print('Півторашні
елементи списку lst4=',lst4)
Протестуйте
алгоритм, якщо 1) [1, 2, 3]; 2) [0, 1, 2, 3, 4]; 3) [7, 9];
Завдання
2. Створити та
реалізувати алгоритм мовою програмування
Python3 в середовищі програмування
Thonny для створення масивів з числовими
елементами типу цілих та дробових чисел різними способами та їх наповнення
елементами.
Реалізація.
import
random; print("Різні способи
створення масиву на Python3")
print("Oперації
над одномірними масивами на Python3")
k=6; z=['None']*k; y=[2**k+5*k]*(10-k); x=[-3.95-k/4.5]*(8-k)
d=[1000*random.gauss(11,22)]*3; print("Порожній масив або
список:",z)
print("Числовий
одновимірний масив або список:",y)
print("Втричі
збільшений числовий одновимірний масив або список:", 3*y)
print("Числовий
масив або список:",x)
print("Випадкові
дробові числа у масиві або списку:",d)
squares = [1, 4,
9, 16, 25];
print("Довільно
задані елементи масиву:", squares)
print("Початковий
елемент масиву: a[0]=",squares[0])
print("Другий
елемент масиву: a[1]=",squares[1])
print("Останній
елемент масиву: a[4]==",squares[-1])
print("Останні
три елементи масиву: a[2], a[3], a[4]:",squares[-3:])
print("Усі
елементи списку",squares[:])
print("Проміжкові
елементи масиву",squares[2:4])
m=40; q=[s for s in range(m,10,-4)];
print("Запис
елементи списку з кінця" ,q)
h=6;
for j in
range(0,h):
z[j]=((-1)**h)*random.randint(-897+h,922-h)
print("Випадкові
цілі числа у масиві або списку:", z)
Протестувати
цей алгоритм чотири рази.
Тест
1. k=3; z=['OK!']*k; y=[3**k-8*k]*(20-k); x=[-9.25-k/1.6]*(19-k)
Тест
2. k=10;
z=['123456789']*k; y=[4**k-2*k]*(15-k); x=[-1.75-k/0.5]*(14-k)
Тест
3. k=7; z=['99778866']*k; y=[5**k-3*k]*(12-k); x=[-0.75-k/0.25]*(11-k)
Тест
4. k=15;
z=['903008800309']*k; y=[5**(k-10)-3*k]*(19-k); x=[-8.75-k/9.25]*(18-k)
Завдання
3. Створити та
реалізувати алгоритм мовою програмування
Python3 в середовищі програмування
Thonny для сортування та пошуку середніх
величин у числових масивах із числовими елементами типу цілих та дробових чисел
різними способами.
Реалізація.
import random;
n=10; a=[]*n;
b=[]*n; c=[]*n;
for i in range(n):
a.append(round((19.9 -
random.gauss(-23,97) * 4.0), 2))
b.append(round((17.8 -
random.random() * 7.0), 3))
c.append(round((15.6 -
random.randint(-234,876) * 2.0), 0))
print('Перший вхідний масив випадкових дробових чисел: ', a)
print('Другий вхідний масив випадкових дробових чисел: ', b)
print('Третій вхідний масив випадкових цілих чисел: ', c)
a.sort(); b.sort(); c.sort();
print('Впорядкувані елементи масиву а[] за зростанням: ', a)
print('Впорядкувані елементи
масиву b[] за зростанням: ', b)
print('Впорядкувані елементи
масиву c[] за зростанням: ', c)
suma=sum(a); sumb=sum(b);sumc=sum(c);
print('Сума усіх елементів масиву а[]: ', round(suma,2))
print('Сума усіх елементів масиву b[]: ', round(sumb,4))
print('Сума усіх елементів масиву
c[]: ', round(sumc,1))
la=len(a); lb=len(b);lc=len(c);
mina=min(a); minb=min(b); minc=min(c);
print('Найменший із усіх елементів масиву а[]: ', mina)
print('Найменший із усіх елементів масиву b[]: ', minb)
print('Найменший із усіх елементів масиву c[]: ', minc)
maxa=max(a); maxb=max(b); maxc=max(c);
print('Найбільший із усіх елементів масиву а[]: ', maxa)
print('Найбільший із усіх елементів масиву b[]: ', maxb)
print('Найбільший із усіх
елементів масиву c[]: ', maxc)
midlea=sum(a)/n; midleb=sum(b)/n;
midlec=sum(b)/n;
seraryfa=(max(a)+min(a))*0.5; seraryfb=(max(b)+min(b))*0.5;
seraryfc=(max(c)+min(c))*0.5;
print('Відхилення середніх величин в масиві а[]: ',
round(midlea-seraryfa,3))
print('Відхилення середніх величин в масиві b[]: ', round(midleb-seraryfb,3))
print('Відхилення середніх величин в масиві c[]: ', round(midlec-seraryfc,3))
print('Кількість чисел масиву а: ', len(a),'max(a) = ', n)
print('Відсортований масив за зростанням: ',a)
for i in range(0,9):
b[9-i]=a[i]
print('Відсортований масив a[] за спаданням: ',b)
print('max = {0}; min = {1}'.format(a[-1], a[0]))
print('Різниця max-min: ', round(a[-1] - a[0], 2))
Протестувати
цей алгоритм чотири рази.
Тест
1. Змінити кількість елементів масиву на n=15;
Тест
2. Змінити кількість елементів масиву на n=25;
Тест
3. Змінити кількість елементів масиву на n=16;
Тест
4. Змінити кількість елементів масиву на n=27;
*****************************************
Для тих, хто хоче самостійно програмувати:
Самостійна робота.
Компетентнісні завдання для самостійного програмування.
0. Створити наступний алгоритм. Нам потрібно визначити, яку заробітну платню одержить на фірмі сумісник за виконану роботу, якщо йому нараховано S грн., а податок становить 20%.
Вхідні дані
Ви вводите з клавіатури одне дійсне число S.
Вихідні дані
Ви виводите на екран одне дійсне число з двома знаками після коми (без округлення).
Приклад вхідних і вихідних даних
Вхід: 1000
Вихід: 800.00
1. Максим задумав число х, яке нікому не повідомив. Але на дошці записав інше число m, а саме: подвоєнне задумане число, збільшене на 7. Відгадайте, яке число задумав Максим. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за числом m, що записане на дошці, знаходить задумане Максимом число x.
Математична модель: x=0.5*m-3.5
2. На праву тарілку великих терезів став Котигорошко, масою k кг, а на ліву тарілку стали три дівчинки відповідно з масами m кг, n кг, p кг. Аби досягти рівноваги на терезах Котигорошко з'їв b кг гороху. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за числами k, m n, p знаходить число b.
Математична модель: b= m+n+p-k.
3. Артем доглядає у зоопарку плазунів: k гадюк довжиною по 1,12 м кожна, m удавів довжиною 2,75 м кожний, n вужів довжиною 1,24 кожний. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за числами k, m n, p знаходить довжину усіх плазунів, за якими доглядає Артем.
Математична модель: s=1.12*k+2.75*m+1.24*n
4. Богдан записав на дошці ціле число k. Вікторія записала на дошці ціле число m. Марія записала на дошці ціле число n. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за цілими числами k, m, n знаходить такі цілі числа х та у, що виконується рівність k*x+m*y=n.
Математична модель: x=-mz+xo, y=kx+yo, де (xo; yo ) - пара цілих чисел таких, що k*xо+m*yо=n
5. Дмитро закупив k м'ячів вартістю m грн, n м’ячів вартістю g грн, t м’ячів вартістю р грн, заплативши за м'ячі кожного виду однакові суми грошей. Усього м’ячів k+n+t=b. Скільки м'ячів кожного виду купив Дмитро, якщо серед набору чисел k, m n, g немає рівних чисел. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за чотирьма цілими числами b, m, g, p знаходить три цілі числа: k м'ячів по m грн, t м'ячів по p гривень, n м'ячів по g грн.
Математична модель: k*m==g*n==t*p==s та k+n+t==b.
6. Трицифрове число має k coтень, m десятків, і n одиниць.
Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за числами k, m, n знаходить різницю h між цим числом та cyмою цифр трицифрового числа. Математична модель: h = 99*x+9*y.
7. Ігор задумав чотири послідовних парних чисел і повідомив своєму другові Максиму лише суму цих чотирьох чисел. Через деякий час Максим самостійно знайшов усі задумані Ігорем чотири числа. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за відомою сумою s знаходить чотири послідовні парні числа k, m n, p, які задумав Ігор.
Математична модель.
S=2x+(2x+2)+(2x+4)+2x+6
S=8x+12
8x=s-12
x= (s-12)//8
k=(s-12)//4 - перше задумане число
m = k + 2 - друге задумане число
n= m+2 - третє задумане число
p=n+2 - четверте задумане число.
8. Для нумерації m сторінок книги використали n цифр(символів)( n<1002). До речі, кількість сторінок у книзі повинна бути кратною 4. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за
числом використаних n цифр знаходить кількість сторінок y книзі.
Математична модель.
9 цифр для усіх одноцифрових чисел.
90*2=180 цифр для усіх двоцифрових позначень.
900*3=2700 цифр для усіх трифрових позначень.
1002-189= 813 цифр для позначення трицифрових чисел.
Створимо розгалуження окремих випадків.
1)Якщо (186<n<1002)and((n-189)%3==0), тоді
(n-189)//3 - кількість сторінок, що позначає трьома цифрами
m =9+90+(n-189)//3 - кількість сторінок у книзі, і при цьому m повинна бути кратне 4.(m%4==0)
2)Якщо ( 9<n<=189)and((n-9)/%2==0), тоді
m =9+(n-9)//3 - кількість сторінок у книзі
і прицьому m повинно бути кратне 4(m%4==0).
3)Якщо (n==4)or(n==8), тоді
m=n - кількість сторінок.
4)Інакше такої книги не може існувати.
Немає коментарів:
Дописати коментар