вівторок, 14 вересня 2021 р.

16.09.2021-23.10.2021 Операції над одновимірними масивами(списками).

 

16.09.2021-23.10.2021

 

Тема: Операції над одновимірними масивами(списками). Пошук найменших та найбільших значень лінійних виразів на числових множинах мовою програмування Python3

Теоретична частина

 a, b, c, d, e, f, …, z - це числа.

Множина  lst=[a, b, c, d, e, f, …, z] - це список чисел 

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

lst[0]=a - це перший елемент списку або масиву;

lst[1]=b - це другий елемент списку або масиву;;

lst[2]=c - це третій елемент списку або масиву;;

lst[3]=d - це  четвертий елемент списку або масиву

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

 1.Створення списку з числовими елементами записується командою:

lst=[(i**2)(i+3)//(i-2) for i in range(11) ]

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. Створити наступний алгоритм. Нам потрібно визначити, яку заробітну платню одержить на фірмі сумісник за виконану роботу, якщо йому нараховано грн., а податок становить 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.  Артем доглядає у зоопарку плазунів
:  гадюк довжиною по 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, де (xoyo ) - пара цілих чисел таких, що k*xо+m*yо=n


5. Дмитро закупив k м'ячів вартістю m грн,  n м’ячів вартістю g грн, 
м’ячів вартістю р грн, заплативши за м'ячі кожного виду однакові суми грошей.  Усього м’ячів k+n+t=b. Скільки м'ячів кожного виду купив Дмитроякщо серед набору чисел k, m n, g немає рівних чисел. Створити, реалізувати, протестувати алгоритм мовою програмування у середовищі програмування, який за чотирьма цілими числами b, mg, 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)Інакше такої книги не може існувати.

 


Немає коментарів:

Дописати коментар