четвер, 9 грудня 2021 р.

13.12.2021-19.12.2021 Нелінійні алгоритми для списків

  

 

13.12.2021-19.12.2021

 

Тема: Нелінійні алгоритми для списків із числовими типами даних мовою Python3

 

Практична  частина

 

Завдання 1. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для пошуку найбільшого спільного дільника  масиву натуральних чисел.

Реалізація

print('Алгоритм 1 знаходження НСД для багатьох чисел')

import random

a1=[72+1152*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==2]

a=[144,1152,864,2016,66912,4704]; nsd=0; nsk=0; k=0; m=0;

def nsd(k,m):

    if k==0:

        nsd=m

        return nsd

    while m!=0:

        if k>m:

            k=k-m

        else:

            m=m-k

    nsd=k 

    return nsd

x=nsd(a[0],a[1])

print(1,'-ий krok  nsd=',x)

for n in range(2,6,1):

    y=x

    x=nsd(a[n],x)

    print(n,'-ий krok  nsd=',x)

print('Масив натуральних a=',a); print('НСД масиву чисел=',x)

 

Завдання 2. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для поділу випадкового двоцифрового числа на дві частини у відношенні m:n, де m частин і n частин – це випадкові числа в межах від 3 до 23.

Реалізація

print('Алгоритм 2 знаходження поділу кожного числа масиву на частини у відношенні m:n')

import random

a1=[72+1152*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==2]

a=[144,1152,864,2016,66912,4704];

m=random.randint(3,23); n=24-m; ZAST1=0;ZAST2=0;

print('Масив натуральних a=',a) 

for j in range(0,6,1):

    ZAST1=a[j]*m/(m+n)

    ZAST2=a[j]*n/(m+n)

    print(n,'-ий krok Число a[',j,']=',a[j], 'поділено у відношенні',m,':',n,'отримаємо',ZAST1,':',ZAST2)

Завдання 3. Створити, реалізувати, протестувати алгоритм мовою програмування Python3 в середовищі програмування Thonny  для поділу випадкового трицифрового числа на три частини у відношенні k:m:n, де km і n  - випадкові числа в межах від 2 до 10.

Реалізація

print('Алгоритм 3 знаходження поділу кожного числа масиву на частини у відношенні k:m:n')

import random

a1=[72+1152*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==2]

a2=[k for k in range(100, -28,-1) if k%2==0] 

a=[144,1152,864,2016,66912,4704];

m=random.randint(2,10);   k=random.randint(2,10); n=11-m-k; ZAST1=0; ZAST2=0; ZAST3=0;

print('Масив натуральних a=',a) 

for j in range(0,6,1):

    ZAST1=a[j]*k/(m+n+k)

    ZAST2=a[j]*m/(m+n+k)

    ZAST3=a[j]*n/(m+n+k)

    print(j,'-ий krok Число a[',j,']=',a[j], 'поділено у відношенні',k,':',m,':',n)

    print('отримаємо',round(ZAST1,6),':',round(ZAST2,6),':',round(ZAST3,6))

    print('*************')

Завдання 4. Створити, реалізувати, протестувати алгоритм для пошуку випадкового двоцифрового числа х,  яке було поділено на дві частини у відношенні m:n, де k і m  - випадкові числа в межах від 3 до 20, якщо відомо:  k частин становить а одиниць.

Реалізація

print('Алгоритм 4 знаходження пошуку кожного числа масиву за його частинами у відношенні k:m')

import random

a1=[72+1152*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==2]

a2=[k for k in range(100, -28,-1) if k%2==0] 

a=[144,1152,864,2016,6912,4704];

m=random.randint(1,5);   k=random.randint(2,5);  ZAST1=0;  ZAST2=0;

print('Масив натуральних чисел a=',a) 

for j in range(0,6,1):

    Zuslo=a[j]*(m+k)/(k)

    ZAST2=a[j]*(m)/(k)

    ZAST1=a[j]

    print(j,'-ий krok . Число a[',j,']=',Zuslo, 'поділено у відношенні',k,':',m)

    print('отримаємо',round(ZAST1,3),':',round(ZAST2,3))

    print('*************')

Завдання 5. Створити, реалізувати, протестувати алгоритм для пошуку кількості  спільних дільників для  m та n, де n і m  - випадкові числа/

Реалізація

print('Алгоритм 5 знаходження усіx спільних дільників для двох випадкових чисел')

import random; m=6912*random.randint(10,200); n=4704*random.randint(10,200);

m=6912;  n=4704; a=[]

print('Число m=',m); print('Число n=',n)  

max1=max(m,n)

for j in range(1,max1,1):

    if m%j==0:

       if n%j==0:

           h=j

           a.append(h)

           print('Для двох чисел n=',n,'m=',m,' cпільний дільник k=',j)

print('Cпільні дільники у вигляді списку a=',a)

