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


# -*- coding: utf-8 -*-
# ВСЕ ЗАДАНИЯ (20–30, 1–19) В ОДНОМ ФАЙЛЕ
# Для выбора задания раскомментируйте нужный блок

print("ЗАДАНИЕ 20")
# 20. Премия сотруднику
name = input("Введите имя сотрудника: ")
surname = input("Введите фамилию сотрудника: ")
position = input("Введите должность: ")
projects = int(input("Количество выполненных проектов за месяц: "))

if projects > 10:
    print(f"Премия 10000 рублей полагается {name} {surname} ({position})")
else:
    print(f"Премия не полагается {name} {surname} ({position})")

print("\nЗАДАНИЕ 21")
# 21. Индекс массы тела (ИМТ)
name = input("Имя пациента: ")
surname = input("Фамилия пациента: ")
height = float(input("Рост (в метрах): "))
weight = float(input("Вес (в кг): "))

bmi = weight / (height ** 2)
bmi = round(bmi, 2)

if bmi < 18.5:
    status = "недобор"
elif bmi < 25:
    status = "норма"
elif bmi < 30:
    status = "избыток"
else:
    status = "ожирение"

print(f"\nПациент: {name} {surname}")
print(f"ИМТ: {bmi}")
print(f"Заключение: {status}")

print("\nЗАДАНИЕ 22")
# 22. Замена О → А в первом слове
text = input("Введите строку: ")
words = text.split()
if words:
    words[0] = words[0].replace('О', 'А').replace('о', 'а')
print(' '.join(words))

print("\nЗАДАНИЕ 23")
# 23. Замена Е → И в первом слове
text = input("Введите строку: ")
words = text.split()
if words:
    words[0] = words[0].replace('Е', 'И').replace('е', 'и')
print(' '.join(words))

print("\nЗАДАНИЕ 24")
# 24. Замена У → Ю в первом слове
text = input("Введите строку: ")
words = text.split()
if words:
    words[0] = words[0].replace('У', 'Ю').replace('у', 'ю')
print(' '.join(words))

print("\nЗАДАНИЕ 25")
# 25. Фильтр цифр из строки
text = input("Введите строку: ")

digits_sum = sum(int(ch) for ch in text if ch.isdigit())
text_without_digits = ''.join(ch for ch in text if not ch.isdigit())

print("Сумма цифр:", digits_sum)
print("Строка без цифр:", text_without_digits)

print("\nЗАДАНИЕ 26")
# 26. Можно ли получить посылку
hour = int(input("Введите час (0–23): "))

if 8 <= hour < 14 or 15 <= hour < 22:
    if (10 <= hour < 12) or (18 <= hour < 20):
        print("Нельзя: разгрузка машин")
    else:
        print("Можно получить посылку")
else:
    print("Нельзя: отделение закрыто или обед")

print("\nЗАДАНИЕ 27")
# 27. Дешифратор (нечет/чет)
cipher = input("Зашифрованное сообщение: ")
n = len(cipher)
half = n // 2

first = cipher[:half]
second = cipher[half:]

result = []
for i in range(half):
    result.append(first[i])
    result.append(second[half - 1 - i])

print("Расшифровано:", ''.join(result))

print("\nЗАДАНИЕ 28")
# 28. Дешифратор (чет/нечет)
cipher = input("Зашифрованное сообщение: ")
n = len(cipher)
half = n // 2

first = cipher[:half]
second = cipher[half:]

result = []
for i in range(half):
    result.append(first[half - 1 - i])
    result.append(second[i])

print("Расшифровано:", ''.join(result))

print("\nЗАДАНИЕ 29")
# 29. Таблица умножения 1×1 … 9×9
print("   |", end="")
for j in range(1, 10):
    print(f"{j:3}", end="")
print("\n" + "-" * 31)

for i in range(1, 10):
    print(f"{i:2} |", end="")
    for j in range(1, 10):
        print(f"{i * j:3}", end="")
    print()

print("\nЗАДАНИЕ 30")
# 30. Схема театра
rows = int(input("Введите кол-во рядов: "))
seats = int(input("Введите кол-во сидений в ряде: "))
distance = int(input("Введите кол-во метров между рядами: "))

