From 719b887029c67f1a507032ac5c53a07893d8d682 Mon Sep 17 00:00:00 2001 From: SavinSA Date: Sun, 7 Dec 2025 02:23:04 +0300 Subject: [PATCH] full module8 --- TEMA1/report_BACKUP_1231.md | 140 +++++++++++++++++ TEMA1/report_BASE_1231.md | 0 TEMA1/report_LOCAL_1231.md | 127 ++++++++++++++++ TEMA1/report_REMOTE_1231.md | 124 +++++++++++++++ TEMA8/MM0.py | 2 + TEMA8/MM1.py | 19 +++ TEMA8/MM2.py | 23 +++ TEMA8/Mod0.py | 2 +- TEMA8/correlate.py | 25 +++ TEMA8/img1.png | Bin 0 -> 5198 bytes TEMA8/img2.png | Bin 0 -> 9241 bytes TEMA8/img3.png | Bin 0 -> 8819 bytes TEMA8/img4.png | Bin 0 -> 13201 bytes TEMA8/mainfile.py | 17 +++ TEMA8/num1.txt | 3 + TEMA8/num2.txt | 3 + TEMA8/readerfile.py | 9 ++ TEMA8/report.md | 294 ++++++++++++++++++++++++++++++++++++ TEMA8/task.md | 93 ++++++++++++ 19 files changed, 880 insertions(+), 1 deletion(-) create mode 100644 TEMA1/report_BACKUP_1231.md create mode 100644 TEMA1/report_BASE_1231.md create mode 100644 TEMA1/report_LOCAL_1231.md create mode 100644 TEMA1/report_REMOTE_1231.md create mode 100644 TEMA8/MM0.py create mode 100644 TEMA8/MM1.py create mode 100644 TEMA8/MM2.py create mode 100644 TEMA8/correlate.py create mode 100644 TEMA8/img1.png create mode 100644 TEMA8/img2.png create mode 100644 TEMA8/img3.png create mode 100644 TEMA8/img4.png create mode 100644 TEMA8/mainfile.py create mode 100644 TEMA8/num1.txt create mode 100644 TEMA8/num2.txt create mode 100644 TEMA8/readerfile.py create mode 100644 TEMA8/report.md create mode 100644 TEMA8/task.md diff --git a/TEMA1/report_BACKUP_1231.md b/TEMA1/report_BACKUP_1231.md new file mode 100644 index 0000000..8f0080a --- /dev/null +++ b/TEMA1/report_BACKUP_1231.md @@ -0,0 +1,140 @@ +<<<<<<< HEAD +# Отчет по теме 1 + +Савин Семён, А-02-23 + +# Основы языка программирования Python +======= +# Отчет по ЛР1 Савин С.А. + + +>>>>>>> e91ec08 (Task_2: report v1) + +## Пункты3-5 +Через командную строку вы +```py +print('Hello') +h=input('Your name is -') +Hello +Your name is -sam +exit() +``` +Программа закрыта (Вся командная строка) + +## Пункт 8: +```py +import os +os.chdir(r'C:\Users\u207-05\python-labs\TEMA1') +``` + +## Пункт 9: +Были изменены параметры текста в редакторе при помощи меню "Options" + +## Пункт 10: +Создан новый файл в редакторе написано: +```py +#This is a very profound comment +#Программа по Теме 1 Савин С.А. +print('Hello') +h = input('Your name is -') +import os +os.chdir(r'C:\Users\u207-05\python-labs\TEMA1') +``` +Модуль запущен +### Вывод: +```py += RESTART: C:/Users/u207-05/python-labs/TEMA1/Pr0.py +Hello +Your name is -sam +``` +Последняя команда выбора рабочей папки выполнена без ошибок. + +Также файл был выполнен следующим образом: +```py +import Pr0 +Hello +Your name is -sam +``` +И аналогично через клавишу F5 в открытом редакторе. + +## Пункт 11: +При помощи повторного вызова команды import вставили имя файла - "prb1" +```py +import prb1 +Как Вас зовут? Семён +Привет, Семён +``` + +## Пункт 12: +В папке __pycache__ нашел файл +pr0.cpython-311, открыл при помощи notepad++ +Содержимое: +§ + + №йєhВ г  уZ —  e d ¦ «   ed¦ « ZddlZ ej d¦ «  dS )ЪHellozYour name is -й Nz"C:\Users\u207-05\python-labs\TEMA1)ЪprintЪinputЪhЪosЪchdir© у ъ)C:\Users/u207-05/python-labs/TEMA1\Pr0.pyъr  sF рр ЂЂgЃ„ЂШ ЂEР +СФЂШ Ђ Ђ Ђ Ш Ђ„Р .С /Ф /Р /Р /Р /r + +Это резльтат компиляции, который выглядит так по причине того, что в данной папке хранятся байт-коды, используемые при запуске программы для увеличения оптимизации. + +## Пункт 13: +Пропущен по причине уже созданного файла report.md. + +## Пункт 14: +Вызвана команда help по нескольким функциям. +help(print) +Help on built-in function print in module builtins: + +print(*args, sep=' ', end='\n', file=None, flush=False) + Prints the values to a stream, or to sys.stdout by default. + + sep + string inserted between values, default a space. + end + string appended after the last value, default a newline. + file + a file-like object (stream); defaults to the current sys.stdout. + flush + whether to forcibly flush the stream. + +help(print),help(input) +Help on built-in function print in module builtins: + +print(*args, sep=' ', end='\n', file=None, flush=False) + Prints the values to a stream, or to sys.stdout by default. + + sep + string inserted between values, default a space. + end + string appended after the last value, default a newline. + file + a file-like object (stream); defaults to the current sys.stdout. + flush + whether to forcibly flush the stream. + +Help on built-in function input in module builtins: + +input(prompt='', /) + Read a string from standard input. The trailing newline is stripped. + + The prompt string, if given, is printed to standard output without a + trailing newline before reading input. + + If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. + On *nix systems, readline is used if available. +Также была найдена запись о функции print() через f1 +## Пункт 15: +Были снова выполнены файлы из рабочей папки, проведена работа с окнами. +Результат работы tdemo_chaos: + +<<<<<<< HEAD +![Демонстрация хаоса](pic1.png) + +Результат работы часов clock из примеров для демо: + +![Часы](pic2.png) +======= +![C:\Users\u207-05\python-labs\TEMA1](pic1.png) + +Результат работы часов clock из примеров для демо: + +>>>>>>> e91ec08 (Task_2: report v1) diff --git a/TEMA1/report_BASE_1231.md b/TEMA1/report_BASE_1231.md new file mode 100644 index 0000000..e69de29 diff --git a/TEMA1/report_LOCAL_1231.md b/TEMA1/report_LOCAL_1231.md new file mode 100644 index 0000000..7033e83 --- /dev/null +++ b/TEMA1/report_LOCAL_1231.md @@ -0,0 +1,127 @@ +# Отчет по теме 1 + +Савин Семён, А-02-23 + +# Основы языка программирования Python + +## Пункты3-5 +Через командную строку вы +```py +print('Hello') +h=input('Your name is -') +Hello +Your name is -sam +exit() +``` +Программа закрыта (Вся командная строка) + +## Пункт 8: +```py +import os +os.chdir(r'C:\Users\u207-05\python-labs\TEMA1') +``` + +## Пункт 9: +Были изменены параметры текста в редакторе при помощи меню "Options" + +## Пункт 10: +Создан новый файл в редакторе написано: +```py +#This is a very profound comment +#Программа по Теме 1 Савин С.А. +print('Hello') +h = input('Your name is -') +import os +os.chdir(r'C:\Users\u207-05\python-labs\TEMA1') +``` +Модуль запущен +### Вывод: +```py += RESTART: C:/Users/u207-05/python-labs/TEMA1/Pr0.py +Hello +Your name is -sam +``` +Последняя команда выбора рабочей папки выполнена без ошибок. + +Также файл был выполнен следующим образом: +```py +import Pr0 +Hello +Your name is -sam +``` +И аналогично через клавишу F5 в открытом редакторе. + +## Пункт 11: +При помощи повторного вызова команды import вставили имя файла - "prb1" +```py +import prb1 +Как Вас зовут? Семён +Привет, Семён +``` + +## Пункт 12: +В папке __pycache__ нашел файл +pr0.cpython-311, открыл при помощи notepad++ +Содержимое: +§ + + №йєhВ г  уZ —  e d ¦ «   ed¦ « ZddlZ ej d¦ «  dS )ЪHellozYour name is -й Nz"C:\Users\u207-05\python-labs\TEMA1)ЪprintЪinputЪhЪosЪchdir© у ъ)C:\Users/u207-05/python-labs/TEMA1\Pr0.pyъr  sF рр ЂЂgЃ„ЂШ ЂEР +СФЂШ Ђ Ђ Ђ Ш Ђ„Р .С /Ф /Р /Р /Р /r + +Это резльтат компиляции, который выглядит так по причине того, что в данной папке хранятся байт-коды, используемые при запуске программы для увеличения оптимизации. + +## Пункт 13: +Пропущен по причине уже созданного файла report.md. + +## Пункт 14: +Вызвана команда help по нескольким функциям. +help(print) +Help on built-in function print in module builtins: + +print(*args, sep=' ', end='\n', file=None, flush=False) + Prints the values to a stream, or to sys.stdout by default. + + sep + string inserted between values, default a space. + end + string appended after the last value, default a newline. + file + a file-like object (stream); defaults to the current sys.stdout. + flush + whether to forcibly flush the stream. + +help(print),help(input) +Help on built-in function print in module builtins: + +print(*args, sep=' ', end='\n', file=None, flush=False) + Prints the values to a stream, or to sys.stdout by default. + + sep + string inserted between values, default a space. + end + string appended after the last value, default a newline. + file + a file-like object (stream); defaults to the current sys.stdout. + flush + whether to forcibly flush the stream. + +Help on built-in function input in module builtins: + +input(prompt='', /) + Read a string from standard input. The trailing newline is stripped. + + The prompt string, if given, is printed to standard output without a + trailing newline before reading input. + + If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. + On *nix systems, readline is used if available. +Также была найдена запись о функции print() через f1 +## Пункт 15: +Были снова выполнены файлы из рабочей папки, проведена работа с окнами. +Результат работы tdemo_chaos: + +![Демонстрация хаоса](pic1.png) + +Результат работы часов clock из примеров для демо: + +![Часы](pic2.png) \ No newline at end of file diff --git a/TEMA1/report_REMOTE_1231.md b/TEMA1/report_REMOTE_1231.md new file mode 100644 index 0000000..269f46f --- /dev/null +++ b/TEMA1/report_REMOTE_1231.md @@ -0,0 +1,124 @@ +# Отчет по ЛР1 Савин С.А. + + + +## Пункты3-5 +Через командную строку вы +```py +print('Hello') +h=input('Your name is -') +Hello +Your name is -sam +exit() +``` +Программа закрыта (Вся командная строка) + +## Пункт 8: +```py +import os +os.chdir(r'C:\Users\u207-05\python-labs\TEMA1') +``` + +## Пункт 9: +Были изменены параметры текста в редакторе при помощи меню "Options" + +## Пункт 10: +Создан новый файл в редакторе написано: +```py +#This is a very profound comment +#Программа по Теме 1 Савин С.А. +print('Hello') +h = input('Your name is -') +import os +os.chdir(r'C:\Users\u207-05\python-labs\TEMA1') +``` +Модуль запущен +### Вывод: +```py += RESTART: C:/Users/u207-05/python-labs/TEMA1/Pr0.py +Hello +Your name is -sam +``` +Последняя команда выбора рабочей папки выполнена без ошибок. + +Также файл был выполнен следующим образом: +```py +import Pr0 +Hello +Your name is -sam +``` +И аналогично через клавишу F5 в открытом редакторе. + +## Пункт 11: +При помощи повторного вызова команды import вставили имя файла - "prb1" +```py +import prb1 +Как Вас зовут? Семён +Привет, Семён +``` + +## Пункт 12: +В папке __pycache__ нашел файл +pr0.cpython-311, открыл при помощи notepad++ +Содержимое: +§ + + №йєhВ г  уZ —  e d ¦ «   ed¦ « ZddlZ ej d¦ «  dS )ЪHellozYour name is -й Nz"C:\Users\u207-05\python-labs\TEMA1)ЪprintЪinputЪhЪosЪchdir© у ъ)C:\Users/u207-05/python-labs/TEMA1\Pr0.pyъr  sF рр ЂЂgЃ„ЂШ ЂEР +СФЂШ Ђ Ђ Ђ Ш Ђ„Р .С /Ф /Р /Р /Р /r + +Это резльтат компиляции, который выглядит так по причине того, что в данной папке хранятся байт-коды, используемые при запуске программы для увеличения оптимизации. + +## Пункт 13: +Пропущен по причине уже созданного файла report.md. + +## Пункт 14: +Вызвана команда help по нескольким функциям. +help(print) +Help on built-in function print in module builtins: + +print(*args, sep=' ', end='\n', file=None, flush=False) + Prints the values to a stream, or to sys.stdout by default. + + sep + string inserted between values, default a space. + end + string appended after the last value, default a newline. + file + a file-like object (stream); defaults to the current sys.stdout. + flush + whether to forcibly flush the stream. + +help(print),help(input) +Help on built-in function print in module builtins: + +print(*args, sep=' ', end='\n', file=None, flush=False) + Prints the values to a stream, or to sys.stdout by default. + + sep + string inserted between values, default a space. + end + string appended after the last value, default a newline. + file + a file-like object (stream); defaults to the current sys.stdout. + flush + whether to forcibly flush the stream. + +Help on built-in function input in module builtins: + +input(prompt='', /) + Read a string from standard input. The trailing newline is stripped. + + The prompt string, if given, is printed to standard output without a + trailing newline before reading input. + + If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError. + On *nix systems, readline is used if available. +Также была найдена запись о функции print() через f1 +## Пункт 15: +Были снова выполнены файлы из рабочей папки, проведена работа с окнами. +Результат работы tdemo_chaos: + +![C:\Users\u207-05\python-labs\TEMA1](pic1.png) + +Результат работы часов clock из примеров для демо: + diff --git a/TEMA8/MM0.py b/TEMA8/MM0.py new file mode 100644 index 0000000..1219d5d --- /dev/null +++ b/TEMA8/MM0.py @@ -0,0 +1,2 @@ +import MM2 +print('y=', MM2.vyhod) diff --git a/TEMA8/MM1.py b/TEMA8/MM1.py new file mode 100644 index 0000000..489fa63 --- /dev/null +++ b/TEMA8/MM1.py @@ -0,0 +1,19 @@ +def realdvig(xtt,kk1,TT,yti1,ytin1): + yp=kk1*xtt + yti1=yp+yti1 + ytin1=(yti1+TT*ytin1)/(TT+1) + return [yti1,ytin1] + +def tahogen(xtt,kk2,yti2): + yp=kk2*xtt + yti2=yp+yti2 + return yti2 + +def nechus(xtt,gran): + if xtt(-gran): + ytt=0 + elif xtt>=gran: + ytt=xtt-gran + elif xtt<=(-gran): + ytt=xtt+gran + return ytt diff --git a/TEMA8/MM2.py b/TEMA8/MM2.py new file mode 100644 index 0000000..cbba0a3 --- /dev/null +++ b/TEMA8/MM2.py @@ -0,0 +1,23 @@ +znach=input('k1,T,k2,Xm,A,F,N=').split(',') +k1=float(znach[0]) +T=float(znach[1]) +k2=float(znach[2]) +Xm=float(znach[3]) +A=float(znach[4]) +F=float(znach[5]) +N=int(znach[6]) + +import math +vhod=[] +for i in range(N): + vhod.append(A*math.sin((2*i*math.pi)/F)) + +import MM1 as mod +yi1=0;yin1=0;yi2=0 +vyhod=[] +for xt in vhod: + xt1=xt-yi2 #отрицательная обратная связь + [yi1,yin1]=mod.realdvig(xt1,k1,T,yi1,yin1) + yi2=mod.tahogen(yin1,k2,yi2) + yt=mod.nechus(yin1,Xm) + vyhod.append(yt) diff --git a/TEMA8/Mod0.py b/TEMA8/Mod0.py index 6337fc3..1087a18 100644 --- a/TEMA8/Mod0.py +++ b/TEMA8/Mod0.py @@ -1,4 +1,3 @@ -#Модуль Mod0 import Mod1 print('perm1=',Mod1.perm1) from Mod2 import alpha as al @@ -7,3 +6,4 @@ print('tt=',tt) from Mod2 import beta qq=beta(float(tt)) print('qq=',qq) +perm1 = Mod1.perm1 diff --git a/TEMA8/correlate.py b/TEMA8/correlate.py new file mode 100644 index 0000000..17f6d57 --- /dev/null +++ b/TEMA8/correlate.py @@ -0,0 +1,25 @@ +import math +def correlation(numbers1, numbers2): + if not numbers1 or not numbers2: + print('пусто') + return(0) + + n = min(len(numbers1), len(numbers2)) + + x = numbers1[:n] + y = numbers2[:n] + + meanx = sum(x)/n + meany = sum(y)/n + + sum1 = 0 + sum2 = 0 + sum3 = 0 + + for i in range (n): + sum1 += ((x[i] - meanx)*(y[i] - meany)) + sum2 += ((x[i] - meanx)**2) + sum3 += ((y[i] - meany)**2) + print(sum1,sum2,sum3) + return (sum1/math.sqrt(sum2*sum3)) + diff --git a/TEMA8/img1.png b/TEMA8/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..751fc6a6689446a484c9d3d431df517b0942ea29 GIT binary patch literal 5198 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 literal 0 HcmV?d00001 diff --git a/TEMA8/img2.png b/TEMA8/img2.png new file mode 100644 index 0000000000000000000000000000000000000000..604f5bd5d8157396ba4f56cc432ca39194ae4266 GIT binary patch literal 9241 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 ZTGW`ZEV}XGssBWP?p;HzGL47P{{g48khuT= literal 0 HcmV?d00001 diff --git a/TEMA8/img4.png b/TEMA8/img4.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3463fc73da76d6682398b87843ebb5c0d1d289 GIT binary patch literal 13201 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

