Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2.5 KiB

Индивидуальное контрольное задание по теме 8

Киреев Юрий А-02-23

Задание

По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. 2 вариант 7й темы Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайного, нормально распределенного сигнала типа белого шума с заданными параметрами: математическое ожидание и дисперсия, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - пробел в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.

Решение

Модуль с функцией (modfun):

import random
def generate_noise(mean, variance, otscheti, filename):
    sto = variance**(1/2)
    signal=[random.gauss(mean, sto) for x in range(otscheti)] 
    with open(filename, 'w') as fp: 
        for i in range(0,otscheti,3):
            line=" ".join(str(value) for value in signal[i:i+3])
            fp.write(line+"\n")
    return signal

Модуль с инструкциями ввода/вывода (zapusk):

from modfun import generate_noise
noise = generate_noise(0, 1, 5, "test.txt") 
print(noise)

Проверка:

import os
os.chdir('C:\\Users\\u522-13\\Desktop\\ПОАС')
import zapusk
[-0.698871305720859, -0.7706401494821621, 0.8869359612629606, -1.7573739796230814, 0.22414109065695026]

Вывод в файле:

-0.698871305720859 -0.7706401494821621 0.8869359612629606
-1.7573739796230814 0.22414109065695026