print('Кiлькість спільних дільників k=',len(a))

Завдання 6. Створити, реалізувати, протестувати  алгоритм мовою програмування Python3 в середовищі програмування Thonny для знаходження кількості трицифрових чисел, сума цифр яких дорівнює 14.

Математична модель завдання 5 abc=100*a+10*b+c   i перевiрити умови a+b+c=14=5+9+0=4+1+9=3+2+9=2+3+9=…=7+6+1 та врахувати перестановки

Реалізація.

print('Алгоритм пошуку кількості  3-цифрових чисел з сумою цифр 14')

k=0

for a in range(1,10):

      for b in range(0,10):

          for c in range(0,10):

              if a+b+c==14:

                  k=k+1

                  print('Шукане 3-цифрове число з сумою цифр 14 =', 100*a+10*b+c) 

print('Kількість  3-цифрових чисел з сумою цифр 14 =', k) 

 

Завдання 7. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  складаються з: 1)парних чисел.

Реалізація. Види сортування списків  парних чисел

import random

print('Алгоритм 7 автоматичного створення парних чисел у масиві або списку')

print('***Простий спосіб, що є функцією списку list(range(k,m,n)) з лічильником')

Numer=list(range(-32, 32, 2))

print('Простенький список 3n-чисел in Numer=', Numer, type(Numer))

print('Перший спосіб, що використовує цикл з лічильником')

lst2n1=[m for m in range(-49, 102,2)]    # циклічний генератор для парних чисел

print('Перший список парних чисел у порядку зростання lst2n1=', lst2n1, type(lst2n1))

print('Другий спосіб, що використовує цикл з лічильником і розгалуження')

lst2n2=[k for k in range(100, -28,-1) if k%2==0]  # генератор для парних чисел

print('другий список парних чисел у порядку спадання lst2n2=', lst2n2, type(lst2n2))

print('Третій спосіб, що використовує  генератор випадкових цілих чисел')

lst2n3=[2*n*random.randint(22, 222)  for n in range(10, 0,-1) if n%2==0]

print('Третій список випадкових парних чисел  lst2n3=', lst2n3, type(lst2n3))

lst2n3.reverse()         зміна порядку чисел на протилежний

print('Змінений список у протилежному порядку  lst2n3=', lst2n3, type(lst2n3))

lst2n3.sort(reverse=True)   #  упорядкування  чисел  у порядку спадання

print('Змінений список  у порядку спадання lst2n3=', lst2n3, type(lst2n3))

lst2n3.sort()       упорядкування  чисел  у порядку зростання

print('Змінений список чисел у порядку зростання lst2n3=', lst2n3, type(lst2n3))

 

Протестуйте даний алгоритм декілька разів для: 1) lst2n1=[m for m in range(2, 102,2)];

2) lst2n2=[k for k in range(100, -28,-1) if k%4==2]

3) lst2n3=[6*n*random.randint(22, 222)  for n in range(30, -28,-1) if n%10==2]

 

Завдання 8. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  складаються з: 1)непарних чисел; 3) чисел кратних 3; 4) чисел, що є степенями 2; 5) чисел, що степенями 3. 6) чисел, що утворені формулою х(n)=5*n+9.

 

Реалізація. Статистичні характеристики  списків  непарних чисел

import random

print('Алгоритм 8 автоматичного створення непарних чисел у масиві або списку')

print('Перший спосіб, що використовує цикл з лічильником')

lst3n1=[2*m -1 for m in range(-8, 12,1)]

print('Перший список непарних чисел у порядку зростання lst3n1=', lst3n1, type(lst3n1))

print('Кількість усіх елементів  у списку lst3n1=', len(lst3n1))

print('Кількість елемента "23" у списку lst3n1=', lst3n1.count(23))

print('Індекс елемента "21" у списку lst3n1=', lst3n1.index(21))

print('Cума усіх елементів  у списку lst3n1=', sum(lst3n1))

print('Максимум усіх елементів  у списку lst3n1=', max(lst3n1))

print('Мінімум усіх елементів  у списку lst3n1=', min(lst3n1))

print('Cереднє арифметичне списку lst3n1=', sum(lst3n1)/len(lst3n1))

print('Другий спосіб, що використовує цикл з лічильником і розгалуження')

lst3n2=[2*k+1 for k in range(100, -28,-1) if k%2==0]

print('Другий список непарних чисел у порядку спадання lst3n2=', lst3n2, type(lst3n2))

print('Третій спосіб, що використовує цикл з лічильником і розгалуження')

lst3n3=[1+6*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==2]

print('Третій список чисел у довільному порядку  lst3n3=', lst3n3, type(lst3n3))

lst3n3.remove(lst3n3[1])  # видаляємо із списку елемент  lst3n[1]

