no name 2 часов назад
Родитель 6060694e61
Сommit 938ea36e39

Двоичные данные
TEMA9/figure1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 36 KiB

Двоичные данные
TEMA9/figure2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 35 KiB

@ -0,0 +1,105 @@
Жалнин Вадим А-01-23
Вариант теста по модулю 3 - 18
```
M3_19
1) Создайте модуль М1, содержащий 2 функции:
- функция 1: аргумент - список или кортеж с отсчетами некоторого сигнала; функция должна определить и вернуть число элементов, значение которых превышает значение предыдущего элемента;
- функция 2: аргумент - список или кортеж с последовательностью отсчетов сигнала; функция должна рассчитать список с накопленными суммами: первый элемент равен первому элементу исходной последовательности, второй - равен сумме двух первых элементов последовательности, третий - сумме первых трех элементов и т.д.
2) Создайте еще один модуль М2, в котором должны выполняться следующие операции:
- запрашивается имя бинарного файла с выборкой, проверяется его наличие и при отсутствии - повторяется запрос;
- выборка вводится из файла;
- с помощью функции 1 производится определение числа элементов со значениями, превышающими значения их предшественников;
- с помощью функции 2 рассчитывается список с кумулятивными суммами;
- выборка отображается в виде графика.
3) Создайте модуль М0 - главную программу, которая вызывает М2 и отображает результаты расчета на экране.
4) Проведите расчеты при 2-х разных исходных файлах.
```
```
"m1.py"
```
```python
def count_increasing(data):
    count = 0
    i = 1
    while i < len(data):
        if data[i] > data[i-1]:
            count = count + 1
        i = i + 1
    return count
def cumulative_sum(data):
    result = []
    total = 0
    for x in data:
        total = total + x
        result.append(total)
    return result
```
```
"module2.py"
```
```python
import pickle
import m1
import matplotlib.pyplot as plt
   while True:
        filename = input("Имя файла: ")
        try:
            f = open(filename, 'rb')
            signal = pickle.load(f)
            f.close()
            break
        except:
            print("не найден, пробуйте еще раз.")
    increasing = m1.count_increasing(signal)
    cumulative = m1.cumulative_sum(signal)
    plt.plot(signal)
plt.title("График выборки")
plt.show()
    return signal, increasing, cumulative
```
```
main.py
```
```python
import module2
import pickle
data1 = [1, 3, 2, 5, 4, 7, 6, 9, 8]
f1 = open("file1.bin", "wb")
pickle.dump(data1, f1)
f1.close()
data2 = [10, 8, 12, 11, 15, 13, 17, 16]
f2 = open("file2.bin", "wb")
pickle.dump(data2, f2)
f2.close()
print("проверка первым файлом")
sig1, inc1, cum1 = module2.work_with_file()
print("сигнал:", sig1)
print("увеличивающихся:", inc1)
print("накопленная сумма:", cum1)
print()
print("проверка вторым файлом")
sig2, inc2, cum2 = module2.work_with_file()
print("сигнал:", sig2)
print("увеличивающихся:", inc2)
print("накопленная сумма:", cum2)
```
вывод в терминал:
```powershell
проверка первым файлом
Имя файла: file4.bin
не найден, пробуйте еще раз.
Имя файла: file1.bin
сигнал: [1, 3, 2, 5, 4, 7, 6, 9, 8]
увеличивающихся: 4
накопленная сумма: [1, 4, 6, 11, 15, 22, 28, 37, 45]
проверка вторым файлом
Имя файла: file2.bin
сигнал: [10, 8, 12, 11, 15, 13, 17, 16]
увеличивающихся: 3
накопленная сумма: [10, 18, 30, 41, 56, 69, 86, 102]
```
![[figure1.png]]
![[figure2.png]]
Каждый элемент – это список  элементов из соответствующей строки файла
Загрузка…
Отмена
Сохранить