форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
78 строки
3.5 KiB
Markdown
78 строки
3.5 KiB
Markdown
# Общее контрольное задание по теме 8
|
|
|
|
Девятова Мария, А-03-23
|
|
|
|
## Задание
|
|
|
|
Разработайте программу, состоящую из трех модулей:
|
|
1) Модуль 1 содержит функцию считывания числового списка из текстового файла с заданным именем (аргумент функции – имя файла).
|
|
Элементы в файле могут располагаться по несколько на строке с разделением пробелом. Числа элементов в строках могут быть разными.
|
|
Полученный список должен возвращаться в вызывающую программу.
|
|
2) Модуль 2 содержит функцию расчета коэффициента корреляции по двум числовым спискам (аргументы функции – имена двух списков).
|
|
Числа элементов в списках могут различаться. Значение коэффициента должно возвращаться в вызывающую программу.
|
|
3) Модуль 3 запрашивает у пользователя и вводит имена двух файлов с исходными данными, дважды вызывает функцию из модуля 1 и считывает два списка из двух текстовых файлов.
|
|
Затем вызывает функцию расчета коэффициента корреляции с помощью функции из модуля 2 и отображает рассчитанное значение на экране с округлением до трех цифр после точки.
|
|
Подготовьте два текстовых файла с числовыми данными и проверьте по ним работу программы.
|
|
|
|
## Выполнение
|
|
|
|
Текст модуля [task1](task1.py)
|
|
|
|
```
|
|
def reading(file_n):
|
|
numbers = []
|
|
fp=open(file_n)
|
|
for line in fp:
|
|
numbers.extend(map(float, line.split()))
|
|
fp.close()
|
|
return numbers
|
|
```
|
|
|
|
Текст модуля [task2](task2.py)
|
|
|
|
```
|
|
import statistics
|
|
|
|
def corr(list1, list2):
|
|
n=min(len(list1), len(list2))
|
|
list1=list1[:n]
|
|
list2=list2[:n]
|
|
coeff=statistics.correlation(list1, list2)
|
|
return coeff
|
|
```
|
|
|
|
Текст модуля [task3](task3.py)
|
|
|
|
```
|
|
import task1, task2
|
|
|
|
file1=input('Введите название первого текстового файла ')
|
|
file2=input('Введите название второго текстового файла ')
|
|
x1=task1.reading(file1)
|
|
x2=task1.reading(file2)
|
|
print('Полученный список 1: ', x1, '\nПолученный список 2: ', x2)
|
|
print('Коэффициент корреляции: ', round(task2.corr(x1, x2), 3))
|
|
```
|
|
|
|
Содержимое текстового файла spis1.txt:
|
|
|
|
```
|
|
1 7 -2 -5 4 10 -2
|
|
```
|
|
|
|
Содержимое текстового файла spis2.txt:
|
|
|
|
```
|
|
0 0 1 2
|
|
```
|
|
|
|
Выполнение:
|
|
|
|
```
|
|
import task3
|
|
Введите название первого текстового файла spis1.txt
|
|
Введите название второго текстового файла spis2.txt
|
|
Полученный список 1: [1.0, 7.0, -2.0, -5.0, 4.0, 10.0, -2.0]
|
|
Полученный список 2: [0.0, 0.0, 1.0, 2.0]
|
|
Коэффициент корреляции: -0.866
|
|
``` |