print('Змінений список випадкових непарних чисел без 1-го елементу: lst3n3=', lst3n3, type(lst3n3))

lst3n3.sort(reverse=True)

print('Змінений список випадкових непарних чисел у порядку спадання lst3n3=', lst3n3, type(lst3n3))

lst3n3.sort()

print('Змінений список випадкових непарних чисел у порядку зростання lst3n3=', lst3n3, type(lst3n3))

 

Протестуйте даний алгоритм декілька разів для:

1) lst3n1=[4*m -1 for m in range(-8, 12,1)]

2) lst3n2=[6*k-1 for k in range(40, -28,-1) if k%3==0]

3 lst3n3=[1+2*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==7]

 

Завдання 9. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  складаються з: 1) чисел кратних 3.

 

Реалізація. Видалення та вставлення елементів у списки

import random

print('Алгоритм 9 автоматичного створення 3n-чисел у масиві або списку')

print('***Перший спосіб, що використовує функцію списку list(range(k,m,n)) з лічильником')

Numer=list(range(-33,10,3))

print('Простенький список 3n-чисел in Numer=', Numer, type(Numer))

print('***Другий спосіб, що використовує порожній список та циклом із лічильником приєднує елементи')

n=10; S1=[]

for i in range(10):

    S1.append(random.randint(-50,50)) # приєднується випадкове число у список

    S1[i]=3*(2*S1[i]-1)     # елемент перетворюється в непарне 3n-число, що кратне 3

print('Початковий список непарних 3n-чисел S1=', S1, type(S1))

print('***Третій спосіб, що використовує у списку формулу та цикл з лічильником для неї')

lst4=[6*m for m in range(-9, 9,1)]

print('Новий список парних 3n-чисел у порядку зростання lst4=', lst4, type(lst4))

print('***Четвертий спосіб, що використовує цикл з лічильником і розгалуження')

lst3n2=[k for k in range(100, -28,-1) if k%3==0]

print('Четвертий список 3n-чисел у порядку спадання lst3n2=', lst3n2, type(lst3n2))

print('***П’ятий спосіб, що використовує генератор випадкових чисел)

lst3n3=[3+6*n*random.randint(22, 222)  for n in range(40, -38,-1) if n%10==2]

print('Пятий список у довільному порядку  lst3n3=', lst3n3, type(lst3n3))

lst3n3.remove(lst3n3[1])  # видаляємо із списку елемент  lst3n[1]

print('Змінений список чисел без 1-го елементу: lst3n3=', lst3n3, type(lst3n3))

lst3n3.sort(reverse=True)

print('Змінений список чисел у порядку спадання lst3n3=', lst3n3, type(lst3n3))

lst3n3.sort()

print('Змінений список чисел у порядку зростання lst3n3=', lst3n3, type(lst3n3))

lst3n3[1:3]=[]     #зрізу списку присвоюється порожній список, ці елементи видалені

print('Змінений список чисел після видалення елементів із списку', lst3n3)

lst3n3[1:3]=[3, 33, 333, 3333]     #зрізу списку присвоюється список  елементів

print('Змінений список чисел після вставлення елементів до списку', lst3n3)

 

Завдання 10. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  виконує сортування елементів списку у порядку спадання та у порядку зростання.

Реалізація . Сортування елементів у списку

 

import random

print(' Algorytm 10  сортування елементів у списках lst1 ')

print('***Оригінальний спосіб створення списку, що використовує генератор випадкових чисел')

lst1=[3+3*random.randint(5, 55)  for n in range(20, -18,-1) if n%2==1]

print('Це  список  3n-чисел у довільному порядку  lst1=', lst1, type(lst1))

lst1.remove(lst1[1])     # видаляємо із списку елемент  lst3n[1]

print('Змінений список чисел без 2-го елементу: lst1=', lst1, type(lst1))

lst1.sort(reverse=True)    # сортування у порядку спадання  lst1

print('Змінений список чисел у порядку спадання lst1=', lst1, type(lst1))

lst1.sort()      # сортування у порядку зростання  lst1

print('Змінений список чисел у порядку зростання lst1=', lst1, type(lst1))

 

Протестуйте  даний алгоритм декілька разів, якщо:

1)      lst1=[1+2*random.randint(7, 57)  for n in range(40, -10,-2) if n%4==1]

2)      lst1=[3+8*random.randint(1, 99)  for n in range(90, 60,-3) if n%5==2]

3)      lst1=[4+7*random.randint(90, 180)  for n in range(1, 60,4) if n%6==3]

 

 

Завдання 11. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  виконує видалення та вставлення  елементів у списку.

 

Реалізація. Видалення та вставлення  елементів у списку

import random

print(' Algorytm  11 видалення та вставлення над елементами в списках lst ')

print('***Оригінальний спосіб створення списку, що використовує генератор випадкових чисел')

