Загрузка данных


Задание 1. Разработать программу для решения систем линейных алгебраических уравнений методом Крамера.

Порядок отладки:
Запустить программу и ввести систему с известным ответом, например 3x+2y=12, x+4y=10 (ответ x=2.909, y=1.772). Сверить результат с ручным подсчётом. Проверить случай когда определитель равен нулю — программа должна сообщить что решения нет.

Фрагменты кода:
def determinant(m):
    return m[0][0]*m[1][1] - m[0][1]*m[1][0]

def cramer(a, b):
    d = determinant(a)
    if d == 0:
        return None
    d1 = determinant([[b[0], a[0][1]], [b[1], a[1][1]]])
    d2 = determinant([[a[0][0], b[0]], [a[1][0], b[1]]])
    return d1/d, d2/d

a = [[float(x) for x in input(f"Строка {i+1} (2 коэф): ").split()] for i in range(2)]
b = [float(x) for x in input("Свободные члены: ").split()]

result = cramer(a, b)
if result is None:
    print("Определитель равен нулю, решений нет")
else:
    print(f"x1 = {round(result[0], 4)}")
    print(f"x2 = {round(result[1], 4)}")
Полный код:
def determinant(m):
    return m[0][0]*m[1][1] - m[0][1]*m[1][0]

def cramer(a, b):
    d = determinant(a)
    if d == 0:
        return None
    d1 = determinant([[b[0], a[0][1]], [b[1], a[1][1]]])
    d2 = determinant([[a[0][0], b[0]], [a[1][0], b[1]]])
    return d1/d, d2/d

print("=== Метод Крамера (система 2x2) ===")
a = [[float(x) for x in input(f"Строка {i+1} (2 коэффициента): ").split()] for i in range(2)]
b = [float(x) for x in input("Свободные члены: ").split()]

result = cramer(a, b)
if result is None:
    print("Определитель равен нулю, решений нет")
else:
    print(f"x1 = {round(result[0], 4)}")
    print(f"x2 = {round(result[1], 4)}")
Скриншоты: *(вставить самостоятельно)*

---

Задание 2. Разработать программу для расчёта предварительной сметной стоимости создания беспроводной локальной сети предприятия.

Порядок отладки:
Запустить и ввести 5 точек доступа, 20 устройств, площадь 500 кв.м. Вручную проверить сумму по каждой статье расходов. Убедиться что при большой площади программа добавляет дополнительные точки доступа автоматически.

Фрагменты кода:
access_points = max(access_points, area // 150)
cost = 0
cost += access_points * 12000
cost += devices * 1500
cost += 25000
total = cost * 1.15
print(f"ИТОГО: {total:.0f} руб.")
Полный код:
print("=== Расчёт стоимости беспроводной сети ===")
access_points = int(input("Количество точек доступа: "))
devices = int(input("Количество устройств: "))
area = float(input("Площадь помещения (кв.м): "))
has_controller = input("Нужен контроллер? (да/нет): ").strip().lower() == "да"

access_points = max(access_points, int(area // 150))

cost = 0
cost += access_points * 12000
cost += devices * 1500
cost += 25000
if has_controller:
    cost += 35000

total = cost * 1.15

print(f"\nТочек доступа (с учётом площади): {access_points}")
print(f"Стоимость без накладных: {cost:.0f} руб.")
print(f"Накладные расходы (15%): {cost * 0.15:.0f} руб.")
print(f"ИТОГО: {total:.0f} руб.")
Скриншоты: *(вставить самостоятельно)*

---

Задание 3. Разработать программу для проведения тестирования успеваемости студентов по теме «Компьютерные сети».

Порядок отладки:
Запустить и ответить на все вопросы правильно — должна выйти оценка 5. Потом ввести все неправильные ответы и проверить оценку 2. Проверить что при вводе некорректного номера программа не падает с ошибкой.

Фрагменты кода:
for i, (question, options, correct) in enumerate(questions):
    print(f"\nВопрос {i+1}: {question}")
    for j, opt in enumerate(options):
        print(f"  {j+1}. {opt}")
    try:
        answer = int(input("Ответ: ")) - 1
    except ValueError:
        answer = -1
    if answer == correct:
        print("Верно!")
        score += 1
    else:
        print(f"Неверно. Правильно: {options[correct]}")