Приложение 1. Разбор задачи для собеседования с программистами
Приложение 1. Разбор задачи для собеседования с программистами
Итак, разбор задачи.
Тест проверяет достижения соискателя скорее по п. 2 перечня требований, приведенного перед задачей, чем по п. 3 (если вы, конечно, еще помните, что там написано) Одновременно вы получаете представление об аккуратности кода и «доверчивости» при получении исходных данных. Вот решение, которое я хотел увидеть, без заморочек синтаксисом языка.
Комментарий: если поезда могут приходить раньше или опаздывать более чем на половину суток, то для решения задачи необходимы дата фактического прибытия и прибытия по расписанию. Далее задача решается в предположении, что время опережения и опоздания не превосходит 12 часов.
ЕСЛИ НЕ КОНТРОЛЬ_НА_ВРЕМЯ (ВРЕМЯ_РАСП) ИЛИ
НЕ КОНТРОЛЬ_НА_ВРЕМЯ (ВРЕМЯ_ФАКТ)
ТО ВЫЙТИ.
Комментарий: Я бы удовлетворился и без описания функции КОНТРОЛЬ_НА_ВРЕМЯ.
РАЗНОСТЬ:= МИНУТЫ (ВРЕМЯ_РАСП) – МИНУТЫ (ВРЕМЯ_ФАКТ);
Комментарий: 1440 = 24 х 60 – количество минут в сутках, а 720 – в полусутках.
ЕСЛИ РАЗНОСТЬ <= —720
ТО РАЗНОСТЬ:= РАЗНОСТЬ + 1440
ИНАЧЕ ЕСЛИ РАЗНОСТЬ >= 720
ТО РАЗНОСТЬ:= РАЗНОСТЬ – 1440;
ЕСЛИ РАЗНОСТЬ = 0
ТО ПЕЧАТАТЬ («ПРИШЕЛ ВОВРЕМЯ»)
ИНАЧЕ ЕСЛИ РАЗНОСТЬ > 0
ТО ВЫВЕСТИ («ПРИШЕЛ РАНЬШЕ НА», ЧАС_МИН
(РАЗНОСТЬ))
ИНАЧЕ ЕСЛИ РАЗНОСТЬ < 0
ТО ВЫВЕСТИ («ОПОЗДАЛ НА», ЧАС_МИН (—РАЗНОСТЬ))
Если испытуемый не заметил, что поезд, прибывающий по расписанию в 0.05, а фактически прибывший в 23.55, не опоздал на 23 часа 50 минут, а приехал раньше на 10 минут, то это очень грустно. Если увидел, но не сообщил вам (устно или в комментарии к тексту), что решение не работает при расхождениях с расписанием более полусуток, то это просто грустно. Кодировать по блок-схемам последние сорок лет уже не требуется, а на что еще такой годится?
Наиболее поразившей меня за последнее время реакцией на эту задачу было удивленное «Как нет дат в исходных данных? Без дат вообще нельзя решить, без дат нет метода!». Я сразу почувствовал себя таким старым… Правда, как-то мы без методов обходились, поскольку объектно-ориентированных языков тогда еще не было.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
12.4. Разбор нашего сценария в среде FrontPage
12.4. Разбор нашего сценария в среде FrontPage Созданный сценарий состоит всего из четырех строк кода, которые выводят в окне браузера десять сообщений Привет, мир!!!. Все остальное – это код страницы на языке HTML. Далее мы немного поэкспериментируем со сценарием.Для разработки
2.3. Разбор опций: getopt() и getopt_long()
2.3. Разбор опций: getopt() и getopt_long() Примерно в 1980-х группа поддержки Unix для System III в AT&T заметила, что каждая программа Unix использовала для разбора аргументов свои собственные методики. Чтобы облегчить работу пользователей и программистов, они разработали большинство из
8.4. Разбор полетов
8.4. Разбор полетов В этом разделе некоторые наиболее посещаемые проекты Рунета будут рассмотрены с точки зрения клиентской оптимизации. Основной целью каждого проводимого ниже анализа является показать на рабочих примерах, каким именно образом можно ускорить загрузку
22.3.2. Разбор имен файлов
22.3.2. Разбор имен файлов Абсолютно обычным действием для привилегированных приложений является предоставление доступа к файлам ненадежным пользователям и разрешение этим пользователям передавать имена файлов, к которым необходим доступ. Хорошим примером служит
5. Разбор успеха по косточкам
5. Разбор успеха по косточкам В прошлом у вас, вероятно, были проблемы, но сейчас вы добились результата. Путь к успеху можно оформить в виде отдельного кейса. Разложите по полочкам, как вы добились
Глава 4 Разбор и вычисление выражений
Глава 4 Разбор и вычисление выражений Перед программистом нередко возникает задача вычисления арифметических или иных выражений, не известных на этапе компиляции программы. Готовых средств для этого в Delphi нет. В Интернете можно найти компоненты и законченные примеры
14.2.1. Разбор флагов в командной строке
14.2.1. Разбор флагов в командной строке Для разбора командной строки чаще всего применяется библиотека getoptlong (библиотека getopts.rb, обладающая менее развитой функциональностью, считается устаревшей). Она понимает однобуквенные и длинные флаги и распознает двойной дефис (--)
11.12. Синтаксический разбор XML с помощью NSXMLParser
11.12. Синтаксический разбор XML с помощью NSXMLParser Постановка задачи Необходимо выполнить синтаксический разбор (парсинг) фрагмента кода на языке XML или
Василий Щепетнёв: Разбор полётов перед стартом
Василий Щепетнёв: Разбор полётов перед стартом Что ж, время принять позу успешного прорицателя и начать собирать лавры. Если дадут. Хотя вряд ли. Лавры полагаются за сбывшиеся предсказания приятного толка, например "Вас опять выберут президентом", "Вы непременно получите