diff --git a/TEMA8/IKZ_output.txt b/TEMA8/IKZ_output.txt new file mode 100644 index 0000000..b242a64 --- /dev/null +++ b/TEMA8/IKZ_output.txt @@ -0,0 +1 @@ +x[i] | y[i] \ No newline at end of file diff --git a/TEMA8/Mod1_IKZ.py b/TEMA8/Mod1_IKZ.py new file mode 100644 index 0000000..65d0eb5 --- /dev/null +++ b/TEMA8/Mod1_IKZ.py @@ -0,0 +1,10 @@ +# Mod1 +# Функция +def preob(x, A): + max_i=int(A*x) + for i in range(1, max_i+1): + if i*A<=x and x<(i+1)*A: + return i + elif -(i+1)*A>=x and x>(-i)*A: + return -i + return 0 diff --git a/TEMA8/Mod2_IKZ.py b/TEMA8/Mod2_IKZ.py new file mode 100644 index 0000000..8934813 --- /dev/null +++ b/TEMA8/Mod2_IKZ.py @@ -0,0 +1,16 @@ +# Mod2 +# Генерация входных данных и применение функции +import random as rn +from Mod1_IKZ import preob +x=[] +for i in range(100): + x.append(rn.triangular(-5,25)) +y=[] +for i in range(len(x)): + y.append(preob(x[i],1)) +filename=input('Введите имя файла:') +file=open(filename,'w') +for i in range(len(x)): + s=str(x[i])+' '+str(y[i]) + '\n' + file.write(s) +file.close() diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..13eef17 --- /dev/null +++ b/TEMA8/test.md @@ -0,0 +1,45 @@ +# Индивидуальное контрольное задание по Теме 8 +Таболин Иван, А-01-23 +Вариант 7 +## Задание +По указанному преподавателем варианту контрольного задания +обратитесь к индивидуальному заданию с таким номером в теме 7, +разработайте функцию, на ее основе создайте модуль. +Создайте второй модуль, в котором должны быть инструкции для ввода/создания +исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. + +Вариант 7 из ИКЗ по Теме 7 +Разработайте функцию с 2 параметрами: х и А, реализующую преобразование входного сигнала x по формуле: y=i, если i*A<=x<(i+1)*A, y=-i, если -(i+1)*A>=x>-i*A, где i принимает значения от 1 до А*х. Если не выполнится ни одно из неравенств ни при каком i, то y=0. Создайте список со 100 значениями входного сигнала х – случайными, треугольно (triangular) распределенными числами в диапазоне значений от -5 до 25. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при А=1. Записать результаты в текстовый файл в виде двух столбцов: хi, yi. +## Решение +Модуль 1 +```py +# Mod1 +# Функция +def preob(x, A): + max_i=int(A*x) + for i in range(1, max_i+1): + if i*A<=x and x<(i+1)*A: + return i + elif -(i+1)*A>=x and x>(-i)*A: + return -i + return 0 +``` +Модуль 2 +```py +# Mod2 +# Генерация входных данных и применение функции +import random as rn +from Mod1_IKZ import preob +x=[] +for i in range(100): + x.append(rn.triangular(-5,25)) +y=[] +for i in range(len(x)): + y.append(preob(x[i],1)) +filename=input('Введите имя файла:') +file=open(filename,'w') +for i in range(len(x)): + s=str(x[i])+' '+str(y[i]) + '\n' + file.write(s) +file.close() +``` \ No newline at end of file diff --git a/TEMA8/test_out.txt b/TEMA8/test_out.txt new file mode 100644 index 0000000..46faa3b --- /dev/null +++ b/TEMA8/test_out.txt @@ -0,0 +1,100 @@ +19.83763113980755 19 +16.683519633109245 16 +9.613937932157592 9 +4.963017908969933 4 +9.660130026497008 9 +4.192677427076193 4 +2.8042897405957676 2 +7.004180515732655 7 +13.593516894395366 13 +10.38778089627398 10 +23.524552246854263 23 +10.408378867939485 10 +12.11908886265757 12 +13.722587336888672 13 +9.599035410843936 9 +16.182722607179095 16 +15.960737898669425 15 +20.453332281292724 20 +9.351758251975712 9 +4.715296915378227 4 +21.713766919024486 21 +0.5766163127695902 0 +8.764382760761023 8 +7.023206736247321 7 +10.380398342708045 10 +14.71079199542745 14 +9.327675742027745 9 +6.379809079109103 6 +6.478312277893931 6 +0.9453591189849897 0 +17.810398025399493 17 +9.500089559677443 9 +10.206335274636286 10 +13.119123320799352 13 +12.152291629686335 12 +17.672173423083027 17 +-1.3318207939976006 0 +16.201396905672105 16 +6.813514064477367 6 +9.386637502670942 9 +6.829696632809032 6 +-2.358188970070025 0 +-1.8953657622144822 0 +12.163997113559677 12 +16.246743920828237 16 +18.082861735802094 18 +8.161677718632582 8 +13.096553199692709 13 +3.4793080092423683 3 +14.410061733084142 14 +2.8415355967140616 2 +7.827245427286652 7 +-0.2683352964665069 0 +2.5318198114412107 2 +14.741462609540093 14 +9.309479183851334 9 +8.719026442686971 8 +15.097020825961328 15 +20.836394245081628 20 +9.664289544985778 9 +0.8788652718512342 0 +12.801681925869698 12 +9.221793961478204 9 +7.473865176092325 7 +8.93244222349147 8 +21.276485422746923 21 +0.9186139053532276 0 +15.614780434508106 15 +23.72548157518309 23 +2.286817323138184 2 +9.39166993120276 9 +17.54026543856295 17 +15.96232105645722 15 +17.402341242065198 17 +8.064826473440498 8 +13.969534898590881 13 +2.7987177875076386 2 +11.604604823060031 11 +11.307488847855737 11 +11.683304043759009 11 +9.924038399834346 9 +10.638645358046208 10 +6.594015975799261 6 +0.02987019195388818 0 +2.9540472170256677 2 +4.273258511639778 4 +14.616967538004785 14 +13.722438873502576 13 +19.81038211300028 19 +7.99574094616143 7 +4.330799633595037 4 +19.54150269676732 19 +8.165940914694414 8 +14.33141467468756 14 +22.697364809616474 22 +14.472567937917809 14 +4.509353418534642 4 +12.138577182051138 12 +5.911408597590821 5 +3.303353684790464 3