From 053cf63996d5954c9c8b8971eb8915b782d5d171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=20=E2=84=96=207=20=D0=B0=D1=83=D0=B4=D0=B8?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=96-115?= Date: Fri, 5 Dec 2025 11:04:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=82=D1=87=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA8/file.txt | 101 ++++++++++++++++++++++++ TEMA8/main_module.py | 16 ++++ TEMA8/test.md | 157 ++++++++++++++++++++++++++++++++++++++ TEMA8/test.txt | 157 ++++++++++++++++++++++++++++++++++++++ TEMA8/transform_module.py | 18 +++++ 5 files changed, 449 insertions(+) create mode 100644 TEMA8/file.txt create mode 100644 TEMA8/main_module.py create mode 100644 TEMA8/test.md create mode 100644 TEMA8/test.txt create mode 100644 TEMA8/transform_module.py diff --git a/TEMA8/file.txt b/TEMA8/file.txt new file mode 100644 index 0000000..21147d8 --- /dev/null +++ b/TEMA8/file.txt @@ -0,0 +1,101 @@ +xi yi +3.670624845040832 0 +-0.3521658782544006 0 +8.474868613693486 3.974868613693486 +-1.2523156239267281 0 +-3.7587096811346328 0 +7.812468585140991 3.3124685851409907 +-6.0856889627564446 -1.5856889627564446 +-5.724951279110531 -1.224951279110531 +-7.209307783131958 -2.7093077831319583 +-0.03177225581110221 0 +0.7262377096028143 0 +-2.1451811018035256 0 +0.682492352684937 0 +-7.974098743623873 -3.4740987436238733 +-4.739894789384625 -0.23989478938462483 +0.5785673884962104 0 +2.7900552540834824 0 +-2.9878254998277147 0 +8.68266903601552 4.18266903601552 +0.6358011132082179 0 +-1.581248665373875 0 +-7.714241862469274 -3.214241862469274 +4.191086710659071 0 +-5.8603083872222115 -1.3603083872222115 +6.6401090127726645 2.1401090127726645 +2.260239806764301 0 +-1.6714707105856204 0 +2.11512773242201 0 +-5.1120638328556165 -0.6120638328556165 +-10.945281168071894 -6.445281168071894 +2.8366672115699614 0 +1.4086809273229965 0 +-2.1496484779110046 0 +-2.204188117632971 0 +5.109718373038055 0.6097183730380547 +-0.8627148245032066 0 +-3.940717361293867 0 +-6.317208582843859 -1.8172085828438593 +4.161315157870332 0 +3.7381890083293237 0 +3.509751762296771 0 +-5.112977704740069 -0.6129777047400689 +1.3712601808556377 0 +-4.511100221705535 -0.011100221705534707 +5.187248298870852 0.6872482988708519 +7.526201082555464 3.026201082555464 +0.943215636501155 0 +-1.6731422501170918 0 +-3.6509712338126468 0 +-8.970988280742628 -4.4709882807426276 +-3.7178510417802197 0 +-9.181348116863681 -4.681348116863681 +-7.096909208628782 -2.596909208628782 +-6.356674467305581 -1.8566744673055808 +12.362835482493008 7.862835482493008 +-3.829821255664842 0 +3.863254268939434 0 +-7.361058739291252 -2.861058739291252 +2.647441327077496 0 +-0.2463332543002399 0 +-6.43345466288511 -1.9334546628851097 +1.0010663991036108 0 +4.891543232391817 0.3915432323918173 +3.217395947085928 0 +7.24856212261116 2.74856212261116 +0.03268157666206739 0 +2.361643183782607 0 +2.7565941347292853 0 +6.614328614660419 2.114328614660419 +-4.522306819553961 -0.022306819553961077 +-2.417360799898943 0 +1.438340972480404 0 +-10.538183665090727 -6.0381836650907275 +2.3976210633141606 0 +-7.884528665296656 -3.3845286652966564 +-3.7426936627274277 0 +4.2656325795417 0 +8.00340261637121 3.5034026163712095 +3.0203739276410437 0 +2.239032949899291 0 +-5.4012053050140345 -0.9012053050140345 +-0.5456659941079272 0 +-3.3423758989922203 0 +0.6911815315164658 0 +4.499821505200004 0 +-2.7737597404880163 0 +0.9093545223215143 0 +4.045688327501273 0 +3.417507437526962 0 +2.287170277997463 0 +12.444224815662537 7.944224815662537 +-2.3029729728150645 0 +7.5434316730659905 3.0434316730659905 +0.875475942768364 0 +-1.0441288330619352 0 +-1.9188907056958815 0 +-5.4887311611961715 -0.9887311611961715 +7.893972719410864 3.393972719410864 +-7.404570078842247 -2.904570078842247 +-2.066644631987605 0 diff --git a/TEMA8/main_module.py b/TEMA8/main_module.py new file mode 100644 index 0000000..c13a8f0 --- /dev/null +++ b/TEMA8/main_module.py @@ -0,0 +1,16 @@ +import random +import math +from transform_module import transform_signal + +def main(): + x = [random.gauss(0.5, 5) for i in range(100)] + # 0.5 - мат ожидание, 5 - СКО = корень из 25 (дисперсия = 25) + y = transform_signal(x, 4.5) + + with open('file.txt', 'w') as f: + f.write("xi yi\n") + for xi, yi in zip(x, y): + f.write(f"{xi} {yi}\n") + # вывод в файле file.txt + +main() diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..f90eaf9 --- /dev/null +++ b/TEMA8/test.md @@ -0,0 +1,157 @@ +# Выполнение индивидуального контрольного задания по теме 8 + +Голощапов Д.Е.,А-01-23 + +# Задание + +Разработайте функцию с 2 аргументами: x и В, реализующую преобразование входного сигнала x по формуле: y=0 при -B≤x≤B, y=x - B при x>B, y=x+B при x<-B. Создайте список со 100 значениями входного сигнала х – случайными, нормально распределенными числами с математическим ожиданием 0.5 и дисперсией 25. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при В=4.5. Записать результаты в текстовый файл в виде двух столбцов: хi, yi. + +# Решение + +Функция для линейно-кусочного преобразования transform_signal находится в модуле transformation_module.py + +Код представлен ниже: + +def transform_signal(x, B): + """ + Кусочно-линейное преобразование: + y = 0 при -B <= xi <= B + y = xi - B при xi > B + y = xi + B при xi < -B + + x - список входных значений + """ + y = [] + for xi in x: + if -B <= xi <= B: + y.append(0) + elif xi > B: + y.append(xi - B) + else: + y.append(xi + B) + return y + + +Код основного модуля: + +import random +import math +from transform_module import transform_signal + +def main(): + x = [random.gauss(0.5, 5) for i in range(100)] + # 0.5 - мат ожидание, 5 - СКО = корень из 25 (дисперсия = 25) + y = transform_signal(x, 4.5) + + with open('file.txt', 'w') as f: + f.write("xi yi\n") + for xi, yi in zip(x, y): + f.write(f"{xi} {yi}\n") + + # вывод в файле file.txt + +main() + +Содержимое файла file.txt: + +xi yi +3.670624845040832 0 +-0.3521658782544006 0 +8.474868613693486 3.974868613693486 +-1.2523156239267281 0 +-3.7587096811346328 0 +7.812468585140991 3.3124685851409907 +-6.0856889627564446 -1.5856889627564446 +-5.724951279110531 -1.224951279110531 +-7.209307783131958 -2.7093077831319583 +-0.03177225581110221 0 +0.7262377096028143 0 +-2.1451811018035256 0 +0.682492352684937 0 +-7.974098743623873 -3.4740987436238733 +-4.739894789384625 -0.23989478938462483 +0.5785673884962104 0 +2.7900552540834824 0 +-2.9878254998277147 0 +8.68266903601552 4.18266903601552 +0.6358011132082179 0 +-1.581248665373875 0 +-7.714241862469274 -3.214241862469274 +4.191086710659071 0 +-5.8603083872222115 -1.3603083872222115 +6.6401090127726645 2.1401090127726645 +2.260239806764301 0 +-1.6714707105856204 0 +2.11512773242201 0 +-5.1120638328556165 -0.6120638328556165 +-10.945281168071894 -6.445281168071894 +2.8366672115699614 0 +1.4086809273229965 0 +-2.1496484779110046 0 +-2.204188117632971 0 +5.109718373038055 0.6097183730380547 +-0.8627148245032066 0 +-3.940717361293867 0 +-6.317208582843859 -1.8172085828438593 +4.161315157870332 0 +3.7381890083293237 0 +3.509751762296771 0 +-5.112977704740069 -0.6129777047400689 +1.3712601808556377 0 +-4.511100221705535 -0.011100221705534707 +5.187248298870852 0.6872482988708519 +7.526201082555464 3.026201082555464 +0.943215636501155 0 +-1.6731422501170918 0 +-3.6509712338126468 0 +-8.970988280742628 -4.4709882807426276 +-3.7178510417802197 0 +-9.181348116863681 -4.681348116863681 +-7.096909208628782 -2.596909208628782 +-6.356674467305581 -1.8566744673055808 +12.362835482493008 7.862835482493008 +-3.829821255664842 0 +3.863254268939434 0 +-7.361058739291252 -2.861058739291252 +2.647441327077496 0 +-0.2463332543002399 0 +-6.43345466288511 -1.9334546628851097 +1.0010663991036108 0 +4.891543232391817 0.3915432323918173 +3.217395947085928 0 +7.24856212261116 2.74856212261116 +0.03268157666206739 0 +2.361643183782607 0 +2.7565941347292853 0 +6.614328614660419 2.114328614660419 +-4.522306819553961 -0.022306819553961077 +-2.417360799898943 0 +1.438340972480404 0 +-10.538183665090727 -6.0381836650907275 +2.3976210633141606 0 +-7.884528665296656 -3.3845286652966564 +-3.7426936627274277 0 +4.2656325795417 0 +8.00340261637121 3.5034026163712095 +3.0203739276410437 0 +2.239032949899291 0 +-5.4012053050140345 -0.9012053050140345 +-0.5456659941079272 0 +-3.3423758989922203 0 +0.6911815315164658 0 +4.499821505200004 0 +-2.7737597404880163 0 +0.9093545223215143 0 +4.045688327501273 0 +3.417507437526962 0 +2.287170277997463 0 +12.444224815662537 7.944224815662537 +-2.3029729728150645 0 +7.5434316730659905 3.0434316730659905 +0.875475942768364 0 +-1.0441288330619352 0 +-1.9188907056958815 0 +-5.4887311611961715 -0.9887311611961715 +7.893972719410864 3.393972719410864 +-7.404570078842247 -2.904570078842247 +-2.066644631987605 0 \ No newline at end of file diff --git a/TEMA8/test.txt b/TEMA8/test.txt new file mode 100644 index 0000000..f90eaf9 --- /dev/null +++ b/TEMA8/test.txt @@ -0,0 +1,157 @@ +# Выполнение индивидуального контрольного задания по теме 8 + +Голощапов Д.Е.,А-01-23 + +# Задание + +Разработайте функцию с 2 аргументами: x и В, реализующую преобразование входного сигнала x по формуле: y=0 при -B≤x≤B, y=x - B при x>B, y=x+B при x<-B. Создайте список со 100 значениями входного сигнала х – случайными, нормально распределенными числами с математическим ожиданием 0.5 и дисперсией 25. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при В=4.5. Записать результаты в текстовый файл в виде двух столбцов: хi, yi. + +# Решение + +Функция для линейно-кусочного преобразования transform_signal находится в модуле transformation_module.py + +Код представлен ниже: + +def transform_signal(x, B): + """ + Кусочно-линейное преобразование: + y = 0 при -B <= xi <= B + y = xi - B при xi > B + y = xi + B при xi < -B + + x - список входных значений + """ + y = [] + for xi in x: + if -B <= xi <= B: + y.append(0) + elif xi > B: + y.append(xi - B) + else: + y.append(xi + B) + return y + + +Код основного модуля: + +import random +import math +from transform_module import transform_signal + +def main(): + x = [random.gauss(0.5, 5) for i in range(100)] + # 0.5 - мат ожидание, 5 - СКО = корень из 25 (дисперсия = 25) + y = transform_signal(x, 4.5) + + with open('file.txt', 'w') as f: + f.write("xi yi\n") + for xi, yi in zip(x, y): + f.write(f"{xi} {yi}\n") + + # вывод в файле file.txt + +main() + +Содержимое файла file.txt: + +xi yi +3.670624845040832 0 +-0.3521658782544006 0 +8.474868613693486 3.974868613693486 +-1.2523156239267281 0 +-3.7587096811346328 0 +7.812468585140991 3.3124685851409907 +-6.0856889627564446 -1.5856889627564446 +-5.724951279110531 -1.224951279110531 +-7.209307783131958 -2.7093077831319583 +-0.03177225581110221 0 +0.7262377096028143 0 +-2.1451811018035256 0 +0.682492352684937 0 +-7.974098743623873 -3.4740987436238733 +-4.739894789384625 -0.23989478938462483 +0.5785673884962104 0 +2.7900552540834824 0 +-2.9878254998277147 0 +8.68266903601552 4.18266903601552 +0.6358011132082179 0 +-1.581248665373875 0 +-7.714241862469274 -3.214241862469274 +4.191086710659071 0 +-5.8603083872222115 -1.3603083872222115 +6.6401090127726645 2.1401090127726645 +2.260239806764301 0 +-1.6714707105856204 0 +2.11512773242201 0 +-5.1120638328556165 -0.6120638328556165 +-10.945281168071894 -6.445281168071894 +2.8366672115699614 0 +1.4086809273229965 0 +-2.1496484779110046 0 +-2.204188117632971 0 +5.109718373038055 0.6097183730380547 +-0.8627148245032066 0 +-3.940717361293867 0 +-6.317208582843859 -1.8172085828438593 +4.161315157870332 0 +3.7381890083293237 0 +3.509751762296771 0 +-5.112977704740069 -0.6129777047400689 +1.3712601808556377 0 +-4.511100221705535 -0.011100221705534707 +5.187248298870852 0.6872482988708519 +7.526201082555464 3.026201082555464 +0.943215636501155 0 +-1.6731422501170918 0 +-3.6509712338126468 0 +-8.970988280742628 -4.4709882807426276 +-3.7178510417802197 0 +-9.181348116863681 -4.681348116863681 +-7.096909208628782 -2.596909208628782 +-6.356674467305581 -1.8566744673055808 +12.362835482493008 7.862835482493008 +-3.829821255664842 0 +3.863254268939434 0 +-7.361058739291252 -2.861058739291252 +2.647441327077496 0 +-0.2463332543002399 0 +-6.43345466288511 -1.9334546628851097 +1.0010663991036108 0 +4.891543232391817 0.3915432323918173 +3.217395947085928 0 +7.24856212261116 2.74856212261116 +0.03268157666206739 0 +2.361643183782607 0 +2.7565941347292853 0 +6.614328614660419 2.114328614660419 +-4.522306819553961 -0.022306819553961077 +-2.417360799898943 0 +1.438340972480404 0 +-10.538183665090727 -6.0381836650907275 +2.3976210633141606 0 +-7.884528665296656 -3.3845286652966564 +-3.7426936627274277 0 +4.2656325795417 0 +8.00340261637121 3.5034026163712095 +3.0203739276410437 0 +2.239032949899291 0 +-5.4012053050140345 -0.9012053050140345 +-0.5456659941079272 0 +-3.3423758989922203 0 +0.6911815315164658 0 +4.499821505200004 0 +-2.7737597404880163 0 +0.9093545223215143 0 +4.045688327501273 0 +3.417507437526962 0 +2.287170277997463 0 +12.444224815662537 7.944224815662537 +-2.3029729728150645 0 +7.5434316730659905 3.0434316730659905 +0.875475942768364 0 +-1.0441288330619352 0 +-1.9188907056958815 0 +-5.4887311611961715 -0.9887311611961715 +7.893972719410864 3.393972719410864 +-7.404570078842247 -2.904570078842247 +-2.066644631987605 0 \ No newline at end of file diff --git a/TEMA8/transform_module.py b/TEMA8/transform_module.py new file mode 100644 index 0000000..84a2645 --- /dev/null +++ b/TEMA8/transform_module.py @@ -0,0 +1,18 @@ +def transform_signal(x, B): + """ + Кусочно-линейное преобразование: + y = 0 при -B <= xi <= B + y = xi - B при xi > B + y = xi + B при xi < -B + + x - список входных значений + """ + y = [] + for xi in x: + if -B <= xi <= B: + y.append(0) + elif xi > B: + y.append(xi - B) + else: + y.append(xi + B) + return y