Skip to content

belolap/aestst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовые задания

Задание № 1

На языке Go сделать работающую реализацию паттерна Factory Method. Две низкоуровневые сущности Cat и Dog. Обе генерализируются в абстракцию Animal, у которой в контракте есть метод Sound, который обязаны реализовать все потомки. Отдельно нужна функция принимающая на вход множество (не важно массив или связанный список) объектов типа Animal, в теле перебор всех элементов и вызов у каждого метода Sound. В результате работы программы на экране должен появится столбик голосов что-то вроде:

  • “Гав”
  • “Мяу”

Код должен быть откомментирован. Должно быть понятно как можно добавить новую сущность того же уровня, что и Cat, Dog.

Задание № 2

Дан массив из 100 элементов, целых, упорядоченных по возрастанию, чисел от 1 до 100. Произвольный элемент этого массива заменили на значение 0, затем массив перемешали. На любом понятном языке программирования реализовать функцию, которая принимает на вход этот перемешанный массив и возвращает, то значение, которое до этого заменили на 0. Ограничение – это необходимо сделать за 1 проход по массиву. Результатом этой задачи может быть не обязательно компилируемый и работающий код, важен понятный алгоритмический подход к решению этой задачи.

Задание № 3

Нужно спроектировать реляционную базу данных для издательства. У нас есть сущности: Автор (важно хранить ФИО), книга (важно хранить название), издание (важно хранить ISBN), гонорар (дату, сумму, кому выплачен).

Важно знать, что 1 автор может поучаствовать в создании более чем одной книги и над одной книгой могут потрудиться несколько авторов. Издание – это издание конкретной книги, книга может издаваться несколько раз, за каждое издание автору(ам) выплачивается гонорар. Результатом будет ER диаграмма (предпочтительно, схема в нотации «вороньи лапы»), содержащая таблицы с полями и связями.

Решения

Решения задач находятся в:

  1. animal/

Запуск программ можно осуществить командой:

go run ./animal

В первом задании, чтобы было чуть веселее, добавлена поддержка ассинхронности. Чтобы включить этот режим, укажите флаг -a:

go run ./animal -a
  1. number/

    go run ./number

  2. Задача проектирования решена в виде диаграммы:

Дополнительно составлен SQL-файл publishing.sql.

About

Тестовые задания

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published