ответвлено от main/python-labs
64 строки
2.4 KiB
Python
64 строки
2.4 KiB
Python
import math
|
|
import random
|
|
import pickle
|
|
print("\n1. Ввод имени функции")
|
|
func_name = input("Введите имя функции из библиотеки math: ")
|
|
func = eval(f"math.{func_name}")
|
|
|
|
print("\n2. Создание кортежа случайных чисел")
|
|
temp_list = []
|
|
for i in range(20):
|
|
number = random.randint(11, 40)
|
|
temp_list.append(number)
|
|
|
|
numbers_tuple = tuple(temp_list)
|
|
print("Сгенерированный кортеж:")
|
|
print(numbers_tuple)
|
|
|
|
print("\n3. Применение функции к элементам кортежа")
|
|
result_list = []
|
|
for value in numbers_tuple:
|
|
result = func(value)
|
|
result_list.append(result)
|
|
|
|
print("\n4. Запись в бинарный файл")
|
|
filename = "M2_11.bin"
|
|
print(f"Имя файла: {filename}")
|
|
|
|
file = open(filename, 'wb')
|
|
pickle.dump(numbers_tuple, file)
|
|
pickle.dump(result_list, file)
|
|
file.close()
|
|
print("Данные успешно записаны в файл")
|
|
print("\nПроверка записи (чтение из файла):")
|
|
file = open(filename, 'rb')
|
|
read_tuple = pickle.load(file)
|
|
read_list = pickle.load(file)
|
|
file.close()
|
|
|
|
print(f"Прочитанный кортеж (первые 5 элементов): {read_tuple[:5]}")
|
|
print(f"Прочитанный список (первые 5 элементов): {[round(x, 3) for x in read_list[:5]]}")
|
|
# 5. Расчет среднего значения разностей элементов на соседних четных и нечетных позициях
|
|
print("\n5. Расчет среднего значения разностей")
|
|
|
|
differences = []
|
|
i = 0
|
|
while i < len(result_list) - 1:
|
|
diff = result_list[i] - result_list[i+1]
|
|
differences.append(diff)
|
|
i = i + 2
|
|
print(f"Найдено {len(differences)} разностей")
|
|
if len(differences) > 0:
|
|
sum_diff = 0
|
|
for d in differences:
|
|
sum_diff = sum_diff + d
|
|
average_diff = sum_diff / len(differences)
|
|
print("\nРазности между соседними четными и нечетными позициями:")
|
|
for j in range(len(differences)):
|
|
d_1 = j * 2
|
|
print(f" {result_list[d_1]:.3f} - {result_list[d_1+1]:.3f} = {differences[j]:.3f}")
|
|
|
|
print(f"\nСреднее значение разностей: {average_diff:.6f}")
|
|
else:
|
|
print("Недостаточно элементов для вычисления разностей")
|