GD Star Rating
loading...

Тут на хабре, статья проскачила, про 3-ю бесплатную iOS школу в Питере.
И я от скуки и желания пожить в Питере, решил податься в эту школу.

Но задание меня мягко говоря удивило.

ТЕСТОВОЕ ЗАДАНИЕ ШКОЛЫ iOS-РАЗРАБОТЧИКОВ

Тестовое задание представляет собой консольное приложение на языке C.

Программа принимает на вход единственный аргумент: месяц и год в формате mm.YYYY (например 2.2014 – февраль 2014 года) и выводит календарь по дням недели на месяц.

В первой строке сокращённые названия дней недели (в текущей локали). Неделя также начинается с дня, принятого в данной локали. В последующих строках — числа месяца в столбцах по дням недели (как в обычном календаре). Текущее число выделено квадратными скобками. Кроме того, нужно обратить внимание, что столбцы выровнены, то есть числа в них располагаются строго одно над другим без смещения.

Наличие цветного оформления (по вкусу разработчика) будет плюсом.

Задание, нужно было выполнить на чистом Си. Действительно, ведь школа будет для iOS разработчиков и Си у нас основной язык. Хотя нет, постойте, Objective C же, нет?

В итоге я отослал вот такой ответ:

Я если честно, очень удивился увидев такое задание.. Но, что ж, дело ваше, вот ответ:

MacBook-Pro-Aleksandr-Savin:dddd xor$ cat cal.c
#include
int main()
{
printf(“Hello, say mm.YYYY : “);
int month, year;
scanf(“%2d.%4d”,&month,&year);
char runme[30];
sprintf(runme,”cal %d %d”,month, year);
system(runme);
return 0;
}
MacBook-Pro-Aleksandr-Savin:dddd xor$ gcc -o cal cal.c
MacBook-Pro-Aleksandr-Savin:dddd xor$./cal
Hello, say mm.YYYY : 7.2012
Июля 2012
вс пн вт ср чт пт сб
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Как думаете, все правильно сделал?

Tagged with →  