lst2=[1+2*n*random.randint(0, 10)  for n in range(40, -38,-1) if n%10==2]

print('Початковий список чисел після видалення елементів із списку', lst2)

lst2[2:5]=[]     #зрізу списку присвоюється порожній список, ці елементи видалені

print('Змінений список чисел після видалення двох елементів із списку', lst2)

lst2[0:3]=[0, 0, 0, 0]     #зріз  списку видаляється і присвоюється список нових  0-елементів

print('Змінений список чисел після видалення і вставлення чотирьох елементів до списку', lst2)

 

Протестуйте  даний алгоритм декілька разів, якщо:

1)      lst1=[1+2*random.randint(7, 57)  for n in range(40, -20,-2) if n%11==0]

2)      lst1=[3+8*random.randint(1, 99)  for n in range(90, 60,-3) if n%3==2]

3)      lst1=[4+7*random.randint(90, 180)  for n in range(1, 60,4) if n%4==1]

 

Завдання 12. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  виконує вставлення  елементів у списку без видалення між іншими елементами.

 

Реалізація.  Вставлення  елементів у списку без видалення

import random

print(' Algorytm 12  вставлення числових елементів у список lst1 ')

list1 = [1, 1, 1]

print(' початковий список list1=', list1)

list1.extend([0, 0, 0])            # вставлення елементів в кінець списку

print('Змінений список після вставлення чисел в кінець ', list1)

list2 = [2, 2, 2]

print(' початковий список list2=', list2)

list2.insert(1, 5)          # вставлення елемента між існуючими елементами

print ('Змінений список після вставлення елемента 5 ', list2)

list3 = [3, 3, 3]

print(' початковий список list3=', list3)

list3.insert(1, [0,0,0])          # вставлення елемента між існуючими елементами

print ('Змінений список після вставлення елемента [0,0,0]  =', list3)

for k in range(0,len(list1)):      # цикл для вставлення елемента між існуючими елементами

    list3.insert(k, list1[k])          # вставлення елемента між існуючими елементами

    list3.extend([k-1, k, k+1])           # вставлення елемента в кінець списку

print ('Змінений список після циклу вставлення елемента  =', list3)

print('Виявлення 8-го елемента у списку - це ', list3.pop(7))

 

Протестуйте  даний алгоритм декілька разів, якщо:

1)    list3 = list[range(0, 9,2]

2)    list3 = [3+8*n  for n in range(90, 60,-3) if n%3==2]

3)    list3=[5+9*random.randint(90, 180)  for n in range(1, 70,7) if n%2==1]

 

 

Завдання 13. Створити, реалізувати, протестувати алгоритми створення списків мовою програмування Python у середовищі програмування Thonny, що  виконує вставлення  елементів у порожній список.

import random

print(' Algorytm 13  вставлення і видалення  числових елементів у список lst1 ')

list2 = [4, 4, 4, 4]

print(' початковий список list2=', list2)

list2.extend([400, 4000, 40000])   # вставлення елементів в кінець списку

print('Змінений список після вставлення list2.extend([400, 4000, 40000])=', list2)

list1 = [2, 2, 2,2,2,2]

print(' Початковий список list1=', list1)

list1.insert(3,7000)     # вставлення елемента між існуючими елементами

print ('Змінений список  після вставлення list1.insert(3,7000)=', list1)

print('Показ елемента за його індексом list1.pop(3)=', list1.pop(3))  # показ індексу за відомим елементом списку

list3 = [2, 9, 8]

print('Початковий список list3=', list3)

list3.clear()                  # очищення списку чисел до порожнього

print ('Змінений список, тобто list3.clear() повне очищення списку : ', list3)

my_list = []

for k in range(0, 50, 8):        #цикл для вставлення елемента у порожній список елемента

          my_list.append(k)      #вставлення елемента у порожній список елемента

print (' Наповнений список після циклу my_list=', my_list)

my_list.append(3)       #вставлення праворуч у список елемента

print ('Змінений список вставлення елемента my_list=', my_list)  # [1, 3]

my_list.remove(32)     # видалення елемента 1 за першим індексом 0

print (' Змінений список після видалення елемента  my_list.remove(32)=', my_list)

 

Протестуйте  даний алгоритм декілька разів, якщо:

1)    list1 = list[range(90, -9,-10]

2)    list1 = [6-7*n  for n in range(7040,-5) if n%4==2]

3)    list1=[7+8*random.randint(95, 185)  for n in range(4270,2) if n%3==0]

 Результати виконання практичної частини надіслати не eлектронну адресу учителя:

vinnser@gmail.com


пʼятниця, 3 грудня 2021 р.

06.12.2021-12.12.2021 Нелінійні алгоритми з масивами.

  

06.12.2021-12.12.2021

 

Тема: Нелінійні алгоритми з масивами.

 

 

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

 

