diff --git a/lesson_2.2.py b/lesson_2.2.py index e69de29..b2622fe 100644 --- a/lesson_2.2.py +++ b/lesson_2.2.py @@ -0,0 +1,412 @@ +''' ****** Задание 1 ******** + *** Спрашивает имя и как дела *** +''' +# # Ask for the user's name +# print("Как Вас зовут?") +# username = input() +# +# # Greet the user +# print(f"Здравствуйте, {username}!") +# +# # Ask about the user's mood +# print("Как дела?") +# mood = input() +# +# # Respond based on the user's mood +# if mood == "хорошо": +# print("Я за Вас рада!") +# elif mood == "плохо": +# print("Всё наладится!") + +''' ****** Задание 2 ******** + *** Определить победителя *** +''' +# p_speed = float(input()) +# v_speed = float(input()) +# if p_speed > v_speed: +# print('Петя') +# else: +# print('Вася') + +''' ****** Задание 3 ******** + *** Кто первый финишировал *** +''' +# p_speed = float(input()) +# v_speed = float(input()) +# t_speed = float(input()) +# if p_speed > v_speed and p_speed > t_speed: +# print("Петя") +# elif v_speed > p_speed and v_speed > t_speed: +# print("Вася") +# else: +# print("Толя") + +''' ****** Задание 4 ******** + *** Кто первый финишировал *** +''' +# # Читаем скорости гонщиков +# petya_speed = int(input()) +# vasya_speed = int(input()) +# tolya_speed = int(input()) +# +# # Создаем список кортежей (скорость, имя) +# racers = [ +# (petya_speed, "Петя"), +# (vasya_speed, "Вася"), +# (tolya_speed, "Толя") +# ] +# +# # Наивная сортировка пузырьком по убыванию скорости +# n = len(racers) +# for i in range(n - 1): +# for j in range(n - 1 - i): +# if racers[j][0] < racers[j + 1][0]: +# # Меняем местами +# racers[j], racers[j + 1] = racers[j + 1], racers[j] +# +# # Выводим результаты +# for i in range(3): +# print(f"{i + 1}. {racers[i][1]}") + +''' ****** Задание 5 ******** + *** У кого яблок больше *** +''' +# # Читаем N и M +# N = int(input()) +# M = int(input()) +# +# # Вычисляем итоговое количество яблок +# petya_apples = 6 + N +# vasya_apples = 12 + M +# +# # Сравниваем и выводим результат +# if petya_apples > vasya_apples: +# print("Петя") +# else: +# print("Вася") + +''' ****** Задание 6 ******** + *** Программа, которая поможет Васе определить, удастся ли побездельничать в определённом году или нет. + + *** +''' +# # Читаем год +# year = int(input()) +# +# # Проверяем условия високосного года +# if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): +# print("YES") +# else: +# print("NO") + +''' ****** Задание 7 ******** + *** Является ли слово палидромом *** +''' +# # Считываем число +# number = input() +# +# # Проверяем, является ли число палиндромом +# if number[0] == number[3] and number[1] == number[2]: +# print("YES") +# else: +# print("NO") + +''' ****** Задание 8 ******** + *** Наход слова *** +''' +# # Считываем строку +# text = input() +# +# # Проверяем, есть ли в строке слово "зайка" +# if "зайка" in text: +# print("YES") +# else: +# print("NO") + +''' ****** Задание 9 ******** + *** Сравнение имён *** +''' +# # Считываем три имени +# name1 = input() +# name2 = input() +# name3 = input() +# +# # Сравниваем имена лексикографически +# if name1 <= name2 and name1 <= name3: +# print(name1) +# elif name2 <= name1 and name2 <= name3: +# print(name2) +# else: +# print(name3) + +''' ****** Задание 10 ******** + *** Зашифровка паролей *** +''' +# # Считываем трехзначное число +# number = int(input()) +# +# # Разделяем число на цифры +# hundreds = number // 100 +# tens = (number // 10) % 10 +# units = number % 10 +# +# # Находим суммы +# sum_low = tens + units # сумма младших цифр (десятков и единиц) +# sum_high = hundreds + tens # сумма старших цифр (сотен и десятков) +# +# # Записываем суммы в порядке не возрастания +# if sum_high >= sum_low: +# print(f"{sum_high}{sum_low}") +# else: +# print(f"{sum_low}{sum_high}") + +''' ****** Задание 11 ******** + *** Проверяет является ли число красивым *** +''' +# # Считываем трехзначное число +# number = int(input()) +# +# # Разделяем число на цифры +# hundreds = number // 100 +# tens = (number // 10) % 10 +# units = number % 10 +# +# # Находим минимальную и максимальную цифры +# min_digit = min(hundreds, tens, units) +# max_digit = max(hundreds, tens, units) +# +# # Находим среднюю цифру (не минимальная и не максимальная) +# middle_digit = hundreds + tens + units - min_digit - max_digit +# +# # Проверяем условие красоты: min + max == middle * 2 +# if min_digit + max_digit == middle_digit * 2: +# print("YES") +# else: +# print("NO") + +''' ****** Задание 12 ******** + *** Создать треугольник *** +''' +# # Считываем длины трех отрезков +# a = float(input()) +# b = float(input()) +# c = float(input()) +# +# # Проверяем неравенство треугольника для всех сторон +# if a + b > c and a + c > b and b + c > a: +# print("YES") +# else: +# print("NO") + +''' ****** Задание 13 ******** + *** Выяснение цифры *** +''' +# # Считываем три двузначных числа +# elf = input() +# dwarf = input() +# human = input() +# +# # Проверяем первую цифру (десятки) +# if elf[0] == dwarf[0] == human[0]: +# print(elf[0]) +# # Проверяем вторую цифру (единицы) +# elif elf[1] == dwarf[1] == human[1]: +# print(elf[1]) + +''' ****** Задание 14 ******** + *** Разделить число *** +''' +# number = input() +# +# # Получаем цифры и сортируем их +# digits = sorted(number) +# +# # Минимальное число - две наименьшие цифры (но первая не может быть 0) +# if digits[0] == '0': +# min_num = int(digits[1] + digits[0]) # если есть 0, то минимальное будет типа 10, 20 и т.д. +# else: +# min_num = int(digits[0] + digits[1]) +# +# # Максимальное число - две наибольшие цифры в обратном порядке +# max_num = int(digits[2] + digits[1]) +# +# print(min_num, max_num) + +''' ****** Задание 15 ******** + *** Собрать число *** +''' +# num1 = input() +# num2 = input() +# +# # Объединяем все цифры +# all_digits = num1 + num2 +# +# # Находим максимальную и минимальную цифры +# max_d = max(all_digits) +# min_d = min(all_digits) +# +# # Удаляем по одному вхождению максимальной и минимальной цифры +# remaining = all_digits.replace(max_d, '', 1).replace(min_d, '', 1) +# +# # Суммируем оставшиеся цифры и берем последнюю цифру суммы +# middle = sum(int(d) for d in remaining) % 10 +# +# # Собираем магическое число +# print(max_d + str(middle) + min_d) + +''' ****** Задание 16 ******** + *** Красивый вывод победителей *** +''' +# # Считываем скорости трех участников +# petya = int(input()) +# vasya = int(input()) +# tolya = int(input()) +# +# # Определяем места участников +# if petya > vasya and petya > tolya: +# first = "Петя" +# if vasya > tolya: +# second = "Вася" +# third = "Толя" +# else: +# second = "Толя" +# third = "Вася" +# elif vasya > petya and vasya > tolya: +# first = "Вася" +# if petya > tolya: +# second = "Петя" +# third = "Толя" +# else: +# second = "Толя" +# third = "Петя" +# else: +# first = "Толя" +# if petya > vasya: +# second = "Петя" +# third = "Вася" +# else: +# second = "Вася" +# third = "Петя" +# +# # Выводим красивый пьедестал +# print(f"{'':<8}{first:^8}{'':>8}") +# print(f"{second:^8}{'':<8}{'':>8}") +# print(f"{'':<8}{'':<8}{third:>8}") +# print(f"{'II':^8}{'I':^8}{'III':^8}") + +''' ****** Задание 17 ******** + *** Нахождение корней уровнения, используя условные операторы *** +''' +# # Считываем коэффициенты +# a = float(input()) +# b = float(input()) +# c = float(input()) +# +# # Проверяем особые случаи +# if a == 0: +# if b == 0: +# if c == 0: +# print("Infinite solutions") +# else: +# print("No solution") +# else: +# # Линейное уравнение: bx + c = 0 +# x = -c / b +# print(f"{x:.2f}") +# else: +# # Квадратное уравнение: ax² + bx + c = 0 +# discriminant = b ** 2 - 4 * a * c +# +# if discriminant > 0: +# # Два различных корня +# x1 = (-b - discriminant ** 0.5) / (2 * a) +# x2 = (-b + discriminant ** 0.5) / (2 * a) +# # Сортируем по возрастанию +# if x1 > x2: +# x1, x2 = x2, x1 +# print(f"{x1:.2f} {x2:.2f}") +# elif discriminant == 0: +# # Один корень +# x = -b / (2 * a) +# print(f"{x:.2f}") +# else: +# # Нет действительных корней +# print("No solution") + +''' ****** Задание 18 ******** + *** Программа, которая определяет вероятность встретить зло по длинам сторон треугольника. *** +''' +# # Считываем длины сторон +# a = float(input()) +# b = float(input()) +# c = float(input()) +# +# # Проверяем, существует ли треугольник +# if a + b > c and a + c > b and b + c > a: +# # Находим квадраты сторон для удобства сравнения +# a2 = a * a +# b2 = b * b +# c2 = c * c +# +# # Определяем тип треугольника по углам +# if a2 + b2 == c2 or a2 + c2 == b2 or b2 + c2 == a2: +# print("100%") +# elif a2 + b2 < c2 or a2 + c2 < b2 or b2 + c2 < a2: +# print("велика") +# else: +# print("крайне мала") +# else: +# # Если треугольник не существует +# print("No solution") + +''' ****** Задание 19 ******** + *** Программа, которая по заданным координатам проверит, находится ли исследователь в зоне опасности, учитывая несколько условий одновременно. + *** +''' +# # Считываем координаты +# x = float(input()) +# y = float(input()) +# +# # Проверяем условия опасности +# if (x >= 0 and y >= 0 and y <= -x + 10 and y <= 10 and x <= 10) or \ +# (x <= 0 and y >= 0 and y <= 5 and y <= x + 10 and x >= -10) or \ +# (x <= 0 and y <= 0 and y >= -5 and y >= -x - 10 and x >= -10) or \ +# (x >= 0 and y <= 0 and y >= -5 and y >= x - 10 and x <= 10): +# print("Опасность! Покиньте зону как можно скорее!") +# elif (x >= 0 and y >= 0 and y <= 10 and x <= 10) or \ +# (x <= 0 and y >= 0 and y <= 10 and x >= -10) or \ +# (x <= 0 and y <= 0 and y >= -10 and x >= -10) or \ +# (x >= 0 and y <= 0 and y >= -10 and x <= 10): +# print("Зона безопасна. Продолжайте работу.") +# else: +# print("Вы вышли в море и рискуете быть съеденным акулой!") + +''' ****** Задание 20 ******** + *** Нахождение слова "Зайка" *** +''' +# # Считываем три строки +# s1 = input() +# s2 = input() +# s3 = input() +# +# # Проверяем, в каких строках есть "зайка" +# has_zayka = [] +# if "зайка" in s1: +# has_zayka.append(s1) +# if "зайка" in s2: +# has_zayka.append(s2) +# if "зайка" in s3: +# has_zayka.append(s3) +# +# # Выбираем нужную строку +# if len(has_zayka) == 0: +# # Если "зайки" нет ни в одной строке +# print("") +# elif len(has_zayka) == 1: +# # Если только одна строка с "зайкой" +# result = has_zayka[0] +# print(result, len(result)) +# else: +# # Если несколько строк с "зайкой" - выбираем наименьшую лексикографически +# result = min(has_zayka) +# print(result, len(result)) \ No newline at end of file diff --git a/lesson_2.3.py b/lesson_2.3.py index e69de29..ce9c131 100644 --- a/lesson_2.3.py +++ b/lesson_2.3.py @@ -0,0 +1,304 @@ +''' ****** Задание 1 ******** + *** Программа, которая ждёт правильный крик и только после этого зажигает ёлочку. *** +''' +# cry = input() +# +# while cry != "Три!": +# print("Режим ожидания...") +# cry = input() +# +# print("Ёлочка, гори!") + +''' ****** Задание 2 ******** + *** Цикл while *** +''' +# count = 0 +# text = input() +# +# while text != "Приехали!": +# if "зайка" in text.lower(): +# count += 1 +# text = input() +# +# print(count) + +''' ****** Задание 3 ******** + *** Цикл for *** +''' +# start = int(input()) +# end = int(input()) +# +# for i in range(start, end + 1): +# print(i, end=" ") + +''' ****** Задание 4 ******** + *** Вывести все числа от начала до конца в правильном порядке *** +''' +# start = int(input()) +# end = int(input()) +# +# if start <= end: +# for i in range(start, end + 1): +# print(i, end=" ") +# else: +# for i in range(start, end - 1, -1): +# print(i, end=" ") + +''' ****** Задание 5 ******** + *** Программа для кассового автомата, которая считает итоговую сумму покупки с учётом скидки.*** +''' +# total = 0 +# price = float(input()) +# +# while price != 0: +# if price >= 500: +# total += price * 0.9 # скидка 10% +# else: +# total += price +# price = float(input()) +# +# print(total) + +''' ****** Задание 6 ******** + *** Построение базовых алгоритмов с циклом while. *** +''' +# a = int(input()) +# b = int(input()) +# +# while b != 0: +# a, b = b, a % b +# +# print(a) + +''' ****** Задание 7 ******** + *** Цикл while *** +''' +# a = int(input()) +# b = int(input()) +# +# # Сохраняем оригинальные числа для вычисления НОК +# original_a = a +# original_b = b +# +# # Находим НОД алгоритмом Евклида +# while b != 0: +# a, b = b, a % b +# +# gcd = a # Найденный НОД +# +# # Вычисляем НОК по формуле: НОК(a, b) = (a * b) / НОД(a, b) +# lcm = (original_a * original_b) // gcd +# +# print(lcm) + +''' ****** Задание 8 ******** + *** Вывод строки N раз *** +''' +# info = input() +# n = int(input()) +# +# for i in range(n): +# print(info) + +''' ****** Задание 9 ******** + *** Цикл for *** +''' +# n = int(input()) +# +# factorial = 1 +# +# for i in range(1, n + 1): +# factorial *= i +# +# print(factorial) + +''' ****** Задание 10 ******** + *** Программа, которая по заданному маршруту определит, в какой именно точке мы очутимся, если изначально находимся в точке *** +''' +# x = 0 # координата по оси ВОСТОК-ЗАПАД +# y = 0 # координата по оси СЕВЕР-ЮГ +# +# direction = input() +# +# while direction != "СТОП": +# steps = int(input()) +# +# if direction == "СЕВЕР": +# y += steps +# elif direction == "ЮГ": +# y -= steps +# elif direction == "ВОСТОК": +# x += steps +# elif direction == "ЗАПАД": +# x -= steps +# +# direction = input() +# +# print(y) # сначала север-юг +# print(x) # потом восток-запад + +''' ****** Задание 11 ******** + *** Найти сумму цифр числа *** +''' +# n = int(input()) +# sum_digits = 0 +# +# while n > 0: +# digit = n % 10 # получаем последнюю цифру +# sum_digits += digit +# n = n // 10 # убираем последнюю цифру +# +# print(sum_digits) + +''' ****** Задание 12 ******** + *** Найти максимальную цифру числа.*** +''' +# n = int(input()) +# max_digit = 0 +# +# while n > 0: +# digit = n % 10 # получаем последнюю цифру +# if digit > max_digit: +# max_digit = digit +# n = n // 10 # убираем последнюю цифру +# +# print(max_digit) + +''' ****** Задание 13 ******** + *** Цикл for*** +''' +# n = int(input()) +# +# first_player = input() # считываем первого игрока +# +# for i in range(n - 1): +# name = input() +# if name < first_player: +# first_player = name +# +# print(first_player) + +''' ****** Задание 14 ******** + *** Программа, которая определяет, является ли число простым.*** +''' +# n = int(input()) +# +# if n < 2: +# print("NO") +# else: +# is_prime = True +# for i in range(2, int(n ** 0.5) + 1): +# if n % i == 0: +# is_prime = False +# break +# +# print("YES" if is_prime else "NO") + +''' ****** Задание 15 ******** + *** В скольких строках встречается нужное слово*** +''' +# n = int(input()) +# count = 0 +# +# for i in range(n): +# text = input() +# if "зайка" in text.lower(): +# count += 1 +# +# print(count) + +''' ****** Задание 16 ******** + *** Программу, которая проверяет, является ли заданное число палиндромом *** +''' +# n = int(input()) +# original = n +# reverse = 0 +# +# while n > 0: +# digit = n % 10 # получаем последнюю цифру +# reverse = reverse * 10 + digit # добавляем цифру к перевернутому числу +# n = n // 10 # убираем последнюю цифру +# +# if original == reverse: +# print("YES") +# else: +# print("NO") + +''' ****** Задание 17 ******** + *** Программа для очистки числа от всех чётных цифр, используя цикл while. *** +''' +# n = int(input()) +# result = 0 +# multiplier = 1 +# +# while n > 0: +# digit = n % 10 # получаем последнюю цифру +# if digit % 2 != 0: # проверяем, нечётная ли цифра +# result = digit * multiplier + result +# multiplier *= 10 +# n = n // 10 # убираем последнюю цифру +# +# print(result) + +''' ****** Задание 18 ******** + *** Разложение числа на простые множители*** +''' +# n = int(input()) +# original = n +# factors = [] +# divisor = 2 +# +# while divisor * divisor <= n: +# while n % divisor == 0: +# factors.append(str(divisor)) +# n = n // divisor +# divisor += 1 +# +# if n > 1: +# factors.append(str(n)) +# +# print(f"{original} = " + " * ".join(factors)) + +''' ****** Задание 19 ******** + *** Программа, которая угадывает загаданное целое число от 1 до 1000 с использованием цикла while.*** +''' +# low = 1 +# high = 1000 +# attempts = 0 +# +# while attempts < 10: +# guess = (low + high) // 2 +# print(guess) +# +# response = input().strip() +# +# if response == "Угадал!": +# break +# elif response == "Больше": +# low = guess + 1 +# elif response == "Меньше": +# high = guess - 1 +# +# attempts += 1 + +''' ****** Задание 20 ******** + *** Программу, которая проводит проверку правильности хэшей в модельном блокчейне с простой хэш-функцией. *** +''' +# n = int(input()) +# h_prev = 0 +# +# for idx in range(n): +# b = int(input()) +# m = b // (256 ** 2) +# rest = b % (256 ** 2) +# r = rest // 256 +# h_stored = rest % 256 +# +# h_computed = (37 * (m + r + h_prev)) % 256 +# +# if h_computed != h_stored or h_computed >= 100: +# print(idx) +# break +# h_prev = h_computed +# else: +# print(-1) \ No newline at end of file diff --git a/lesson_2.4.py b/lesson_2.4.py index e69de29..6d616fb 100644 --- a/lesson_2.4.py +++ b/lesson_2.4.py @@ -0,0 +1,179 @@ +''' ****** Задание 1 ******** + *** Таблица умножения *** +''' +# # Получаем размер таблицы от пользователя +# n = int(input()) +# +# # Внешний цикл для каждой строки (i от 1 до n) +# for i in range(1, n + 1): +# # Внутренний цикл для каждого столбца в текущей строке (j от 1 до n) +# for j in range(1, n + 1): +# # Вычисляем произведение +# product = i * j +# # Выводим число, выравнивая его по левому краю в поле шириной 4 символа +# # end='' предотвращает переход на новую строку после print +# print(f"{product:4}", end='') +# # После обработки всех столбцов в строке переходим на новую строку +# print() + +''' ****** Задание 2 ******** + *** Введённому числу n выводит все произведения чисел от 1 до n в виде отдельных выражений. *** +''' +# # Получаем размер от пользователя +# n = int(input()) +# +# # Внешний цикл для второго числа (j от 1 до n) +# for j in range(1, n + 1): +# # Внутренний цикл для первого числа (i от 1 до n) +# for i in range(1, n + 1): +# # Вычисляем произведение +# product = i * j +# # Выводим выражение в нужном формате +# print(f"{i} * {j} = {product}") + +''' ****** Задание 3 ******** + *** Введённому числу n строит «математическую ёлку» — пирамидку из чисел. *** +''' +# n = int(input()) +# +# num = 1 +# row_length = 1 +# +# while num <= n: +# row = [] +# for j in range(row_length): +# if num > n: +# break +# row.append(str(num)) +# num += 1 +# print(' '.join(row)) +# row_length += 1 + +''' ****** Задание 4 ******** + *** Подсчёт суммы всех цифр всех чисел, поданных на вход. *** +''' +# n = int(input()) +# total_sum = 0 +# +# for i in range(n): +# number = input().strip() # считываем как строку, чтобы обрабатывать каждую цифру +# for digit in number: +# total_sum += int(digit) +# +# print(total_sum) + +''' ****** Задание 5 ******** + *** Помогает считать местности, где была замечена зайка. *** +''' +# n = int(input()) +# count = 0 +# +# for i in range(n): +# has_zayka = False +# word = input() +# +# while word != "ВСЁ": +# if "зайка" in word.lower(): +# has_zayka = True +# word = input() +# +# if has_zayka: +# count += 1 +# +# print(count) +''' ****** Задание 6 ******** + *** Найти наибольший общий делитель *** +''' +# n = int(input()) +# +# # Считываем первое число и инициализируем НОД +# gcd_value = int(input()) +# +# # Обрабатываем остальные числа +# for i in range(n - 1): +# num = int(input()) +# a, b = gcd_value, num +# +# # Алгоритм Евклида +# while b != 0: +# a, b = b, a % b +# +# gcd_value = a +# +# print(gcd_value) + +''' ****** Задание 7 ******** + *** Найти наибольший общий делитель *** +''' +# n = int(input()) +# +# # Считываем первое число и инициализируем НОД +# gcd_value = int(input()) +# +# # Обрабатываем остальные числа +# for i in range(n - 1): +# num = int(input()) +# a, b = gcd_value, num +# +# # Алгоритм Евклида +# while b != 0: +# a, b = b, a % b +# +# gcd_value = a +# +# print(gcd_value) + +''' ****** Задание 8 ******** + *** Ввести отсчёт *** +''' +# n = int(input()) +# +# for i in range(n): +# # Для каждого гонщика начинаем отсчет с (3 + i) до 1 +# for j in range(3 + i, 0, -1): +# print(j) +# print("Старт!") + +''' ****** Задание 9 ******** + *** Чьё число больше *** +''' +# n = int(input()) +# max_sum = -1 +# winner = "" +# +# for i in range(n): +# name = input() +# number = input().strip() +# +# # Вычисляем сумму цифр числа +# digit_sum = 0 +# for digit in number: +# digit_sum += int(digit) +# +# # Обновляем победителя, если текущая сумма >= максимальной +# # (при равенстве берем последнего) +# if digit_sum >= max_sum: +# max_sum = digit_sum +# winner = name +# +# print(winner) + +''' ****** Задание 10 ******** + *** Самая большая цифра *** +''' +# n = int(input()) +# result = "" +# +# for i in range(n): +# number = input().strip() +# +# # Находим максимальную цифру в текущем числе +# max_digit = '0' +# for digit in number: +# if digit > max_digit: +# max_digit = digit +# +# # Добавляем максимальную цифру к результату +# result += max_digit +# +# print(result)