Идеи для проектов и практики навыков программирования
Задачи для начинающих и их реализации, которые могут быть решены на любых языках программирования. Проекты распределены по нескольким категориям.
Найти число пи до n-й цифры после запятой
Введите число, и программа начнет генерировать число пи. Поставьте определенный предел, до которого программа должна дойти.
Реализации:Python №1, Python №2, Haskell, PHP, JavaScript, Go
Последовательность Фибоначчи
Введите число, и программа сгенерирует последовательность Фибоначчи до этого числа или до N-го числа.
Реализации: Python №1, Python №2, Python №3, Bash, Haskell, PHP, JavaScript, Go,Python №6
Разложение на произведение простых чисел
Пользователь вводит число и находит, программа раскладывает на произведение простых чисел с их степенями.
Реализации: Python №1, Python №2, Haskell, JavaScript, C++, Python №3
Следующее простое число
Программа находит простые числа до тех пор, пока пользователь перестанет спрашивать.
Реализации: Python №1, Haskell, JavaScript, Go, Python №2
Калькулятор для ипотеки
Вычислить месячные выплаты фиксированного срока в течение заданных N сроков с заданной процентной ставкой.
Реализации: Go
Обмен-возврат
Пользователь вводит стоимость и количество денег. Программа рассчитывает сдачу и количество мелких монет, необходимых для сдачи.
Перевод из двоичной системы в десятичную и обратно
Реализации: Python
Калькулятор
Сначала простой с базовыми операциями, потом можно добавить фичи.
Конвертер температуры, валюты, масс и т.д.
Реализации: Python
Будильник
Простые часы, которые играют звук после некоторого числа минут или часов или в определенное время.Python, Java
Расстояние между городами
Вычисляет расстояние между двумя городами и позволяет пользователю выбрать размерность расстояния. Эта программа может потребовать информацию о городах, такую как долготу и широту.
Валидатор кредитной карты
Берет номер кредитной карты от производителя (Visa, MasterCard, American Express, Discover) и проверяет на правильность номер (разберитесь, как кредитные карты используют контрольную сумму).
Реализации: Haskell, Python, Go
Факториал числа
Решить с помощью циклов и отдельно с помощью рекурсии. n! = n * (n-1) * … * 1, 0! = 1.
Реализации: Haskell, Python, Go
Алгебра комплексных чисел
Показать сумму, умножение, сопряжение, отрицание в отдельных функциях (разность и деление могут быть сделаны путем использования нескольких уже написанных функций).
Реализация: Haskell
Счастливые числа
Счастливое число определено следующим процессом. Начиная с некоторого положительного целого числа, замените число суммой квадратов его цифр и повторяйте процесс до тех пор, пока число не будет равным одному(на чем все и остановится) или оно будет циклиться бесконечно. Если цикл конечен, то изначальное число называется счастливым. Найдите первые 8 счастливых чисел.
Реализации: Python, Haskell, Java, C++
Названия чисел
Показать как читается число на английском. Вы можете использовать уже существующую реализацию или написать свою, она должна поддерживать значения до одного миллиона или до максимально возможного целого значения в данном языке программирования, если оно меньше миллиона. По желанию: поддержка отрицательных чисел, нуля, чисел с плавающей запятой.
Реализации: Haskell, Python, Go, C++
Симуляция подбрасывания монеты
Напишите программу, которая симулирует подбрасывание одной монеты столько раз, сколько захочет пользователь. Программа должна записывать результаты и подсчитывать сколько раз выпали орел и решка.
Реализации: Python
Гипотеза Коллатца
Найдите число шагов, за которые получится единица, используя следующий процесс: берём любое натуральное число n больше единицы. Если оно чётное, то делим его на 2, а если нечётное, то умножаем на 3 и прибавляем 1.
Реализации: Python №1, Java, JavaScript, Java №2, Go, Java №3,
Сортировка
Реализовать два типа сортировочных алгоритмов: сортировка слиянием и сортировка простыми обменами.
Реализации: C, Python, Go, C++
Задача ближайшей пары
Задача ближайшей пары точек или задача ближайшей пары — это задача вычислительной геометрии: дается n точек в метрическом пространстве, найти пару точек, расстояние между которыми наименьшее.
Реализации: Python №1, Python №2
Решето Эратосфена
Решето Эратосфена — один из самых эффективных способов нахождения всех небольших простых чисел (ниже 10 миллионов).
Реализации: Python №1, JavaScript, Python №2, Go, Java, C++
Граф из связей
Напишите программу, которая будет создавать граф или сеть из ряда связей между вершинами.
Реализация: Python
Эйлеров путь
Напишите программу, ввод которой будет графом и вывод будет Эйлеров цикл или Эйлеров путь, или запись того, что цикл не возможен. Эйлеров путь начинается от одной из вершин и обходит каждую вершину графа и заканчивается на другой вершине графа. Эйлеров цикл — это Эйлеров путь, начинающийся и заканчивающийся в одной и той же вершине.
Реализация: Python
Соединенный граф
Напишите программу, ввод которой представляет из себя граф и вывод представляет из себя отчет, в котором указано соединена ли каждая вершина или нет.
Реализация: Python
Инвертированный индекс
Инвертированный индекс — это структура данных, используемая для поиска во всем тексте. Дается ряд текстовых файлов, реализуйте программу для создания инвертированного индекса. Также создайте пользовательский интерфейс для поиска, использующего инвертированный индекс, который возвращает список файлов, содержащих выражения или выражения из запроса. Память может содержать поисковой индекс.
Реализация: Java
Перевернуть строку
Вводится строка, и программа ее переворачивает и распечатывает на экран.
Реализации: Python №1, Python №2, Java №1, Haskell,Python №3, Java №2, Go, JavaScript №1, Java №3, Python №4, JavaScript №2
Поросячья латынь
Это «тайный язык», представляющий собой зашифрованный английский. Чтобы сделать поросяче-латинское слово из английского, нужно первые согласные звуки в слове переместить в конец и прибавить ay (Например: «banana» превращается в anana-bay). Подробнее о правилах читайте в Википедии.
Реализации: Python №1, Python №2, Java №1, Java №2, Go, Java №3, Python №3
Счетчик гласных
Вводится строка, и программа считает количество гласных в тексте. Для усложнения задачи можно генерировать отчет о том, сколько раз какая гласная была найдена.
Реализации: Python №1, Python №2, Haskell, Java №1, Go, Java №2, Python №3
Проверка на палиндром
Программа проверяет на то, что введенная строка является палиндромом (то есть читается слева направо так же, как и справа налево).
Реализации: Python №1, Python №2, Java, Haskell, Python №3 ,Go, Java