Інформаційна частина заняття.

Учень розповідає про українського математика Михайла Кравчука

"Михайло Кравчук - математик широкого масштабу. Його ім'я добре відоме у світовій математичній науці. Світ не знав лише, що він - українець." Довго не знали про цю надзвичайно талановиту людину і його земляки. Про це з болем пише у своїй статті його син О.М. Кравчук, доцент Волинського державного університету. Адже ім'я М. Кравчука було занесено до списку "ворогів народу", а сам він, повний енергії і творчих задумів, був засланий на Колиму і пішов з життя у неповних п'ятдесят років.

Лише 1992 року, після довгих літ забуття, наукова громадськість України та світу широко відзначила 100-річчя від дня народження видатного вченого. Його ім'я було занесено по лінії ЮНЕСКО до Міжнародного календаря визначних наукових діячів. Для цього були поважні підстави, адже праці М.П. Кравчука становлять фундаментальне надбання кількох галузей математичної науки.

З наведених нарисів та статей ти довідаєшся, що народився М. Кравчук 1892 року у селі Човниці на Волині в сім'ї інженера-землеміра. Початкову освіту він здобув удома. Його мати була освіченою жінкою, знала кілька іноземних мов і добре виховувала чотирьох дітей. 1901 року сім'я переїхала до Луцька, де в 1910 році Михайло Кравчук закінчив гімназію із золотою медаллю. Цього ж року він вступив на математичне відділення фізико-математичного факультету університету Св. Володимира в Києві, закінчив його у 1914 р. з дипломом 1-го ступеня і залишився в ньому працювати.
Відтоді й почалася його титанічна творча наукова і педагогічна праця. Він викладав різні математичні курси у багатьох вищих та середніх закладах м. Києва.

У роки громадянської війни М. Кравчук виїжджає на село. У 1919-21 рр. він був викладачем і директором школи в селі Саварці на Богуславщині. Його колишні учні, які вступали до технікумів та вузів, вражали викладачів своїми знаннями з математики. У цій школі під опікою М.П. Кравчука розпочав свій шлях у велику науку сільський хлопець Архип Люлька, пізніше - відомий український вчений, творець реактивних авіадвигунів. До речі, у Київському політехнічному інституті лекції М. Кравчука слухав і майбутній славетний конструктор космічних кораблів Сергій Корольов.

Михайло Пилипович був людиною неабиякої ерудиції та культури. У 25 років він став приватдоцентом кафедри математики, у 33 - доктором наук, у 37 - дійсним членом Всеукраїнської академії наук. Вільно володіючи кількома мовами, він підтримував наукові й особисті дружні стосунки з відомими математиками світу - Адамаром, Гільбертом, Курантом та ін. Свої наукові праці писав різними мовами, але найбільше - рідною. Академік М. П. Кравчук брав найактивнішу участь у творенні української наукової термінології та у запровадженні наукової мови в математичну галузь.
М. П. Кравчук належав до тих учених, чиї праці відкривають нові шляхи у розвитку науки і передбачають напрямки її розвитку в майбутньому.

"Моя любов - Україна і математика", - ці слова Михайла Пилиповича Кравчука викарбовано на гранітному постаменті пам'ятника, який встановлено йому в 2003 році перед корпусом музею Національного технічного університету України "Київський "Київський політехнічний інститут". У селі, де він народився, в 1979 році відкрито музей та встановлено погруддя великого патріота і математика.

 

 

Практична частина

Завдання 1. Створити алгоритм для виведення таблиці 5х7 випадкових цілих чисел на Python3 у середовищі Thonny.

Реалізація.

import random

print(" Алгоритм 1 ")

def rand_matrix(n,m):
    A=[[random.randint(-9,9) for j in range(m)] for i in range(n)]
    return A
def show_matrix(A):
    for a in A:
        for b in a:

            print(b, end="   ")
        print()
A=rand_matrix(5,7)
show_matrix(A)
print(A)

 

 

Завдання 2. Створити алгоритм для множення на число і додавання двох числових таблиць розмірами 4х4 випадкових цілих чисел на Python3 у середовищі Thonny.

Реалізація.

import random

print(" Алгоритм 2 ")

def rand_matrix(n,m):

    A=[[random.randint(0,9) for j in range(m)] for i in range(n)]

    return A

def show_matrix(A):

    for a in A:

        for b in a:

            print(b, end="   ")

        print()

def suma_matrix(n,m):

    C=[[A[i][j]+B[i][j] for j in range(m)] for i in range(n)]

    return C

def dobutok_matrix(n,m,k, t):

    D=[[(A[i][j])*k for j in range(m)] for i in range(n)]

    F=[[(B[i][j])*t for j in range(m)] for i in range(n)]

    S=[[D[i][j]+F[i][j] for j in range(m)] for i in range(n)]

    return S

