kata-program.io

Тестовое задание Калькулятор_Java

УРОК 1. ВВЕДЕНИЕ

Тебе предстоит решить кодовую задачу на языке Java. Начнём с общей информации для более лёгкого понимания, зачем и как выполнять Тестовое задание.

Что значит быть Java-разработчиком?

Java-разработчик - создаёт корпоративные приложения, веб-приложения, а также мобильные приложения для смартфонов и планшетов. Это специалисты, которые постоянно осваивают новые прогрессивные технологии, тренируют свой мозг, а значит интеллект и смекалку. Однообразная и скучная работа - тут точно не светит!

Представляешь, частью какого глобального сообщества ты станешь?

Java-разработчики гипервостребованы! Сайт hh.ru выдает 11 тыс. открытых вакансий по всей России для Java-программистов. Это профессия будущего. Спрос на Java backend разработчиков год от года только растёт, сейчас это самая дефицитная профессия в сфере информационных технологий (IT).

Java-разработчики требуются в следующих компаниях: Сбербанк, ВТБ, EPAM, Росбанк, Ай-Теко, Тинькофф Банк, Банк Хоум Кредит, Райффайзенбанк, TWINO, Спортмастер, Банк Открытие, Wildberries и другие. Здесь уже работают наши выпускники!


Что даёт выполнение Тестового задания?

Выполнение Тестового задания поможет тебе окончательно определиться, интересно ли тебе заниматься программированием или это слишком сложное, скучное и ни разу не увлекательное дело. А нам поможет принять решение о твоём зачислении в Академию.


Как выполнить Тестовое задание оптимальным образом?

Для твоего удобства Тестовое задание разбито на 4 части:

Урок 1. Введение
Это краткое описание твоей будущей профессии, которое ты только что прочитал.)

Урок 2. Среда разработки
Здесь ты найдёшь ссылки на видео с инструкциями о том, как установить себе на компьютер новые программы и запустить их. Следуя пошаговому руководству, ты установишь пакет приложений Open JDK для написания кода на языке Java и среду разработки IntelliJ IDEA.

Урок 3. Список материалов
Мы подготовили список активных ссылок по темам, которые надо изучить для выполнения Тестового задания. Строго придерживайся рекомендаций в этом уроке, чтобы не терять время на изучение лишней информации. Мы сделали последовательную подборку именно тех тем, которые нужны для решения задачи.

Урок 4.Тестовая задача “Калькулятор”
Практическая задача с данными и требованиями к её решению. В этом уроке тебе нужно будет решить задачку на логику и написать простой код.

ОБРАТИ ВНИМАНИЕ! На выполнение Тестового задания даётся 7 дней, поэтому дочитывай Введение, переходи к Уроку 2, устанавливай среду разработки, приступай к изучению материалов из списка в Уроке 3 и начинай писать кода сразу, одновременно с изучением материалов. Не откладывая на потом!


Что ещё очень важно?

Вот тут ссылка на чат поддержки в Телеграм для тех, кто выполняет Тестовое задание по Java, где ты можешь задавать вопросы о том, что тебе непонятно.

В комьюнити время от времени заходят и те, кто уже поступил в Академию, и выпускники. Так что ты сможешь общаться не только с другими абитуриентами, но и получать ответ от более опытных ребят. Важно сразу начать тренировать в себе навык - задавать любые вопросы, которые у тебя возникают. Помни, нет глупых вопросов, на начальном этапе нормально, если есть сложности. Отбрасывай в сторону стеснение и страх глупо выглядеть! Это самый верный способ освоить новые знания и профессию!

Успехов!




УРОК 2. СРЕДА РАЗРАБОТКИ

ШАГ 1.
Начни с установки Open JDK, обрати внимание, нужна 17-я версия. Скачать Open JDK можно по прямым ссылкам ниже. Выбери нужную версию ОС и нажми на кнопку “авторизация”.

Linux / AArch64 Авторизация
Linux / x64 Авторизация
macOS / AArch64 Авторизация
macOS / x64 Авторизация
Win/x64 Авторизация
Win/Aarch64 Авторизация

Сайт Oracle временно не доступен в России, поэтому мы предлагаем установить OpenJDK, эта версия подойдет для обучения, но по процессу установки она отличается от JDK от Oracle.

Ознакомиться с инструкцией по установке можно здесь: Установка OpenJDK 11 для Windows

Если после просмотра видео остались вопросы, ты можешь посмотреть на Youtube другие видео по запросу “установка OpenJDK”. Если застрял на этом этапе - задавай вопросы в чате Telegram для подготовки к решению тестового задания.

ШАГ 2.
Установи программу для написания кода (среду разработки). Самой удобной и распространённой средой разработки является IntelliJ IDEA — скачать. Для подготовки к решению Тестовой задачи подойдет бесплатная версия Community. В процессе обучения мы будем использовать Intellij IDEA, на этапе Командного проекта дадим тебе лицензионный ключ от Ultimate версии, её хватит для учебных задач.
Инструкция по установке и запуску первой программы под Intellij IDEA (продолжение видео из Шага 1) — смотреть видео.




