Skip to content

Latest commit

 

History

History
273 lines (138 loc) · 20.4 KB

all_tasks_readme.md

File metadata and controls

273 lines (138 loc) · 20.4 KB

Полный список задач в репозитории

📌 Все задачи разбиты на блоки для удобства навигации и чтения.


Первый блок задач (задачи 01 - 10):

01. Интерполяция переменных: вывести "Hello, World!", после чего запросить имя пользователя и вывести в терминале "Hello, <username>!".

Исходный код решения


02. Функция, которая проверяет, является ли указанный год високосным.

Исходный код решения


03. Вывести в терминале текущую дату и время в удобном для чтения формате (например, "Текущая дата и время: 10.10.2023 13:56:23, день недели: вторник.").

Исходный код решения


04. Функция, которая проверяет, является ли число, переданное в качестве аргумента, простым.

Исходный код решения


05. Функция, которая генерирует одномерный массив случайных целых чисел размером count. Все числа должны находиться в диапазоне min_value ... max_value. Дополнительно следует реализовать возможность генерации массива, состоящего только из уникальных (неповторяющихся) элементов.

Исходный код решения


06. Дан одномерный массив чисел размером k (1 <= k <= 1000). Вывести на экран минимальный, максимальный элементы массива, а также сумму и среднее арифметическое всех элементов массива.

Исходный код решения


07. Фильтрация исходного массива: Дан массив из 100 случайных целых чисел. Создать два новых массива на основе первого = в первом оставить только чётные положительные числа, во втором - двузначные числа, кратные 10. Вывести оригинальный массив и оба получившихся массива на экран консоли.

Исходный код решения


08. Перевернуть все символы в строке, не используя встроенные в язык методы, типа string.reverse и слайсы.

Исходный код решения


09. Поменять значения двух целочисленных переменных, не используя при этом третью (три способа).

Исходный код решения


10. Использование ассоциативных массивов: Зарплата сотрудника вычисляется по формуле = 1000$ + 20$ за каждый отработанный час + 30$ за каждого нового клиента. Подсчитать зарплату каждого из сотрудников. Вывести их в порядке от "лучшего" к "худшему". Каждый сотрудник представляет собой ассоциативный массив.

Исходный код решения

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

Второй блок задач (задачи 11 - 20):

11. Задача номер 9, но для строковых переменных (поменять их значения, не используя при этом третью).

Исходный код решения


12. Нарисовать в терминале фигуру "ёлочка" из символов * (снежинка) и пробелов (располагаются между снежинками). Ёлочка должна быть симметричной, на первой строке = одна снежинка, на второй = две и т. д. Высота ёлочки задаётся пользователем, но она не должна превышать 40 строк (необходимо проверить этот параметр программно). Желательно продумать и реализовать рекурсивный алгоритм отрисовки.

Исходный код решения


13. Вывести на экран длину вектора по трём заданным координатам = x, y, z.

Исходный код решения


14. Дан список продуктов на складе. У каждого есть срок его изготовления и срок годности (всегда указан в днях). Необходимо проверить, какие продукты на текущую дату можно считать просроченными, а какие - всё ещё свежими. Даты можно указать любые, главное, чтобы было видно, что функция работает правильно.

Исходный код решения


15. Реализовать программу "Калькулятор для вклада". Пользователь вводит начальную сумму и количество месяцев, после чего должен получить финальную сумму, которая будет на вкладе по истечению указанного им срока. Условия вклада такие: любая сумма до 6 месяцев (включительно) = 6.5% годовых; если вклад делается на срок больше 6 месяцев, то для сумм больше 500.000 процентная ставка = 8%, для сумм меньших или равных 500.000 = 10%. Все вклады идут с ежемесячной капитализацией процентов (проценты каждый месяц прибавляются к сумме вклада, и в новом месяце процент считается уже от новой суммы).

Так как это учебная программа, результат при выводе разрешается округлить до 2-3 знаков после запятой.

Исходный код решения


16. Необходимо рекурсивно обойти все элементы двумерного кортежа и вывести их на экран в виде матрицы (через пробел или через запятую).

Например: двумерный кортеж = ((1, -4, 5), (12, 0, -9), (3, 10, 83)). На экране должно получиться:

1, -4, 5
12, 0, -9
3, 10, 83

В кортеже могут быть только целые числа (положительные и отрицательные). Порядок рекурсивного обхода - на усмотрение разработчика.

Исходный код решения


17. Даны две строки, необходимо выяснить являются ли они анаграммами? В содержании строк следует учитывать только буквы и цифры. Пробелы и знаки препинания необходимо удалить или игнорировать их при сравнении. Сравнение сделать case-insensitive (регистронезависимым).

Исходный код решения