print("Перша таблиця випадкових цілих чисел або матриця А(4,4): ")

A=rand_matrix(4,4); show_matrix(A)

print("Друга таблиця випадкових цілих чисел або матриця B(4,4): ")

B=rand_matrix(4,4); show_matrix(B)

print("Третя таблиця випадкових цілих чисел або матриця С(4,4): ")

C=rand_matrix(4,4); show_matrix(C)

print("Четверта таблиця випадкових цілих чисел або матриця D(4,4): ")

D=rand_matrix(4,4); show_matrix(D)

print("Пята таблиця випадкових цілих чисел або матриця F(4,4): ")

F=rand_matrix(4,4); show_matrix(F)

print("Шоста таблиця випадкових цілих чисел або матриця S(4,4): ")

S=rand_matrix(4,4); show_matrix(S)

print("Таблиця чисел або матриця C(4,4)=A(4,4))+B(4,4): ")

print("Додавання двох таблиць чисел або матриць A(4,4)+B(4,4): ")

suma_matrix(4,4); show_matrix(C)

print("Множення двох таблиць на число і сума матриць -8*A(4,4)+9*B(4,4): ")

dobutok_matrix(4,4,-8, 9); show_matrix(S);

 

 

Завдання 3. Створити алгоритм  мовою програмування Python3 для знаходження властивостей подільності трицифрового натурального числа в середовищі програмування Thonny.

Реалізація.


import random

print(" Алгоритм 3 ")

print("пошук властивостей числа: abc")

k=random.randint(100,998)

print("трицифрове число:",k)

a=k//100; print("цифра розряду сотень:",a)

b=(k-a*100)//10; print("цифра розряду десятків:",b)

c=k%10; print("цифра розряду одиниць:",c)

if (a!=b)and (a!=c)and (b!=c):

     print("немає рівних цифр")

if (a==b) or (b==c) or (a==c):

     print("має однакові цифри")

if (a==c):

    print("це число паліндромне")

g=max([a,b,c]); q=min([a,b,c])

p=a+b+c-g-q

if q+p>g:

     print("це трикутне число")

if g==p+q:

     print("це дивакувате число")

if g==p*q:

    print("це добуткове число")

if (g==p**2)or(g==q**2)or(p**2==q):

     print('це квадратоване число')

if (g==c)and(a==q)and(p==b):

     print('це неспадний порядок цифр числа')

if (g==a)and(q==c)and(p==b):

     print('це незростаючий порядок цифр числа')

if (c%2==0)and((a+b+c)%3==0)and((a+b+c)%9==0):

     print('це парне число, що ділиться на 3, на 6, на 9, на 18')

if (c%2==0)and(c%5==0)and((a+b+c)%3==0):

     print('це парне число, що ділиться на 3, на 6, на 10, на 15')

h=[2,3,5,7,11,13,17,19,23,29,31]

v=['None']*11

z=0

m=0

