Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

148 строки
8.6 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Общее контрольное задание.
* Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
* Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
* Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
* Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
* Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
* Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение:
```python
import math
import time
import random
import cmath
print("=== ВЫПОЛНЕНИЕ КОНТРОЛЬНОГО ЗАДАНИЯ ===\n")
print("1. Вычисление фазы комплексного числа и последующие операции:")
result = math.floor((round(cmath.phase(0.2+0.8j), 2) * 20) / 3), (round(cmath.phase(0.2+0.8j), 2) * 20) % 3
print(f"Результат: {result}")
print()
print("2. Создание объекта struct_time для московского времени:")
moscow_time = time.localtime()
print(f"Московское время: {moscow_time}")
time_str = time.asctime(moscow_time)
print(f"Строка с часом и минутами: '{time_str}'")
print()
print("3. Случайная выборка дней недели:")
week_days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
random_days = random.sample(week_days, 3)
print(f"Дни недели: {week_days}")
print(f"Случайная выборка: {random_days}")
print()
print("4. Случайный выбор числа из последовательности:")
sequence = list(range(14, 33, 3))
random_number = random.choice(sequence)
print(f"Последовательность: {sequence}")
print(f"Случайно выбранное число: {random_number}")
print()
print("5. Генерация нормально распределенного числа и создание списка букв:")
N = round(random.gauss(15, 4))
# Создаем список букв латинского алфавита
alphabet = [chr(i) for i in range(65, 91)] # A-Z
random_letters = random.choices(alphabet, k=N)
print(f"N = {N}")
print(f"Случайные буквы: {random_letters}")
print()
print("6. Определение временного интервала в минутах:")
time_diff = (time.time() - time.mktime(moscow_time)) / 60
print(f"Прошло минут: {time_diff:.2f}")
with open('TEMA4/results_analysis.txt', 'w', encoding='utf-8') as file:
file.write("АНАЛИЗ РЕЗУЛЬТАТОВ\n")
file.write("=" * 40 + "\n\n")
file.write("1. КОМПЛЕКСНОЕ ЧИСЛО:\n")
file.write(f"Результат: {result}\n")
file.write("Анализ: Вычислена фаза комплексного числа 0.2+0.8j, выполнены\n")
file.write("последовательные операции округления, умножения, деления\n")
file.write("с получением целой части и остатка. Результат - кортеж.\n\n")
file.write("2. ВРЕМЯ:\n")
file.write(f"struct_time: {moscow_time}\n")
file.write(f"Временная строка: {time_str}\n")
file.write("Анализ: Создан объект struct_time с текущим московским временем.\n")
file.write("Преобразован в читаемую строку с помощью asctime().\n\n")
file.write("3. ДНИ НЕДЕЛИ:\n")
file.write(f"Исходный список: {week_days}\n")
file.write(f"Выборка: {random_days}\n")
file.write("Анализ: random.sample() выполнил случайную выборку 3 дней\n")
file.write("без повторений из полного списка дней недели.\n\n")
file.write("4. СЛУЧАЙНОЕ ЧИСЛО:\n")
file.write(f"Последовательность: {sequence}\n")
file.write(f"Выбранное число: {random_number}\n")
file.write("Анализ: random.choice() выбрал случайное число из\n")
file.write("арифметической прогрессии от 14 до 32 с шагом 3.\n\n")
file.write("5. СЛУЧАЙНЫЕ БУКВЫ:\n")
file.write(f"N = {N}\n")
file.write(f"Буквы: {random_letters}\n")
file.write("Анализ: random.gauss() сгенерировал число с нормальным\n")
file.write("распределением (μ=15, σ=4). random.choices() создал список\n")
file.write("из N случайных заглавных латинских букв.\n\n")
file.write("6. ВРЕМЕННОЙ ИНТЕРВАЛ:\n")
file.write(f"Интервал: {time_diff:.2f} минут\n")
file.write("Анализ: Измерено время между созданием struct_time и\n")
file.write("моментом вычисления. time.mktime() преобразует struct_time\n")
file.write("в секунды с эпохи для вычисления разницы.\n\n")
file.write("ОБЩИЙ ВЫВОД:\n")
file.write("Все операции выполнены успешно. Продемонстрирована работа\n")
file.write("с математическими функциями, временем, случайными числами\n")
file.write("и различными структурами данных Python.\n")
print("\nРезультаты записаны в файл 'results_analysis.txt'")
```
Ответ программы:
```shell
=== ВЫПОЛНЕНИЕ КОНТРОЛЬНОГО ЗАДАНИЯ ===
1. Вычисление фазы комплексного числа и последующие операции:
Результат: (8, 2.6000000000000014)
2. Создание объекта struct_time для московского времени:
Московское время: time.struct_time(tm_year=2025, tm_mon=10, tm_mday=24, tm_hour=12, tm_min=8, tm_sec=35, tm_wday=4, tm_yday=297, tm_isdst=0)
Строка с часом и минутами: 'Fri Oct 24 12:08:35 2025'
3. Случайная выборка дней недели:
Дни недели: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
Случайная выборка: ['Суббота', 'Среда', 'Четверг']
4. Случайный выбор числа из последовательности:
Последовательность: [14, 17, 20, 23, 26, 29, 32]
Случайно выбранное число: 26
5. Генерация нормально распределенного числа и создание списка букв:
N = 13
Случайные буквы: ['X', 'J', 'L', 'J', 'S', 'L', 'M', 'G', 'N', 'P', 'Y', 'S', 'W']
6. Определение временного интервала в минутах:
Прошло минут: 0.01
Результаты записаны в файл 'results_analysis.txt'
```