Небольшое тестовое задание в финской компании.15.09.2011, 17:51. Показов 8533. Ответов 64
Метки нет (Все метки)
Привествую всех жителей форума.
Сразу отмечу, что решения просить не хочу, а просто хочу показать задание, которая давала компания суунто (Suunto, Finland) на должность программиста (кто не в курсе, компания занимается производством компьютеров для спортсменов, дайверов ... ) в далеком 2005 году. Тема перенесена от сюда: Удалить комментарии из строки (кстати там же картинка - не могу опять ее же прицепить) https://www.cyberforum.ru/atta... 1316092021 ----- кстати когда проходил там собеседование на программера задание было в написании парсера следующего (до сих пор храню) (К сожалению оригинал задания не сохранился, да и толку от него нет -- он на финском.)
в строке:
(результат в аттаче) принимая, что "height" = 2; "width" = 13; "rows" = 10; "lines" = 5; "space" = пробел или что другое Но! запрещены регулярные выражения, запрещен С++, запрещены функции типа strXXX. Только голый С, допускаются функции памяти (выделить/освободить) (статические буферы так же допускаются), указатели. На решение неделя. ---------------- Вдруг кому тоже интересно будет Что будет не ясно, спрашивайте. Тут сразу стоит отметить, что из 4 человек, которые, все ж, принесли задание на проверку никто не решил ее в полном объеме.
2
|
|||||||
| 15.09.2011, 17:51 | |
|
Ответы с готовыми решениями:
64
Тестовое задание Тестовое задание от компании Exness Тестовое задание для трудоустройства |
| 16.09.2011, 14:57 [ТС] | ||
нам там предстояло с девайсами работать у которых 1 мег памяти всего (вместе с системой) + такой куций сдк, что просто жуть. я к тому, что " а почемуб и не использовать, если и так понятно, что имелось ввиду?"
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.09.2011, 14:59 | |
|
villu, ну это получается "ни то, ни сё". Либо писать нормально, на плюсых, с использованием всех прелестей стл, либо уж голый си, так голый си.
Добавлено через 11 секунд Так что убираем sprintf))
0
|
|
|
|
|
| 16.09.2011, 15:03 | |
|
silent_1991, да напишите вы функцию конкатенации, которая принимает конечный буфер и строку, которую туда нужно дописать, и дописывайте после нуль-терминатора
Добавлено через 42 секунды вам ведь другого не надо. у вас будет sprintf( "$(%s)", value ); - это и без него решить можно. Сделайте аналог strcat
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|||
| 16.09.2011, 15:04 | |||
|
talis, не вижу смысла из-за одного-единственного места писать подобную функцию)) Если в процессе написания вылезут ещё такие места - оформлю в виде функции.
Добавлено через 1 минуту
0
|
|||
|
|
||
| 16.09.2011, 15:05 | ||
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.09.2011, 15:07 | |
|
fasked, нене, я хотел использовать sprintf только для формирования строки, замена происходит после этого в отдельной функции, поиск до этого тоже в отдельной.
Стоило бы не париться и просто хранить в таблице переменных не чистое имя, а целиком, вместе с "$(" и ")". Наверное, я так и сделаю
0
|
|
|
|
|
| 16.09.2011, 15:07 | |
|
я вообще слабо представляю себе, зачем код вида $(var_name) менять на $(var_value). А если будет переменная с именем var_value и значением var_name? Программа с ума сойдёт :-) Не проще убрать уже $() и подставить просто значение, без этих символов?
0
|
|
|
|
||
| 16.09.2011, 15:07 | ||
Функция гигантская и не очень быстрая, если бы очень нужна была, то я думаю, имело бы смысл реализовать демо-версию sprintf, то есть повикидывать оттуда все ненужное.
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.09.2011, 15:09 | |
|
talis, нет, я хочу заменить "$(var_name)" на "var_value". Если бы я хотел поменять только значение в скобках, не пришлось бы париться с добавлением к var_name долларов и скобок.
0
|
|
|
|
||
| 16.09.2011, 15:09 | ||
А вообще после пятницы, когда отойду, можно будет позаниматься этой задачкой. Потом сравним реализации
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.09.2011, 15:11 | |
|
talis, короче, суть в том, что я не стал париться с разбиением кода на лексемы, а работаю целиком со строкой. На предварительном проходе все имена переменных меняю на значение, а второй проход уже работает с кодом, в котором полностью отсутствуют переменные, как будто мы при написании кода сразу подставляли значения.
Добавлено через 47 секунд fasked, я все равно имя и значение храню в статическом буфере размером 32 байта))
0
|
|
| 16.09.2011, 15:12 | |
|
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.09.2011, 15:13 | |
|
talis, ужос)) Тут уже простой подстановкой не отделаться, благо в задании такого условия нет, все переменные "объявляются статически"
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.09.2011, 15:15 | |
|
villu, я сначала хотел всё по фэншую написать, список лексем, каждая лексема имеет тип (зарезервированное слово, символ и т.д.), но как подумал, что в очередной раз придётся писать связный список вручную и все вытекающие отсюда функции - так меня сразу передёрнуло. Думаю "ну его нафиг, буду парсить строку сходу"...
0
|
|
|
|
|||
| 16.09.2011, 15:18 | |||
Мой код так умеетДобавлено через 2 минуты
0
|
|||
| 16.09.2011, 15:18 | |
|
Тестовое задание на Junior C++ dev
Тестовое задание от работадателя. Хотелось бы услышать критику. Написать ответы на тестовое задание при приёме на работу (исключения, sizeof, mutex) Тестовое задание Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|