УРОК 3. СПИСОК МАТЕРИАЛОВ

Список базовых тем, изучение которых необходимо для решения Тестового задания:

1. Основы синтаксиса Java: классы, объекты, методы, типы данных Java для начинающих.

Переменные. Примитивные типы данных Java для начинающих
Java для начинающих. Методы в Java
Java для начинающих. Тип возвращаемого значения метода

2. Арифметические операции в Java

Java для начинающих. Арифметические операции

3. Класс String, работа со строками. Преобразование строки в число

Строки(String). Ссылочные типы данных
Класс String и его методы

4. Циклы в Java, работа с массивами

Массивы в Java
Цикл for each, Массивы строк
Методы в Java
Тип возвращаемого значения метода
Параметры метода

5. Логические операторы

Логическое И, ИЛИ, НЕТ

6. Условные операторы, сравнение, switch case

Условный оператор if
Оператор switch

7. Класс Enum

Enum (Перечисления)

8. Работа с исключениями в Java

Исключения (часть 1). Обработка исключений
Исключения (часть 2). Выбрасывание исключений
Исключения (часть 3). Checked и Unchecked исключения
Исключения (часть 4)

РЕКОМЕНДАЦИЯ: если не работает большой кусок кода - попробуй исправлять его частями. Мысленно пройдись последовательно по коду, записывая значения переменных и результат работы. Так же для отладки приложения и нахождения проблемных мест в среде разработки предусмотрен режим debug. Видео, показывающее основы использования debug режима в IntelliJ Idea - смотреть
Постарайся разбить большую задачу на маленькие подзадачи и решать их по отдельности - так гораздо проще. Или упрости задачу до варианта, который ты можешь решить, а потом дорабатывай до необходимых требований.




УРОК 4. ТЕСТОВАЯ ЗАДАЧА “КАЛЬКУЛЯТОР”

Описание:

Создай консольное приложение “Калькулятор”. Приложение должно читать из консоли введенные пользователем строки, числа, арифметические операции проводимые между ними и выводить в консоль результат их выполнения.
Реализуй класс Main с методом public static String calc(String input). Метод должен принимать строку с арифметическим выражением между двумя числами и возвращать строку с результатом их выполнения. Ты можешь добавлять свои импорты, классы и методы. Добавленные классы не должны иметь модификаторы доступа (public или другие)

Требования:

  1. Калькулятор умеет выполнять операции сложения, вычитания, умножения и деления с двумя числами: a + b, a - b, a * b, a / b. Данные передаются в одну строку (смотри пример)! Решения, в которых каждое число и арифмитеческая операция передаются с новой строки считаются неверными.
  2. Калькулятор умеет работать как с арабскими (1,2,3,4,5…), так и с римскими (I,II,III,IV,V…) числами.
  3. Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более. На выходе числа не ограничиваются по величине и могут быть любыми.
  4. Калькулятор умеет работать только с целыми числами.
  5. Калькулятор умеет работать только с арабскими или римскими цифрами одновременно, при вводе пользователем строки вроде 3 + II калькулятор должен выбросить исключение и прекратить свою работу.
  6. При вводе римских чисел, ответ должен быть выведен римскими цифрами, соответственно, при вводе арабских - ответ ожидается арабскими.
  7. При вводе пользователем неподходящих чисел приложение выбрасывает исключение и завершает свою работу.
  8. При вводе пользователем строки, не соответствующей одной из вышеописанных арифметических операций, приложение выбрасывает исключение и завершает свою работу.
  9. Результатом операции деления является целое число, остаток отбрасывается. 
  10. Результатом работы калькулятора с арабскими числами могут быть отрицательные числа и ноль. Результатом работы калькулятора с римскими числами могут быть только положительные числа, если результат работы меньше единицы, выбрасывается исключение

Пример работы программы:

Input:

1 + 2

Output:

3

Input:

VI / III

Output:

II

Input:

I - II

Output:

throws Exception //т.к. в римской системе нет отрицательных чисел

Input:

I + 1

Output:

throws Exception //т.к. используются одновременно разные системы счисления

Input:

1

Output:

throws Exception //т.к. строка не является математической операцией

Input:

1 + 2 + 3

Output:

throws Exception //т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)



Как работать с римскими числами?

Воспользуйся онлайн преобразователем римских чисел в арабские.
Статья о Римских цифрах в Википедии.

Как отправить решение?

Решение нужно выгрузить на git и отправить ссылку на репозиторий на почту info@kata.academy, тема письма — “тестовое задание Калькулятор_Java”.
Если ты не знаком(а) с git и Github, прочитай эту статью, в ней описаны основы работы с git.
Далее нужно создать собственный репозиторий и добавить туда проект с решением.

Успехов тебе в выполнении Тестового задания и удачи в прохождении отбора в Ката Академию! Дерзай!