Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Тестовое задание для поступления в Java School.



Тестовое задание для поступления в Java School.

Компания Т-Systems является стратегическим подразделением группы компаний Deutsche Telekom и отвечает за ИТ проекты в области системной интеграции, разработке ПО, включая мобильные приложения, предоставляет облачные сервисы и телеком услуги для корпоративных клиентов и операторов связи. Компания ежемесячно набирает на работу 50-60 сотрудников, большая часть которых разработчики различных систем как для российских заказчиков, так и для крупных международных проектов. Для подготовки кадров компания организовала собственную школу Java-программистов для старшекурсников и выпускников технических ВУЗов. Обучение длится 2,5 месяца в вечернем режиме, студентам выплачивается стипендия. Самые успешные ученики приглашаются на работу в компанию. Мы представляем пример вступительных заданий при наборе в Java School. Задачи решаются в домашних условиях в течение недели. Всех, успешно прошедших первый этап, приглашают участвовать во втором этапе – технические тесты. На третьем этапе соискателем предстоит собеседование с будущими преподавателями – руководителями крупных проектов по разработке.

Список вакансий и подробная информация на сайте http://www.t-systems.ru/

0. Общие условия

· Приложение должно быть написано на языке Java 1.6 без использования дополнительных библиотек – только стандартные классы + интерфейсы, относящиеся к заданию.

· Плюсом будет stateless реализация.

1. Calculator

Написать калькулятор для вычисления простейших арифметических выражений.

Арифметическим выражением считается выражение, включающее:

· Цифры

· Точка в качестве десятичного разделителя

· Круглые скобки

· Знаки операций («+», «-», «*», «/»)

 

Приоритет операций: скобки, умножение-деление, сумма-вычитание. Округление производится до 4-го знака после запятой, округляется только конечный результат.

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

 

Название интерфейса

com.tsystems.javaschool.tasks.Calculator

Имя класса

com.tsystems.javaschool.tasks.CalculatorImpl

Имя архива

calculator.zip

Пример

Calculator c = new CalculatorImpl();

System.out.println(c.evaluate("(1+38)*4-5")); // Результат: 151

 

c = new CalculatorImpl();

System.out.println(c.evaluate("7*6/2+8")); // Результат: 29

 

c = new CalculatorImpl();

System.out.println(c.evaluate("-12)1//(")); // Результат: null



2. Subsequence

Заданы две последовательности X1, X2,..., Xn и Y1, Y2,…, Yk произвольных элементов (java.lang.Object). Определить, можно ли получить последовательность X путем вычеркивания некоторых элементов из Y?

В качестве входных параметра в метод передаются два списка: первый – список Xi, второй – список Yi.

 

Название интерфейса

com.tsystems.javaschool.tasks.Subsequence

Имя класса

com.tsystems.javaschool.tasks.SubsequenceImpl

Имя архива

subsequense.zip

Пример

Subsequence s = new SubsequenceImpl();

boolean b = s.find(Arrays.asList("A", "B", "C", "D"), Arrays.asList("BD", " A ", "ABC", " B ", "M", "D", "M", " C ", "DC", " D "));

System.out.println(b); // Результат: true

3. Duplicates

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

В качестве входных параметра в метод передаются два файла: первый – входной, второй – выходной. Метод возвращает true тогда и только тогда, когда обработка файла прошла успешно. В случае возникновения ошибок программа должна вернуть false.

Не гарантируется, что данные файлы существуют. В случае, если выходной файл не существует, он должен быть создан. Если он существует, необходимо дописать результат выполнения программы, без перезаписи уже содержащейся там информации.

 

Название интерфейса

com.tsystems.javaschool.tasks.DuplicateFinder

Имя класса

com.tsystems.javaschool.tasks.DuplicateFinderImpl

Имя архива

duplicates.zip

Пример

DuplicateFinder d = new DuplicateFinderImpl();

d.process(new File("a.txt"), new File("b.txt"));

a.txt

ccc

ddd

bbb

ddd

ddd

aaa

b.txt

aaa[1]

bbb[1]

ccc[1]

ddd[3]

 

Если вы успешно справились с заданием, T-Systems приглашает вас на обучение в Java School в Санкт-Петербурге. Во время обучения выплачивается стипендия, лучших возьмут на работу. Для этого предварительно запросите интерфейсы по адресу java.school@t-systems.ru, указав ФИО и контактные данные. Интерфейсы должны быть реализованы в классах с определенными именами, которые, в свою очередь, должны иметь публичные конструкторы без аргументов. Исходный код необходимо прокомментировать, упаковать в zip-архив и прислать обратно на java.school@t-systems.ru.

Учебные группы набираются регулярно в течение года.

 


Дата добавления: 2015-11-04; просмотров: 438 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Jamy Toaster выходит на рынок Украины | Московский государственный университет

mybiblioteka.su - 2015-2024 год. (0.011 сек.)