diff --git a/TEMA8/modtask0.py b/TEMA8/modtask0.py new file mode 100644 index 0000000..d9e5adb --- /dev/null +++ b/TEMA8/modtask0.py @@ -0,0 +1,9 @@ +import modtask1 +mu = float(input("Введите мат. ожидание (mu): ")) +var = float(input("Введите дисперсию (var): ")) +n = int(input("Введите число отсчетов (n): ")) +filename = input("Введите имя файла (например noise.txt): ").strip() +s = modtask1.shum(mu, var, n, filename) +print("Готово! Список получен и записан в файл.") +print("Длина списка:", len(s)) +print("Первые 10 значений:", s[:10]) diff --git a/TEMA8/modtask1.py b/TEMA8/modtask1.py new file mode 100644 index 0000000..798b0b2 --- /dev/null +++ b/TEMA8/modtask1.py @@ -0,0 +1,17 @@ +import random +import math + +def shum(mu, var, n, filename): + sigma = math.sqrt(var) + data = [] + f = open(filename, "w", encoding="utf-8") + for i in range(n): + x = random.gauss(mu, sigma) + data.append(x) + if (i + 1) % 3 == 0: + f.write(f"{data[i-2]} {data[i-1]} {data[i]}\n") + elif i == n - 1: + start = i - (i % 3) + f.write(" ".join(str(v) for v in data[start:]) + "\n") + f.close() + return data diff --git a/TEMA8/task1 b/TEMA8/task1 new file mode 100644 index 0000000..dbb165d --- /dev/null +++ b/TEMA8/task1 @@ -0,0 +1,2 @@ +4.903428780465844 0.587814428103369 4.692004162944187 +1.7931553860723835 5.797829782338331 2.3303270038829353 diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..a885051 --- /dev/null +++ b/TEMA8/test.md @@ -0,0 +1,58 @@ +# Индивидуальное контрольное задание по теме 8 +Бушманов А.С. А-01-23 +## Задание: Вариант 2 +### Из темы 7: +Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайного, нормально распределенного сигнала типа белого шума с заданными параметрами: математическое ожидание и дисперсия, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - пробел в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка. +### Из темы 8: +По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. + +## Решение: +#### Модуль 1: modtask1.py +```python +import random +import math + +def shum(mu, var, n, filename): + sigma = math.sqrt(var) + data = [] + f = open(filename, "w", encoding="utf-8") + for i in range(n): + x = random.gauss(mu, sigma) + data.append(x) + if (i + 1) % 3 == 0: + f.write(f"{data[i-2]} {data[i-1]} {data[i]}\n") + elif i == n - 1: + start = i - (i % 3) + f.write(" ".join(str(v) for v in data[start:]) + "\n") + f.close() + return data +``` +#### Модуль 2: modtask0.py +```python +import modtask1 +mu = float(input("Введите мат. ожидание (mu): ")) +var = float(input("Введите дисперсию (var): ")) +n = int(input("Введите число отсчетов (n): ")) +filename = input("Введите имя файла (например noise.txt): ").strip() +s = modtask1.shum(mu, var, n, filename) +print("Готово! Список получен и записан в файл.") +print("Длина списка:", len(s)) +print("Первые 10 значений:", s[:10]) +``` +## Ответ: +```python +import modtask0 +Введите мат. ожидание (mu): 3 +Введите дисперсию (var): 6 +Введите число отсчетов (n): 6 +Введите имя файла (например noise.txt): task1 +Готово! Список получен и записан в файл. +Длина списка: 6 +Первые 10 значений: [4.903428780465844, 0.587814428103369, 4.692004162944187, 1.7931553860723835, 5.797829782338331, 2.3303270038829353] +``` +#### Файл txt: +``` +4.903428780465844 0.587814428103369 4.692004162944187 +1.7931553860723835 5.797829782338331 2.3303270038829353 + +```