ответвлено от main/python-labs
the end?
Этот коммит содержится в:
Двоичные данные
TEMA9/figure1.png
Обычный файл
Двоичные данные
TEMA9/figure1.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 36 KiB |
Двоичные данные
TEMA9/figure2.png
Обычный файл
Двоичные данные
TEMA9/figure2.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 35 KiB |
105
TEMA9/test.md
Обычный файл
105
TEMA9/test.md
Обычный файл
@@ -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]]
|
||||
Каждый элемент – это список элементов из соответствующей строки файла
|
||||
Ссылка в новой задаче
Block a user