GjK}o0}1aS9E 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 z z$^d(NU6Kd$12|spyFP~dS9p>m;v2@y6GMe5n72Dfh_C47joR}&I1_xV)q4TX6q`X; zzc^p!lfi8?p{3b*Wf}5Vx90DNDIwa}`9qABd@h}gKPXX`DE2Q6PMZSJ>vykbUtZaLSHb<o2*^j0Xs_WL|oACaNH7aFc76_iq*b jzf<}DKaQpKvbmQr`Kg^$#W~L3XaG8zhIh;FJdF519WG$c literal 0 HcmV?d00001 diff --git a/TEMA8/mainfile.py b/TEMA8/mainfile.py new file mode 100644 index 0000000..94fb722 --- /dev/null +++ b/TEMA8/mainfile.py @@ -0,0 +1,17 @@ +from readerfile import reader +from correlate import correlation + +def main(): + print("_________Калькулятор корреляции_________") + file1 = input("Первый файл: ").strip() + file2 = input("Второй файл: ").strip() + + numbers1 = reader(file1) + numbers2 = reader(file2) + + print(numbers1) + print(numbers2) + + cor = correlation(numbers1, numbers2) + + print("Коэффициент корреляции - ", cor) diff --git a/TEMA8/num1.txt b/TEMA8/num1.txt new file mode 100644 index 0000000..648b033 --- /dev/null +++ b/TEMA8/num1.txt @@ -0,0 +1,3 @@ +44 50 43 30 24 +10 9 1 5 +29 19 14 21 \ No newline at end of file diff --git a/TEMA8/num2.txt b/TEMA8/num2.txt new file mode 100644 index 0000000..397be62 --- /dev/null +++ b/TEMA8/num2.txt @@ -0,0 +1,3 @@ +30 60 58 40 34 +20 19 16 15 +39 28 24 31 \ No newline at end of file diff --git a/TEMA8/readerfile.py b/TEMA8/readerfile.py new file mode 100644 index 0000000..eedd2f8 --- /dev/null +++ b/TEMA8/readerfile.py @@ -0,0 +1,9 @@ +def reader(filename): + num = [] + with open(filename, 'r', encoding = 'utf-8') as file: + for line in file: + elements = line.strip().split() + for elem in elements: + number = float(elem) + num.append(number) + return num diff --git a/TEMA8/report.md b/TEMA8/report.md new file mode 100644 index 0000000..8881b88 --- /dev/null +++ b/TEMA8/report.md @@ -0,0 +1,294 @@ +# Тема 8 + +Савин Семён, А-02-23 + +## Пункт 1. Подготовка к работе. + +```py +>>> import os,sys +>>> import importlib as imp +>>> os.chdir('C:\\Users\\somas\\python-labs\\TEMA8') +>>> os.getcwd() +'C:\\Users\\somas\\python-labs\\TEMA8' +``` + +## Пункт 2.1. Запуск модуля на выполнение путем его импорта + +![Скриншот содержимого файла Mod1.py](img1.png) + +```py +>>> import Mod1 +Mod1:Введите значение = 5 +Mod1:Значение perm1= 5 +>>> type(Mod1) + +>>> dir(Mod1) +['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'perm1'] +>>> Mod1.perm1 +'5' +>>> import Mod1 +>>> imp.reload(Mod1) +Mod1:Введите значение = 3 +Mod1:Значение perm1= 3 + +>>> Mod1.perm1 +'3' +``` + +## 2.2. Удаление модуля из словаря + +```py +>>> print(sorted(sys.modules.keys())) +['Mod1', '__main__', '_abc', '_ast', '_bisect', '_bootlocale', '_bz2', '_codecs', '_collections', '_collections_abc', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_locale', '_lzma', '_opcode', '_operator', '_pickle', '_queue', '_random', '_sha512', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_thread', '_tkinter', '_warnings', '_weakref', '_weakrefset', '_winapi', 'abc', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.cp1251', 'encodings.latin_1', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.abc', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'msvcrt', 'nt', 'ntpath', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'signal', 'site', 'socket', 'socketserver', 'sre_compile', 'sre_constants', 'sre_parse', 'stat', 'string', 'struct', 'subprocess', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'typing.io', 'typing.re', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'winreg', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib'] +>>> sys.modules.pop('Mod1') + +>>> print(sorted(sys.modules.keys())) +['__main__', '_abc', '_ast', '_bisect', '_bootlocale', '_bz2', '_codecs', '_collections', '_collections_abc', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_locale', '_lzma', '_opcode', '_operator', '_pickle', '_queue', '_random', '_sha512', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_thread', '_tkinter', '_warnings', '_weakref', '_weakrefset', '_winapi', 'abc', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.cp1251', 'encodings.latin_1', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.abc', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'msvcrt', 'nt', 'ntpath', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'signal', 'site', 'socket', 'socketserver', 'sre_compile', 'sre_constants', 'sre_parse', 'stat', 'string', 'struct', 'subprocess', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'typing.io', 'typing.re', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'winreg', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib'] +>>> import Mod1 +Mod1:Введите значение = 4 +Mod1:Значение perm1= 4 +>>> sys.modules.pop('Mod1') + +``` + +## 2.3. Запуск модуля с помощью exec + +```py +>>> exec(open('Mod1.py').read()) +Mod1:Введите значение = 8 +Mod1:Значение perm1= 8 +>>> exec(open('Mod1.py', encoding= 'utf-8').read()) +Mod1:Введите значение = 4 +Mod1:Значение perm1= 4 +>>> exec(open('Mod1.py', encoding= 'utf-8').read()) +Mod1:Введите значение = 50 +Mod1:Значение perm1= 50 +>>> exec(open('Mod1.py', encoding= 'utf-8').read()) +Mod1:Введите значение = 10 +Mod1:Значение perm1= 10 +``` + +## 2.4. Запуск модуля с помощью from - import + +```py +>>> from Mod1 import perm1 +Mod1:Введите значение = 1 +Mod1:Значение perm1= 1 +>>> dir() +['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'imp', 'os', 'perm1', 'sys'] +>>> perm1 +'1' +``` +![Скриншот содержания файла Mod2.py](img2.png) + +```py +>>> from Mod2 import beta +>>> g=beta(2) +****BETA**** +>>> g +535.4916555247646 +>>> alpha() +Traceback (most recent call last): + File "", line 1, in + alpha() +NameError: name 'alpha' is not defined +>>> from Mod2 import alpha +>>> from Mod2 import alpha as al +>>> al() +****ALPHA**** +Значение t=5 +'5' +>>> del al,beta +>>> from Mod2 import alpha as al, beta as bt +>>> from Mod2 import * +>>> tt=alpha() +****ALPHA**** +Значение t=0.12 +>>> uu=beta(float(tt)) +****BETA**** +>>> uu +1.4578913609506803 +>>> +``` + +## 3.1. Создание многомодульных программ + +![Скриншот содержимого файла Mod0.py](img3.png) + +```py +>>> sys.modules.pop('Mod1') + +>>> sys.modules.pop('Mod2') + +>>> import Mod0 +Mod1:Введите значение = 10 +Mod1:Значение perm1= 10 +perm1= 10 +****ALPHA**** +Значение t=6 +tt= 6 +****BETA**** +qq= 153552935.39544657 +>>> Mod0.tt; Mod0.qq; Mod0.Mod1.perm1 +'6' +153552935.39544657 +'10' +``` + +## 3.2. Создание модулей и реализация программы модели САУ + +![Скриншот содержания файла MM1.py](img4.png) + +```py +>>> import MM2 +k1,T,k2,Xm,A,F,N=0.4, 30, 0.6, 6, 1000, 7, 16 +>>> print('y=', MM2.vyhod) +y= [0, 4.088148160877804, 26.352485391214998, 53.16854540749361, 72.7344196620431, 77.69321318122259, 70.35974149591577, 60.62750525878967, 58.14620628522886, 64.67689441760423, 72.40046930133941, 69.47447962424967, 48.67692603876396, 12.652572207611655, -16.163653614270103, -51.357437173804996] +``` + +## 3.3. Области действия объектов в модулях + +Была изменена функция alpha в файле Mod2.py + +```py +def alpha(): + print('****ALPHA****') + t=input('Значение t=') + n=beta(6) + print(n) + return t +``` + +После запуска модуля + +```py +>>> alpha() +****ALPHA**** +Значение t=10 +****BETA**** +153552935.39544657 +'10' +``` + +Убрали изменения из alpha, изменили beta + +```py +def beta(q): + print('****BETA****') + import math + expi=q*math.pi + alpha() + return math.exp(expi) +``` + +результат + +```py +>>> beta(6) +****BETA**** +****ALPHA**** +Значение t=10 +153552935.39544657 +``` + +Добавили функцию печати в Mod0 + +```py +import Mod1 +print('perm1=',Mod1.perm1) +from Mod2 import alpha as al +tt=al() +print('tt=',tt) +from Mod2 import beta +qq=beta(float(tt)) +print('qq=',qq) +print(t,expi) +``` + +получено + +```py +Mod1:Введите значение = 10 +Mod1:Значение perm1= 10 +perm1= 10 +****ALPHA**** +Значение t=10 +tt= 10 +****BETA**** +****ALPHA**** +Значение t=10 +qq= 44031505860631.98 +Traceback (most recent call last): + File "C:\Users\somas\python-labs\TEMA8\Mod0.py", line 9, in + print(t,expi) +NameError: name 't' is not defined +``` + +В модуле Mod0 perm1 была увеличена в 3 раза + +```py +Mod1:Введите значение = 10 +Mod1:Значение perm1= 10 +perm1= 10 +****ALPHA**** +Значение t=8 +tt= 8 +****BETA**** +qq= 82226315585.59491 +perm1*3= 101010 +``` + +так получилось, так как perm1 - строка + +изменим qq,tt,perm1 в командной строке + +```py +Mod1:Введите значение = 5 +Mod1:Значение perm1= 5 +perm1= 5 +****ALPHA**** +Значение t=8 +tt= 8 +****BETA**** +qq= 82226315585.59491 +>>> perm1 = perm1*2 +Traceback (most recent call last): + File "", line 1, in + perm1 = perm1*2 +NameError: name 'perm1' is not defined +>>> tt = tt*2 +>>> tt +'88' +>>> qq = qq*2; qq +164452631171.18982 +``` + +теперь изменим Mod0.py так, чтобы perm1 можно было изменить + +```py +import Mod1 +print('perm1=',Mod1.perm1) +from Mod2 import alpha as al +tt=al() +print('tt=',tt) +from Mod2 import beta +qq=beta(float(tt)) +print('qq=',qq) +perm1 = Mod1.perm1 +``` + +результат: + +```py +Mod1:Введите значение = 5 +Mod1:Значение perm1= 5 +perm1= 5 +****ALPHA**** +Значение t=10 +tt= 10 +****BETA**** +qq= 44031505860631.98 +>>> perm1 = perm1*2 +>>> perm1 +'55' +``` diff --git a/TEMA8/task.md b/TEMA8/task.md new file mode 100644 index 0000000..a923b19 --- /dev/null +++ b/TEMA8/task.md @@ -0,0 +1,93 @@ +#Тема 8 общее задание + +## Задание + +Разработайте программу, состоящую из трех модулей: +- Модуль 1 содержит функцию считывания числового списка из текстового файла с заданным именем (аргумент функции – имя файла). Элементы в файле могут располагаться по несколько на строке с разделением пробелом. Числа элементов в строках могут быть разными. Получен-ный список должен возвращаться в вызывающую программу. +- Модуль 2 содержит функцию расчета коэффициента корреляции по двум числовым спискам (аргументы функции – имена двух списков). Числа элементов в списках могут различаться. Значение коэффициента должно возвращаться в вызывающую программу. +- Модуль 3 запрашивает у пользователя и вводит имена двух файлов с исходными данными, дважды вызывает функцию из модуля 1 и считывает два списка из двух текстовых файлов. За-тем вызывает функцию расчета коэффициента корреляции с помощью функции из модуля 2 и отображает рассчитанное значение на экране с округлением до трех цифр после точки. +Подготовьте два текстовых файла с числовыми данными и проверьте по ним работу программы. + +## Решение + +Модуль чтения readerfile.py + +```py +def reader(filename): + num = [] + with open(filename, 'r', encoding = 'utf-8') as file: + for line in file: + elements = line.strip().split() + for elem in elements: + number = float(elem) + num.append(number) + return num +``` + +Модуль калькулятора корреляции correlate.py + +```py +import math +def correlation(numbers1, numbers2): + if not numbers1 or not numbers2: + print('пусто') + return(0) + + n = min(len(numbers1), len(numbers2)) + + x = numbers1[:n] + y = numbers2[:n] + + meanx = sum(x)/n + meany = sum(y)/n + + sum1 = 0 + sum2 = 0 + sum3 = 0 + + for i in range (n): + sum1 += ((x[i] - meanx)*(y[i] - meany)) + sum2 += ((x[i] - meanx)**2) + sum3 += ((y[i] - meany)**2) + print(sum1,sum2,sum3) + return (sum1/math.sqrt(sum2*sum3)) +``` + +Главный модуль mainfile.py + +```py +from readerfile import reader +from correlate import correlation + +def main(): + print("_________Калькулятор корреляции_________") + file1 = input("Первый файл: ").strip() + file2 = input("Второй файл: ").strip() + + numbers1 = reader(file1) + numbers2 = reader(file2) + + print(numbers1) + print(numbers2) + + cor = correlation(numbers1, numbers2) + + print("Коэффициент корреляции - ", cor) +``` + +Результат работы программы: + + +```py +>>> import mainfile +>>> mainfile.main() +_________Калькулятор корреляции_________ +Первый файл: num1.txt +Второй файл: num2.txt +[44.0, 50.0, 43.0, 30.0, 24.0, 10.0, 9.0, 1.0, 5.0, 29.0, 19.0, 14.0, 21.0] +[30.0, 60.0, 58.0, 40.0, 34.0, 20.0, 19.0, 16.0, 15.0, 39.0, 28.0, 24.0, 31.0] +2420.0 2930.0 2519.6923076923076 +Коэффициент корреляции - 0.8906514939994264 +``` + +Выводится содержимое файлов, а также суммы, полученные в correlate.py, для проверки достоверности работы расчетов \ No newline at end of file