ответвлено от 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