Примеры программ #
На 1-й итерации вы должны написать по 2 полноценных примера программ на каждый эпик:
- всего 2 примера, если вы целитесь на оценку 3
- всего 4 примера, если вы целитесь на оценку 4
- всего 6 примеров, если вы целитесь на оценку 5
Каждая группа из 2 примеров должна показывать возможности языка, которые появятся в очередном эпике.
Варианты #
Вы можете использовать варианты, перечисленные ниже, либо придумать свои. Примеры поделены на несколько секций для удобства
Числа и массивы чисел #
- CircleSquare — читает радиус круга и печатает его площадь
- GCD — читает два целых числа, печатает наибольший общий делитель (НОД, GCD) этих чисел
- использует алгоритм Евклида для поиска НОД
- FizzBuzz — в цикле читает целые числа и печатает ответ, пока не встретит конец ввода
- если число делится на 3, то печатает Fizz
- если делится на 5, то печатает Buzz
- может напечатать “FizzBuzz”, если число делится как на 3, так и на 5
- если не делится ни на 3, ни на 5, то печатает само число
- SquareRoot — читает действительное число и печатает его квадратный корень
- печатает ERROR, если корень не является действительным числом
- Factorial — читает целое число и печатает его факториал
- можно использовать либо не использовать рекурсию
- Eratosthenes — читает целое число и печатает все простые числа, не превышающие заданное число
- использует алгоритм решета Эратосфена
- производительность реализации не важна
- Reverse — читает строку и печатает её в перевёрнутом виде
- SortNumbers — читает последовательность целых чисел и печатает её в отсортированном виде
- можно использовать любой алгоритм сортировки со сложностью не выше O(N2)
- примеры алгоритмов: сортировка пузырьком, быстрая сортировка, сортировка вставкой, сортировка слиянием
- SumNumbers — читает последовательность действительных чисел и печатает сумму чисел
- HeronFormula — читает координаты вершин треугольника в виде 3 пар чисел и печатает площадь треугольника
- в программе должна быть определена структура
Point2D, представляющая точку в двумерном пространстве - в программе должна быть определена функция либо метод
Distance(...)для вычисления расстояния между двумя точками
- в программе должна быть определена структура
Ветвления, циклы и функции #
- Factorial — читает число N и считает его факториал
N!, используя цикл либо рекурсию - Fibonacci — читает число N и считает N-е число Фибоначчи, используя цикл либо рекурсию
- IsPrime — читает число N и проверяет, является ли оно простым
- Подсказка: для проверки простоты N достаточно проверить, что оно не делится нацело ни на одно из чисел от 1 до квадратного корня из N
- GCD — читает два числа и вычисляет их НОД (наибольший общий делитель) алгоритмом Евклида
- SumDigits — вычисляет сумму цифр числа в десятичном представлении
- Подсказка: для реализации достаточно выделять следующую цифру путём деления с остатком и прибавлять её к сумме, пока число не обратится в ноль
- MultiplicationTable — читает число N выводит таблицу умножения от 1×1 до N×N. Каждая i-я строка вывода — это результаты умножения числа i на числа от 1 до N.
- Pow — читает два числа A и B и возводит число A в целочисленную степень B с помощью умножений в цикле
- Реализация должна использовать именно цикл, а не встроенный оператор или функцию возведения в степень
- Sqrt — вычисление квадратного корня методом Ньютона
- Реализация должна использовать именно цикл с методом Ньютона, а не встроенный оператор или функцию
- QuadraticEquation — решение квадратного уравнения с определением нуля, одного или двух корней
- Программа должна читать три числа: коэффициенты квадратного уравнения
- Программа должна правильно определять количество корней уравнения и выводить сначала количество корней (0, 1 или 2), а затем вычисленные корни
Работа со строками #
- ReverseString — читает строку, переворачивает её символы и печатает результат
- Пример: “Hello world!” → “!dlrow olleH”
- Подсказка: используйте технику двух указателей (two pointers) для переворота строки
- CheckPalindrome — читает строку и печатает “yes”, если это палиндром, а иначе печатает “no”
- Палиндром — это строка, которая читается одинаково как слева направо, так и справа налево
- Подсказка: используйте технику двух указателей (two pointers) для проверки на палиндром
- Вы должны сделать проверку нечувствительной к регистру
- Пример: “Hello” → “no”
- Пример: “Anna” → “yes”
- ToLower — читает строку, переводит все её символы в нижний регистр и печатает результат
- Пример: “Hello world!” → “hello world!”
- CountVowels — читает строку и выводит число гласных букв английского алфавита в этой строке
- Пример: “Hello world!” → “3”
- ValidateIpv4 — читает строку и проверяет, что это допустимый IPv4 адрес
- Для допустимых адресов печатает “yes”
- Для недопустимых печатает “no”
- FizzBuzz — читает число за числом в цикле и далее печатает:
- “Fizz”, если число делится на 3
- “Buzz”, если делится на 5
- “FizzBuzz”, если число делится и на 3, и на 5
- Само число в остальных случаях
- ValidateDate — читает дату в формате “YYYY-MM-DD” и проверяет корректность указанной даты
- Для допустимых дат печатает “yes”
- Для недопустимых печатает “no”
- Следует поддерживать как минимум даты в диапазоне от 1000-01-01 до 2999-12-31
- Пример: “2025 february 10” → “no”
- Пример: “2025-02-10” → “yes”
- Пример: “2025-02-29” → “no”
- IsLeapYear — читает номер года, проверяет, является ли он високосным, печатает “yes” или “no”
- Проверять надо согласно григорианскому календарю
- Пример: “2025” → “no”
- Пример: “2024” → “yes”
- Пример: “1600” → “no”
- Пример: “2000” → “yes”