diff --git a/TEMA6/binary.bin b/TEMA6/binary.bin index 145e418..cd6d133 100644 Binary files a/TEMA6/binary.bin and b/TEMA6/binary.bin differ diff --git a/TEMA6/test.md b/TEMA6/test.md index 161cf89..07dc979 100644 --- a/TEMA6/test.md +++ b/TEMA6/test.md @@ -4,4 +4,83 @@ ## Задание -## Решение \ No newline at end of file +M2_11 + +1) Запросите у пользователя и введите имя функции из библиотеки math для обработки данных. + +2) Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40. + +3) Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа. + +4) Выведите кортеж и результирующий список в бинарный файл с любым именем. + +5) Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране. + +## Решение + + +```py + +>>> import os +>>> import random +>>> import pickle +>>> import math + +>>> # 1) Запросите у пользователя и введите имя функции из библиотеки math для обработки данных. + +>>> +>>> func_name = input("Введите имя функции из библиотеки math (например sqrt, sin, cos): ") +Введите имя функции из библиотеки math (например sqrt, sin, cos): sin +>>> func_name +'sin' +>>> if not hasattr(math, func_name): +... print(f"Функция '{func_name}' не найдена в библиотеке math") +... exit() +... +... +>>> func = getattr(math, func_name) +>>> func + + +# 2) Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40. + +kort = tuple(random.uniform(11, 40) for _ in range(20)) + +kort +(16.808827380882583, 13.328126034808443, 18.508365438743773, 38.400181739145395, 30.74396638844783, 37.02011460254017, 18.87968576156089, 22.394000025760057, 23.062018003376906, 11.323633616339949, 36.2506853914364, 19.48084169593707, 31.425343980568798, 35.03973794703552, 36.48310456868603, 23.14357758721929, 30.09328844881235, 27.45402353941273, 19.232678017829635, 20.59891162619639) + +# 3) Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа. + +result_list = [func(x) for x in kort] +result_list +[-0.8915989855595101, 0.6901927749569217, -0.33460918876777096, 0.6450356200195559, -0.6225211991234381, -0.6280129896135037, 0.030125281547794338, -0.3920431155680488, -0.877617606249215, -0.9466694226202514, -0.9925221451754105, 0.590183211747677, 0.009417305468679018, -0.4637460639640912, -0.9377197913088371, -0.9137534675198252, -0.9693664369267251, 0.7313575170189571, 0.3738180373474736, 0.9841005857350538] + +# 4) Выведите кортеж и результирующий список в бинарный файл с любым именем. + +with open('/home/s0ba4/mpei/python-labs/TEMA6/binary.bin', 'wb+') as fp1: + pickle.dump({'kortezh': kort, 'list': result_list}, fp1) + +with open('/home/s0ba4/mpei/python-labs/TEMA6/binary.bin', 'rb+') as fp2: + pickle.load(fp2) + +{'kortezh': (16.808827380882583, 13.328126034808443, 18.508365438743773, 38.400181739145395, 30.74396638844783, 37.02011460254017, 18.87968576156089, 22.394000025760057, 23.062018003376906, 11.323633616339949, 36.2506853914364, 19.48084169593707, 31.425343980568798, 35.03973794703552, 36.48310456868603, 23.14357758721929, 30.09328844881235, 27.45402353941273, 19.232678017829635, 20.59891162619639), 'list': [-0.8915989855595101, 0.6901927749569217, -0.33460918876777096, 0.6450356200195559, -0.6225211991234381, -0.6280129896135037, 0.030125281547794338, -0.3920431155680488, -0.877617606249215, -0.9466694226202514, -0.9925221451754105, 0.590183211747677, 0.009417305468679018, -0.4637460639640912, -0.9377197913088371, -0.9137534675198252, -0.9693664369267251, 0.7313575170189571, 0.3738180373474736, 0.9841005857350538]} + +# 5) Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране. + +diffs = [] +for i in range(0, len(result_list) - 1, 2): + if i + 1 < len(result_list): + diff = result_list[i] - result_list[i + 1] + diffs.append(diff) + + +if diffs: + avg_diff = sum(diffs) / len(diffs) + print(f"\nСреднее значение разностей элементов на соседних четных и нечетных позициях:") + print(f"{avg_diff:.4f}") + + + +Среднее значение разностей элементов на соседних четных и нечетных позициях: +-0.5509 +``` \ No newline at end of file