Задачи для продвинутых и продолжающих по программированию

Задачи для продвинутых и продолжающих по программированию

  1. FizzBuzz. Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трём, программа должна выводить слово Fizz, а вместо чисел, кратных пяти — слово Buzz. Если число кратно пятнадцати, то программа должна выводить слово FizzBuzz. Задача может показаться очевидной, но нужно получить наиболее простое и красивое решение;

  2. Простое число. Реализуйте метод для проверки числа на простоту;

  3. Скобки. Реализовать метод, который по заданной скобочной последовательности говорит, “правильная” ли она.

  4. Реализовать набор методов для нахождения статических характеристик массива:
    1. минимальный элемент
    2. максимальный элемент
    3. медиана
    4. среднее арифметическое
    5. среднее геометрическое

  5. Реализовать класс с методом для вычисления математического выражения. Используя встроенную коллекцию Stack, перевести математическое выражение из инфиксной записи в обратную польскую, а затем вычислить его. В качестве операций использовать:
    1. +
    2. *
    3. /
    4. ()

  6. Реализовать класс с набором методов анализа файла:
    1. количество строк
    2. количество слов
    3. количество предложений
    4. частотная характеристика слов

  7. Реализовать метод для форматирования строки. На выходе должна получится единая строка со вставленными по правилам аргументами. Аргументы вставляются в строку через {};

  8. Реализовать набор классов, для описания и составления мат выражений. Основная задач уметь составлять полноценные выражения, хоть и в префиксной записи
    1. Описать базовый интерфейс Expression, содержащий метод calculate().
    2. Отнаследовать два вида выражений: UnaryExpression и BinaryExpression.
    3. Реализовать функциональность в классах
      1. Addition — сумма двух элементов
      2. Subtraction — разность двух элементов
      3. Multiplication — произведение двух элементов
      4. Division — частное двух элементов
      5. Rest — остаток от деления двух элементов
      6. Power — первый (левый) элемент возводится в степень равную значению второго (правого) элемента
      7. Negative — разность нуля и элемента
      8. Absolute — модуль элемента
      9. Square — квадрат элемента
      10. Value — передача числовых значений для выражений
    4. О иерархии наследования догадайтесь сами
    5. Необходимы конструкторы для работы в том числе с int и double

Post Author: Nikulux

Добавить комментарий