for j in range(len(h)):

    z=z+k%int(h[j])

    print("k=",k,"=", h[j],"*",k//int(h[j]), "+", k%int(h[j]))

    if k%int(h[j])==0:

        print("це складене число")

    else:

        m=m+1

if m==11:

   print("це просте число")

else:

     print("це складене число")

 


Завдання 4. Створити алгоритм  мовою програмування Python3 для знаходження найменшого значення виразу з модулями вигляду: m*|x-a|+n*|x-b|, якщо  змінні a,b,m,n – натуральні  числа в середовищі програмування Thonny.

Реалізація.


import random


print(" Алгоритм 4 ")

print("Глобальний екстремум(MIN,MAX)")

print("Вираз з модулями: m*|x-a|+n*|x-b|=?")

q=10000

m=random.randint(-q,q)

n=random.randint(-q,q)

a=random.randint(-q,q)

b=random.randint(-q,q)

print("Вираз:",m,"*|x-",a,"|+",n,"*|x-",b,"|")

print("m=",m, "n=",n)

print("a=",a, "b=",b)

print("m+n=",m+n)

FA=n*abs(a-b)

FB=m*abs(b-a)

if m+n>=0:

    print(" MIN_F(х)= m*|x-a|+n*|x-b|=", min([FA,FB]))

else:

        print("MAX_F(х)= m*|x-a|+n*|x-b|", max([FA,FB]))

 

Завдання 5. Створити та протестувати алгоритм виведення постійного  числового масиву у вигляді  таблиці чисел, розміром 2х2.

Реалізація.

print('Алгоритм 5 виведення масиву А на екран')

А=[[1,2],[3,4]]

print('Двовимірний масив А має вигляд')

for n in range(2):

      for m in range(2):

            print(А[n][m], end=' ')

      print('  ')  

Завдання 6. Створити та протестувати алгоритм виведення числового масиву у вигляді  таблиці чисел, розміром 3х3, при цьому замінити усі елементи на головній діагоналі на 0.

Реалізація.

print('Алгоритм 6 виведення масиву B на екран')

B=[[1,2,3],[4,5,1],[3,4,5]]

print('Двовимірний масив B із ненульовими діагональними елементами має вигляд')

for n in range(3):

      for m in range(3):

            if m==n:

                 B[n][m]=0

           print(B[n][m], end=' ')

      print('  ')

Завдання 7.  Створити та протестувати алгоритм виведення числового масиву у вигляді  таблиці чисел, розміром 4х4, при цьому замінити усі елементи, окрім елементів на головній діагоналі, - на 0.

Реалізація.

print('Алгоритм 7 виведення масиву C на екран')

C=[[1,2,3,4],[2,3,4,5],[3,4,5,1],[4,5,1,2]]

print('Двовимірний масив C  із ненульовими діагональними елементами має вигляд')

for n in range(4):

      for m in range(4):

            if m!=n:

                 C[n][m]=0

            print(C[n][m], end=' ')

      print('  ')

Завдання 8.  Створити та протестувати алгоритм виведення числового масиву у вигляді  таблиці чисел, розміром 5х5, при цьому замінити усі парні елементи, окрім непарних елементів, на 1000.

Реалізація.

print('Алгоритм 8 виведення масиву D на екран')

D=[[1,2,3,4,5],[2,3,4,5,1],[3,4,5,1,2],[4,5,1,2,3],[5,1,2,3,4]]

print('Двовимірний масив D має вигляд')

for n in range(5):

    for m in range(5):

        if D[n][m]%2==0:

             D[n][m]=1000

        print(D[n][m], end=' ')

    print('  ') 

Завдання 9.  Створити та протестувати алгоритм виведення числового масиву у вигляді  таблиці чисел, розміром 5х6, при цьому замінити усі непарні елементи, окрім парних елементів, на 7777.

Реалізація.

print('Алгоритм 9 виведення масиву E на екран')

E=[[1,2,3,4,5,6],[2,3,4,5,1,6],[3,4,5,1,2,6],[4,5,1,2,3,6],[5,1,2,3,4,6]]

print('Двовимірний масив E має вигляд')

for n in range(5):

      for m in range(6):

            if E[n][m]%2==1:

                E[n][m]=7777

            print(E[n][m], end='     ')

    print('  ') 

Протестувати алгоритм для двовимірного масиву розміром   7х4.

Завдання 10.  Створити та протестувати алгоритм виведення числового масиву у вигляді  таблиці чисел, розміром 5х7, при цьому замінити усі непарні елементи на 3333,  а парні елементи - на 2222.

Реалізація.

print('Алгоритм 10 виведення масиву F на екран')

F=[[1,2,3,4,5,6,7],[2,3,4,5,1,6,7],[3,4,5,1,2,7,6],[4,5,1,2,3, 7, 6],[5,1,2,3,7, 6, 4]]

print('Двовимірний масив F має вигляд')

for n in range(5):

      for m in range(7):

            if F[n][m]%2==0:

                  F[n][m]=2222

           if F[n][m]%2==1:

                 F[n][m]=3333

          print(F[n][m], end='     ')

     print('  ')    

Протестувати алгоритм для двовимірного масиву розміром   5х3.

 

  Завдання 11.  Створити та протестувати алгоритм виведення числового масиву у вигляді  таблиці чисел, розміром 5х8, при цьому замінити усі 3k-елементи на 9999,  а усі 3k+1-елементи - на 7777, тa усі усі 3k+2-елементи - на 5555,

Реалізація.

print('Алгоритм 11 виведення масиву G на екран')

G=[[1,2,3,4,5,6,7,8],[2,3,4, 6,7,8, 5,1],[3,4,5,1,6,7,8,2],[4,5,1,2,6,7,8, 3],[5,1,2,6,7,8, 3,4]]

print('Двовимірний масив G має вигляд')

for n in range(5):

    for m in range(8):

        if G[n][m]%3==0:

             G[n][m]=9999

        if G[n][m]%3==1:

             G[n][m]=7777

        if G[n][m]%3==2:

             G[n][m]=5555

        print(G[n][m], end='     ')

    print('  ')   

Протестувати алгоритм для двовимірного масиву розміром   5х2.

 

 

 

Завдання 12. Створити алгоритм  мовою програмування Python3 для знаходження найменшого значення виразу з модулями вигляду: m*|x-a|+n*|x-b|+k*|x-c|,  якщо  змінні a,b,с,m,n,k –  різні натуральні  числа в середовищі програмування Thonny.

 

import random

print(" Алгоритм 12 ")

print(" Пошук глобального  екстремуму(або MIN, або MAX)")

print("Вираз з модулями: m*|x-a|+n*|x-b|+k*|x-c|=?")

q=100

m=random.randint(-q,q)        # присвоєння випадкового цілого числа змінній m

n=random.randint(-q,q)          # присвоєння випадкового цілого числа змінній n

k=random.randint(-q,q)          # присвоєння випадкового цілого числа змінній k

a=random.randint(-q,q)        # присвоєння випадкового цілого числа змінній a

b=random.randint(-q,q)        # присвоєння випадкового цілого числа змінній b

c=random.randint(-q,q)      # присвоєння випадкового цілого числа змінній c

g=max([a,b,c]); q=min([a,b,c]); p=a+b+c-g-q; s=m+n+k

print("Точки екстремуму:","x1=",q, "x2=",p, "x3=", g)

print("Вираз з модулями:",m,"*|x-",q,"|+",n,"*|x-",p,"|+",k,"*|x-",g,"|")

print("Коефіцієнти:","m=",m, ";n=",n, ";k=", k, ";Сума: m+n+k=",m+n+k)

print("1-ий проміжок: x<",q)

if -m-n-k==0:

    F1=m*q+n*p+k*g; print("константа, якщо х<x1, F1(x)=", F1); FQ=F1  

elif -m-n-k<0:

    k1=-m-n-k; l1=m*q+n*p+k*g; FQ=k1*q+l1; X01=-l1/k1

    print("спадна, якщо х<x1, F1(x)=",k1,"*x+",l1,"FQ=",k1*q+l1,"X01=",-l1/k1)

else:

    k1=-m-n-k; l1=m*q+n*p+k*g; FQ=k1*q+l1;X01=-l1/k1

    print("зростаюча, якщо х<x1, F1(x)=",k1,"*x+",l1,"FQ=",k1*q+l1,"X01=",-l1/k1)  

print("2-ий проміжок: xє[",q, ";",p,")")

if m-n-k==0:

    F2=-m*q+n*p+k*g; print("константа, якщо х<x1, F2(x)=", F2); FP=F2 

elif m-n-k<0:

    k2=m-n-k; l2=-m*q+n*p+k*g;FP=k2*p+l2; X02=-l2/k2

    print("спадна, якщо x1 < x < x2, F2(x)=",k2,"*x+",l2, "FP=",k2*p+l2,"X02=",-l2/k2)

else:

    k2=m-n-k; l2=-m*q+n*p+k*g;   FP=k2*p+l2;X02=-l2/k2

    print("зростаюча, якщо x1 < x < x2, F2(x)=",k2,"*x+",l2,  "FP=",k2*p+l2, "X02=",-l2/k2)

print("3-iй проміжок: xє[",p, ";",g,")")

if m+n-k==0:

    F3=-m*q-n*p+k*g; print("константа, якщо x2< х <x3, F3(x)=", F3);FG=F3 

elif -m+n+k<0:

    k3=m+n-k; l3=-m*q-n*p+k*g; FG=k3*g+l3; X03=-l3/k3

    print("спадна, якщо x2 < x < x3, F3(x)=",k3,"*x+",l3,  "FG=",k3*g+l3, "X03=",-l3/k3)

else:

    k3=m+n-k; l3=-m*q-n*p+k*g; FG=k3*g+l3; X03=-l3/k3

    print("зростаюча, якщо x2 < x < x3, F3(x)=",k3,"*x+",l3,  "FG=",k3*g+l3,"X03=",-l3/k3) 

print("4-iй проміжок: xє[",g, "; +oo)")

if +m+n+k==0:

    F4=-m*q-n*p-k*g; print("константа, якщо x3< х <+oo, F4(x)=", F4); FG=F4  

elif +m+n+k<0:

    k4=m+n+k; l4=-m*q-n*p-k*g; FG= k4*g+l4; X04=-l4/k4 

    print("спадна, якщо x3 < x < +oo, F4(x)=",k4,"*x+",l4, "FG=",k4*g+l4,"X04=",-l4/k4 )

else:

    k4=m+n+k; l4=-m*q-n*p-k*g; FG= k4*g+l4

    print("зростаюча, якщо x3 < x < +oo, F4(x)=",k4,"*x+",l4, "FG=",k4*g+l4,"X04=",-l4/k4 ) 

if m+n+k==0:

    MIN=min([FQ,FP,FG]); MAX=max([FQ,FP,FG])

    print("MIN=", MIN, "MAX=",MAX)

elif m+n+k<0:

    MIN=min([FQ,FP,FG]); MAX=max([FQ,FP,FG])

    print("LOCAL_MIN=", MIN, "GLOBAL_MAX=",MAX)

else:

    MIN=min([FQ,FP,FG]); MAX=max([FQ,FP,FG])

    print("LOCAL_MAX=", MAX, "GLOBAL_MIN=",MIN)

 

Результати виконання практичної частини надіслати не eлектронну адресу учителя:

vinnser@gmail.com

**********************