28 Responses to Тут на хабре, статья

  1. Rodrado:

    > Действительно, ведь школа будет для iOS разработчиков и Си у нас основной язык. Хотя нет, постойте, Objective C же, нет?
    Они обратно совместимы.

    Судя по заданию, тебе надо сделать аналог программы cal.

  2. Rodrado:

    Да, надо самому написать аналог, а не тупо вызывать cal из своей программы.

  3. AR-All:

    : я понимаю все это. Это как бы моя шутка была, в том смысле, что зачем заставлять писать на этом убожестве как Си ( никого обидеть не хочу ), когда есть Objective C очень даже приятный и реально профильный. Ты слишком серьезно отнесся к этому.

  4. Rodrado:

    Amun-Ra: А что у тебя за локаль, что Воскресенье считается первым днём недели?

  5. Rodrado:

    > зачем заставлять писать на этом убожестве как Си ( никого обидеть не хочу ), когда есть Objective C очень даже приятный и реально профильный

    Они обратно совместимы.

  6. AR-All:

    : да понимаю я, что они обратно совместимы. Но, возможностей у Apple ObjC на порядок больше, чем у стандартного Си. Для написания полноценного cal, я смотрел его код, пришлось бы извернуться..

    LANG=”ru_RU.UTF-8″
    LC_COLLATE=”ru_RU.UTF-8″
    LC_CTYPE=”ru_RU.UTF-8″
    LC_MESSAGES=”ru_RU.UTF-8″
    LC_MONETARY=”ru_RU.UTF-8″
    LC_NUMERIC=”ru_RU.UTF-8″
    LC_TIME=”ru_RU.UTF-8″
    LC_ALL=

  7. AR-All:

    Amun-Ra: и это выдача cal с 2 аргументами, month & year, без всяких заморочек с локалью, судя по всему cal ошибся, так как все остальные календари, верно показывают с Пнд.

  8. Rodrado:

    > Но, возможностей у Apple ObjC на порядок больше, чем у стандартного Си.

    И давно ObjC стал принадлежать яблочникам?

    [email protected] ~ $ locale
    LANG=ru_RU.UTF-8
    LC_CTYPE=”ru_RU.UTF-8″
    LC_NUMERIC=C
    LC_TIME=”ru_RU.UTF-8″
    LC_COLLATE=”ru_RU.UTF-8″
    LC_MONETARY=”ru_RU.UTF-8″
    LC_MESSAGES=”ru_RU.UTF-8″
    LC_PAPER=”ru_RU.UTF-8″
    LC_NAME=”ru_RU.UTF-8″
    LC_ADDRESS=”ru_RU.UTF-8″
    LC_TELEPHONE=”ru_RU.UTF-8″
    LC_MEASUREMENT=”ru_RU.UTF-8″
    LC_IDENTIFICATION=”ru_RU.UTF-8″
    LC_ALL=
    [email protected] ~ $ cal
    Июль 2012
    Пн Вт Ср Чт Пт Сб Вс
    1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31

    Что-то в этой вашей BSD не так.

  9. AR-All:

    : да я не говорю, что он принадлежит яблоку, я говорю, что яблочный ObjC очень
    powerful language.
    И да, почему-то cal настойчево, показывает первым днем воскресенье:

    MacBook-Pro-Aleksandr-Savin:~ xor$ locale
    LANG=”ru_RU.UTF-8″
    LC_COLLATE=”ru_RU.UTF-8″
    LC_CTYPE=”ru_RU.UTF-8″
    LC_MESSAGES=”ru_RU.UTF-8″
    LC_MONETARY=”ru_RU.UTF-8″
    LC_NUMERIC=”ru_RU.UTF-8″
    LC_TIME=”ru_RU.UTF-8″
    LC_ALL=
    MacBook-Pro-Aleksandr-Savin:~ xor$ cal
    Июля 2012
    вс пн вт ср чт пт сб
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30 31

  10. Xuaapp:

    : US, например.

  11. OtsFcuk:

    Amun-Ra: такой powerful и динамический, что не знаешь, где в следующий раз что отвалится в рантайме (но я тоже на нем пишу, если что).

  12. Lagapp:

    Привет. Так получилось что я приложил руку к процессу набора в школу и придумыванию задания.

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

    Давать же задание на ObjC как-то нелогично: если человек его уже знает, то скорее всего он уже пишет под iOS и наша школа ему не очень нужна.

  13. Lagapp:

    Amun-Ra: Но вообще да, подразумевалось что ты сам всё напишешь, а не будешь дёргать cal. Алсо, ты забыл про часть “Текущее число выделено квадратными скобками.”.

  14. Sukon:

    Amun-Ra: Хуево троллите.

  15. AR-All:

    : уважаемый, зачем вы назвались “школой” если не хотите людей учить?

  16. Reled:

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

  17. AR-All:

    : вот вы говорите задачка школьного уровня, а вы на в скидку можете мне сказать формулу по которой можно высчитать 1 день года, чем он был пнд, втр, средой.. или по проще, скажите как вычислить високосный год или нет? На мой взгляд, задача на ровне с задачами из линейки “что спрашивают на собеседованиях в гугле”. Очень сложна, очень интересная, но не в тему.

  18. Rodrado:

    Amun-Ra: Вычисление дня недели я делал в 9 классе на паскале.

  19. Reled:

    Amun-Ra: Не знаю как там в гугле я помню такую задачку в школе на паскале. Формула Зеллера

  20. Lagapp:

    Amun–Ra: Где ты прочитал что не хотим? Ещё раз: одно из требований к кандидатам — базовое знание C. Требовать от кандидатов знания Objective–C (и, соответственно, давать тестовое задание не нём) — немного противоречит смыслу всего мероприятия.

  21. AR-All:

    да чего вы доказывает-то, си отстой ребят и все, после ObjC, меня одна мысль писать на си мурашками покрывает. а эти ребята хотят си. вот и все. кстати хорошие школы у вас были.

  22. AR-All:

    да и по поводу кала, я его написал, не через формулу зеллера, но пока вникал в эти подробности календаря образования, чет совсем все расхотелось =_=

  23. Rodrado:

    Amun-Ra: Охуенный ты программист, чувак.

  24. Lagapp:

    : боюсь представить, что будет, когда потребуется внимательно прочитать ТЗ страниц хотя бы на 20.

  25. TuaEkb:

    : он скажет фигня это, напишу по своему, зачем юзать библиотеку Х, буду юзать библиотеку Y она круче.

    А как по мне, так одна хрень, что Си, что Обжектив Си, на Си даже синтаксис для моего неокрепшего мозга проще.

    Вообще с таким успехом, можно сказать Assembler ацтой. Си – отличный язык для своих целей, но рубистам(амун-ра вроде ж рубистом был) не понять.

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