18. Количество вхождений элемента в последовательность: В текстовом файле записана произвольная строка или текст. Пользователь вводит символ или подстроку. Необходимо вывести, какое количество раз она повторяется в исходном тексте. Поиск сделать case-insensitive (регистронезависимым).

Исходный код решения


19. Пользователь вводит две даты в заданном формате. Необходимо вывести разницу между датами в днях.

Исходный код решения


20. Реализовать функции dec_to_hex, hex_to_dec, dec_to_bin, bin_to_dec, rgb_to_hex, hex_to_rgb без использования аналогичных функций, встроенных в язык программирования. Входные данные = целые неотрицательные числа в указанной системе счисления в виде строки: "40AC20", "600", "1011011" и т. д. RGB-цвет должен быть представлен в виде кортежа из трёх целочисленных значений (0 .. 255).

Исходный код решения

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

Третий блок задач (задачи 21 - 30):

21. Реализовать функцию, которая выводит на экран все делители указанного натурального числа.

Исходный код решения


22. Функция, которая раскладывает натуральное число (n > 1) на простые сомножители.

Исходный код решения


23. Решето Эратосфена: Вывести список всех простых чисел в диапазоне от 2 до <user_number>.

Исходный код решения


24. Реализовать две функции для целочисленной арифметики денежных единиц: одна - для сложения, вторая - для вычитания. Мы знаем, что представление дробной части вещественного числа в компьютере не всегда точное из-за особенностей двоичной арифметики. Поэтому для денежных единиц обычно создаётся отдельный объект, в котором реализованы свои методы для арифметических операций с этим объектом. Копейки считаются отдельно, а рубли - отдельно. Так как мы пока не затрагиваем ООП, предлагается реализовать описанный функционал через ассоциативные массивы (словари).

Исходный код решения


25. Найти и распечатать самое длинное и самое короткое слово в текстовом файле. Знаки препинания и пробелы при подсчёте не учитывать!

Исходный код решения


26. Матричная арифметика = целых четыре подзадачи в одной. В дальнейшем считать матрицу и двумерный список (кортеж) синонимами. Все индексы будем считать с нуля.

Итак, дана квадратная матрица 5-го порядка. Можно наполнить её любыми целыми числами.

A. Вывести на экран исходную и транспонированную ей матрицу. Вывод обязательно реализовать с выравниванием по столбцам.

B. Вывести сумму элементов с чётными индексами на главной диагонали. Например: A[0][0], A[2][2] и т. д. Исходная матрица может быть любого размера (но она обязательно будет квадратной).

C. Вывести последнюю цифру суммы всех элементов на главной и побочной диагоналях.

D. Найти и вывести минимальный элемент матрицы и координаты (индексы) его последнего вхождения.

Исходный код решения


27. Реализовать две функции: Первая вычисляет, является ли указанная строка палиндромом. Вторая делает тоже самое, но для целых неотрицательных чисел. Можно использовать любой известный алгоритм для вычисления палиндромов.

Исходный код решения


28. Дан массив из натуральных чисел. Найти НОД для всех чисел в указанном массиве.

Исходный код решения


29. Дан массив случайных чисел. Сложить отдельно положительные, отдельно - отрицательные числа. Обе суммы вывести на экран. Ноль не относится ни к первым, ни ко вторым.

Исходный код решения


30. Дан массив случайных чисел. Вывести на экран только уникальные (неповторяющиеся) элементы.

Исходный код решения

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

Четвёртый блок задач (задачи 31 - 36):

31. Заменить в текстовом файле все вхождения одной подстроки на другую (Replace In File).

Исходный код решения


32. Вывести на экран сумму всех цифр указанного числа (функция должна работать в том числе и для отрицательных чисел, и для вещественных).

Исходный код решения


33. Реализовать функцию, которая удаляет в текстовом файле случайные лишние пробелы в конце строки. Другими словами, каждая строка в файле должна быть либо пустой, либо обязательно заканчиваться каким-то визуально видимым символом (не пробелом!).

Исходный код решения


34. Программа, появившаяся случайно в ходе решения задач. Внести в программу две функции по поиску простых чисел - одна реализует наивный улучшенный алгоритм из задачи 04, вторая - Решето Эратосфена из задачи 23. Сравнить время их работы для какого-то достаточно большого n. Результаты вывести на экран.

Исходный код решения


35. Дан текстовый файл. Необходимо подсчитать среднюю длину слова. Текст предварительно очистить от пробелов и лишних знаков препинания при помощи регулярного выражения.

Исходный код решения


36. Найти и вывести на экран НОД и НОК для двух указанных натуральных чисел. Разрешается использовать любой известный алгоритм, кроме встроенных в язык программирования функций.

Исходный код решения

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •