diff --git a/TEMA6/binary.bin b/TEMA6/binary.bin new file mode 100644 index 0000000..2b4d325 Binary files /dev/null and b/TEMA6/binary.bin differ diff --git a/TEMA6/test.md b/TEMA6/test.md new file mode 100644 index 0000000..82720fa --- /dev/null +++ b/TEMA6/test.md @@ -0,0 +1,90 @@ +# Тест по модулю 2. Вариант 11 + +Степанов Артём, А-02-23 + +## Задание 1 + +Запросите у пользователя и введите имя функции из библиотеки math для обработки данных. + +## Решение + +```py +>>> import math +>>> print(dir(math)) + ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp'] +>>> func = input("Введите функцию из модуля math: ") + Введите функцию из модуля math: sqrt +``` + +## Задание 2 + +Создайте кортеж с 20 случайными равномерно распределенными числами из диапазона значений от 11 до 40. + +## Решение + +```py +>>> import random +>>> kort = tuple([random.uniform(11, 40) for x in range(20)]) +>>> kort + (13.660375880487978, 29.453518221390016, 24.21546392982809, 32.433379995697656, 21.24020821353613, 34.55631343191126, 20.992169057649782, 15.230930622059098, 30.89172248312571, 14.615811177459697, 26.211389931676, 23.703136667771552, 28.591909389652102, 24.289697762108663, 16.39261625404772, 12.65385640234007, 35.225116803637945, 39.90736378649565, 38.30743305242752, 34.56895014626229) +>>> len(kort) + 20 +``` + +## Задание 3 + +Напишите инструкцию создания списка, содержащего значения, равные результату вычисления заданной пользователем функции от соответствующих элементов кортежа. + +## Решение + +```py +>>> sps = [] +>>> for i in range(len(kort)): +... sps = sps + [eval("math.{f}({num})".format(f = func, num = kort[i]))] +... +>>> sps + [3.695994572572852, 5.427109564159362, 4.920921044868337, 5.695031167227942, 4.608710037910405, 5.87846182533418, 4.581721189427592, 3.9026824905517357, 5.558032249198066, 3.823063062187138, 5.119706039576491, 4.868586721808656, 5.347140300165323, 4.928457949714968, 4.04877960057691, 3.557225941986265, 5.935075130412247, 6.317227539553697, 6.18929988386631, 5.879536558799706] +``` + +## Задание 4 + +Выведите кортеж и результирующий список в бинарный файл с любым именем. + +## Решение + +```py +>>> import os, pickle +>>> os.chdir(input("Введите полный путь к текущему рабочему каталогу: ")) + Введите полный путь к текущему рабочему каталогу: C:\\Users\\u206-02\\Desktop\\StepanovAV\\python-labs\\TEMA6 +>>> os.getcwd() + 'C:\\Users\\u206-02\\Desktop\\StepanovAV\\python-labs\\TEMA6' +>>> filename = "binary.bin" +>>> fp = open(filename, "wb") +>>> pickle.dump(kort, fp) +>>> pickle.dump(sps, fp) +>>> fp.close() +>>> print("Данные сохранены в файл с именем:", filename) + Данные сохранены в файл с именем: binary.bin +``` + +## Задание 5 + +Рассчитайте среднее значение разностей элементов списка, находящихся на соседних четных и нечетных позициях. Отобразите результат на экране. + +## Решение + +```py +>>> sumCht = 0; sumNecht = 0 +>>> for i in range(len(sps) - 2): +... if i % 2 == 0: +... sumCht = sumCht + (sps[i] - sps[i + 2]) +... else: +... sumNecht = sumNecht + (sps[i] - sps[i + 2]) +... +>>> sredCht = sumCht / (len(sps) // 2) +>>> sredNecht = sumNecht / (len(sps) // 2 - 1) +>>> print("Среднее значение разностей четных элементов списка:", sredCht) + Среднее значение разностей четных элементов списка: -0.2493305311293458 +>>> print("Среднее значение разностей нечетных элементов списка:", sredNecht) + Среднее значение разностей нечетных элементов списка: -0.05026966607114937 +``` \ No newline at end of file diff --git a/TEMA6/test.py b/TEMA6/test.py new file mode 100644 index 0000000..fbc3142 --- /dev/null +++ b/TEMA6/test.py @@ -0,0 +1,25 @@ +import os, math, pickle, random +print(dir(math)) +func = input("Введите функцию из модуля math: ") +kort = tuple([random.uniform(11, 40) for x in range(20)]) +sps = [] +for i in range(len(kort)): + sps = sps + [eval("math.{f}({num})".format(f = func, num = kort[i]))] +os.chdir(input("Введите полный путь к текущему рабочему каталогу: ")) +print("Текущий рабочий каталог: ", os.getcwd()) +filename = "binary.bin" +fp = open(filename, "wb") +pickle.dump(kort, fp) +pickle.dump(sps, fp) +fp.close() +print("Данные сохранены в файл с именем:", filename) +sumCht = 0; sumNecht = 0 +for i in range(len(sps) - 2): + if i % 2 == 0: + sumCht = sumCht + (sps[i] - sps[i + 2]) + else: + sumNecht = sumNecht + (sps[i] - sps[i + 2]) +sredCht = sumCht / (len(sps) // 2) +sredNecht = sumNecht / (len(sps) // 2 - 1) +print("Среднее значение разностей четных элементов списка:", sredCht) +print("Среднее значение разностей нечетных элементов списка:", sredNecht)