diff --git a/TEMA6/test.md b/TEMA6/test.md index e69de29..ce00a8a 100644 --- a/TEMA6/test.md +++ b/TEMA6/test.md @@ -0,0 +1,61 @@ +# Тест по модулю 2. +***Вариант 8*** + +M2_8 +1) Создайте множество с 40 элементами - случайными числами, равномерно распределенными на интервале от -20 до +10. Числа должны быть округлены до двух знаков после точки. + +2) Запросите у пользователя и введите имя бинарного файла для сохранения множества. Если во введенном имени есть пробелы, замените их на пустые строки. + +3) Запишите множество в бинарный файл с указанным именем. + +4) Удалите из памяти созданное множество. + +5) Прочитайте множество из файла и рассчитайте по его элементам среднее значение. Отобразите его на экране по шаблону: " По <число элементов> среднее = <рассчитанное значение>". Выводимое среднее округлить до двух знаков после точки. + + +```python +import random +import pickle +import os + +#Создание случайного множества +random_set = {round(random.uniform(-20, 10), 2) for _ in range(40)} +print("Создано случайное множество:", random_set) + +#Создание бинарного файла +filename = input("Введите имя бинарного файла: ") +filename = filename.replace(" ", "") + +#Запись в файл +fp=open(os.getcwd()+ '/TEMA6/' + filename, 'wb') +pickle.dump(random_set,fp) +fp.close() + +#Удаление множества из памяти +del random_set +print("Множество удалено из памяти:", dir()) + +#Восстановление множества из бинарного файла +fp=open(os.getcwd()+ '/TEMA6/' + filename, 'rb') +random_set = pickle.load(fp) +fp.close() +print("Множество восстановлено из бинарного файла:", random_set) + +#Вычисление среднего и вывод на экран +sred=round(sum(random_set)/len(random_set),2) +print(f'\nПо {len(random_set)} среднее = {sred}') +``` + +Ответ программы: +```shell +Создано случайное множество: {-0.65, -0.91, 2.79, 1.01, 4.36, 5.77, 6.0, 7.94, 7.71, 7.77, 5.92, 2.69, 7.47, 5.29, 0.83, 3.01, -0.48, -6.31, -4.12, 0.88, -3.69, -8.01, -7.68, -6.59, -19.43, -19.78, -17.23, -16.84, -15.69, -15.05, -18.98, -12.96, -19.37, -11.0, -8.89, -7.07, -6.5, -4.4, -3.56, -1.43} + +Введите имя бинарного файла: binary + +Множество удалено из памяти: ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'filename', 'fp', 'os', 'pickle', 'random'] + +Множество восстановлено из бинарного файла: {-0.65, -0.91, 2.79, 1.01, 4.36, 5.77, 6.0, 7.94, 7.71, 7.77, 5.92, 2.69, 7.47, 5.29, 3.01, -3.56, -0.48, 0.88, -8.89, -7.68, -7.07, -6.59, -6.5, -4.4, -19.43, -19.78, -17.23, -16.84, -15.69, -15.05, -18.98, -12.96, -19.37, -11.0, -8.01, 0.83, -6.31, -4.12, -3.69, -1.43} + +По 40 среднее = -4.18 +``` + diff --git a/TEMA6/test.py b/TEMA6/test.py index 2960e76..2bcea57 100644 --- a/TEMA6/test.py +++ b/TEMA6/test.py @@ -1,9 +1,30 @@ import random +import pickle +import os -# Создаем список с 50 целыми числами от 12 с шагом 4 -numbers_list = [12 + i * 4 for i in range(50)] -print("Список:", numbers_list) +#Создание случайного множества +random_set = {round(random.uniform(-20, 10), 2) for _ in range(40)} +print("\nСоздано случайное множество:", random_set) +#Создание бинарного файла +filename = input("\nВведите имя бинарного файла: ") +filename = filename.replace(" ", "") -numbers_tuple = tuple(random.sample(numbers_list, 25)) -print("Кортеж:", numbers_tuple) \ No newline at end of file +#Запись в файл +fp=open(os.getcwd()+ '/TEMA6/' + filename, 'wb') +pickle.dump(random_set,fp) +fp.close() + +#Удаление множества из памяти +del random_set +print("\nМножество удалено из памяти:", dir()) + +#Восстановление множества из бинарного файла +fp=open(os.getcwd()+ '/TEMA6/' + filename, 'rb') +random_set = pickle.load(fp) +fp.close() +print("\nМножество восстановлено из бинарного файла:", random_set) + +#Вычисление среднего и вывод на экран +sred=round(sum(random_set)/len(random_set),2) +print(f'\nПо {len(random_set)} среднее = {sred}') \ No newline at end of file