print("\nСцена")
for i in range(rows, 0, -1):
    print(f"Ряд {i} " + "=" * seats + "  " * distance)

print("\nЗАДАНИЕ 1")
# 1. Срок службы SSD
cycles = int(input("Циклов перезаписи (1000/3000/5000): "))
capacity_gb = int(input("Объём SSD (ГБ): "))
daily_gb = float(input("Средний объём перезаписи в сутки (ГБ): "))

total_gb = cycles * capacity_gb
years = total_gb / (daily_gb * 365)

print(f"Срок службы: {years:.1f} лет")

print("\nЗАДАНИЕ 2")
# 2. Таблица умножения для числа (0–10)
n = int(input("Число (0–10): "))
if 0 <= n <= 10:
    for i in range(1, 11):
        print(f"{n} × {i} = {n * i}")
else:
    print("Ошибка: число вне диапазона")

print("\nЗАДАНИЕ 3 (графика — светофор)")
# 3. Светофор (tkinter)
import tkinter as tk

def color(circle, col):
    canvas.itemconfig(circle, fill=col)

def clear(circle):
    canvas.itemconfig(circle, fill="white")

root = tk.Tk()
root.title("Светофор")
canvas = tk.Canvas(root, width=150, height=300)
canvas.pack()

red = canvas.create_oval(25, 20, 125, 120, fill="white")
yellow = canvas.create_oval(25, 120, 125, 220, fill="white")
green = canvas.create_oval(25, 220, 125, 320, fill="white")

canvas.tag_bind(red, "<Enter>", lambda e: color(red, "red"))
canvas.tag_bind(red, "<Leave>", lambda e: clear(red))
canvas.tag_bind(yellow, "<Enter>", lambda e: color(yellow, "yellow"))
canvas.tag_bind(yellow, "<Leave>", lambda e: clear(yellow))
canvas.tag_bind(green, "<Enter>", lambda e: color(green, "green"))
canvas.tag_bind(green, "<Leave>", lambda e: clear(green))

root.mainloop()

print("\nЗАДАНИЕ 4")
# 4. Калькулятор
a = float(input("Первое число: "))
b = float(input("Второе число: "))
op = input("Операция (+, -, *, /, **): ")

if op == "+":
    print(a + b)
elif op == "-":
    print(a - b)
elif op == "*":
    print(a * b)
elif op == "/":
    print(a / b if b != 0 else "Деление на 0")
elif op == "**":
    print(a ** b)
else:
    print("Неверная операция")

print("\nЗАДАНИЕ 5")
# 5. Конвертор частот
val = float(input("Значение: "))
unit = input("Исходная единица (Гц, кГц, МГц): ").lower()

if unit == "гц":
    print(f"{val} Гц = {val/1000:.3f} кГц = {val/1e6:.6f} МГц")
elif unit == "кгц":
    print(f"{val} кГц = {val*1000} Гц = {val/1000:.3f} МГц")
elif unit == "мгц":
    print(f"{val} МГц = {val*1e6} Гц = {val*1000} кГц")

print("\nЗАДАНИЕ 6")
# 6. Конвертор байт, Кбайт, Мбайт
val = float(input("Значение: "))
unit = input("Байт / Кбайт / Мбайт: ").lower()

if unit == "байт":
    print(f"{val} Б = {val/1024:.2f} КБ = {val/1048576:.4f} МБ")
elif unit == "кбайт":
    print(f"{val} КБ = {val*1024} Б = {val/1024:.2f} МБ")
elif unit == "мбайт":
    print(f"{val} МБ = {val*1048576} Б = {val*1024} КБ")

print("\nЗАДАНИЕ 7")
# 7. Конвертор температуры
val = float(input("Значение: "))
unit = input("C, F, K: ").upper()

if unit == "C":
    print(f"{val}°C = {val*9/5+32:.1f}°F = {val+273.15:.1f}K")
elif unit == "F":
    c = (val - 32) * 5 / 9
    print(f"{val}°F = {c:.1f}°C = {c+273.15:.1f}K")
elif unit == "K":
    c = val - 273.15
    print(f"{val}K = {c:.1f}°C = {c*9/5+32:.1f}°F")

print("\nЗАДАНИЕ 8")
# 8. Конвертор времени
val = float(input("Значение: "))
unit = input("сек / мин / час: ").lower()

if unit == "сек":
    print(f"{val} сек = {val/60:.2f} мин = {val/3600:.3f} ч")
elif unit == "мин":
    print(f"{val} мин = {val*60} сек = {val/60:.2f} ч")
elif unit == "час":
    print(f"{val} ч = {val*3600} сек = {val*60} мин")

print("\nЗАДАНИЕ 9")
# 9. Дюймы ↔ сантиметры
choice = input("1: дюймы → см, 2: см → дюймы: ")
val = float(input("Значение: "))

if choice == "1":
    print(f"{val} дюймов = {val * 2.54:.2f} см")
else:
    print(f"{val} см = {val / 2.54:.2f} дюймов")

print("\nЗАДАНИЕ 10")
# 10. Десятичная → шестнадцатеричная
num = int(input("Число в десятичной: "))
print(f"Шестнадцатеричное: {hex(num)[2:].upper()}")

print("\nЗАДАНИЕ 11")
# 11. Процент от числа
percent = float(input("Процент: "))
number = float(input("Число: "))
print(f"{percent}% от {number} = {percent / 100 * number}")

print("\nЗАДАНИЕ 12")
# 12. Сколько процентов одно число от другого
part = float(input("Часть: "))
whole = float(input("Целое: "))
print(f"{part} составляет {part / whole * 100:.2f}% от {whole}")

print("\nЗАДАНИЕ 13")
# 13. Генератор случайных чисел
import random

a = int(input("Нижняя граница: "))
b = int(input("Верхняя граница: "))
count = int(input("Количество чисел: "))

for _ in range(count):
    print(random.randint(a, b))

print("\nЗАДАНИЕ 14 (графика — часы)")
# 14. Электронные часы (tkinter)
import tkinter as tk
import time

root2 = tk.Tk()
root2.title("Электронные часы")
label = tk.Label(root2, font=("Arial", 48))
label.pack()

def update():
    label.config(text=time.strftime("%H:%M:%S"))
    root2.after(1000, update)

update()
root2.mainloop()

print("\nЗАДАНИЕ 15")
# 15. Таймер с обратным отсчётом
import time

seconds = int(input("Секунд: "))
for remaining in range(seconds, 0, -1):
    print(f"Осталось {remaining} сек", end="\r")
    time.sleep(1)
print("\nОтчет завершен")

print("\nЗАДАНИЕ 16")
# 16. Одна формула на выбор, диапазон 0..N
n = int(input("Введите N: "))
choice16 = input("Формула 1 или 2: ")

for a in range(n + 1):
    for b in range(n + 1):
        if choice16 == "1":
            res = (5*a**2 - 20*a**2) - (4*b**3 - 18*b**2)
        else:
            res = (2*a**2 + 3) - (1 + 4*b**3)
        print(f"a={a} b={b} → {res}")

print("\nЗАДАНИЕ 17")
# 17. Две переменные, два диапазона
max_a = int(input("Максимум для a: "))
max_b = int(input("Максимум для b: "))
choice17 = input("Формула 1 или 2: ")

for a in range(max_a + 1):
    for b in range(max_b + 1):
        if choice17 == "1":
            res = (17*a**2 - 5*a**4) - (5*b**3 + 10*b**2)
        else:
            res = (13*a**2 + 95) - (140 + 2*b**3)
        print(f"a={a} b={b} → {res}")

print("\nЗАДАНИЕ 18")
# 18. Факториал от 0 до N
n = int(input("Число: "))
fact = 1
for i in range(n + 1):
    if i > 0:
        fact *= i
    print(f"{i}! = {fact}")

print("\nЗАДАНИЕ 19")
# 19. Эмуляция авторизации
correct_login = "admin"
correct_pass = "123"

while True:
    login = input("Логин: ")
    password = input("Пароль: ")

    if login == correct_login and password == correct_pass:
        print("Успешная авторизация")
        break
    elif login != correct_login and password != correct_pass:
        print("Ошибка при вводе логина и пароля")
    else:
        print("Ошибка при вводе пароля")