Мета даного завдання: швидка (до 20-ти хвилин) перевірка базових знань С ++ - цикли і робота з рядками.
Час: до 20-ти хвилин
Формат виконання: код пишеться на листочку, без доступу до документації
Критерії оцінки FulcrumWeb:
Перш за все кандидат повинен переконатися в повноті і однозначності постановки завдання.
У задачі сказано реалізувати функцію перетворення, при цьому назва функції нагадує стандартну функцію С - atoi (). Якщо вам не знайома точна специфікація цієї функції і принцип обробки помилок - необхідно це уточнити.
Ми очікуємо почути такі питання:
- Що повинна повертати функція, якщо її аргумент NULL або зовсім не є числом.
- Яким має бути поведінка функції, якщо аргумент починається з чисел, але закінчується іншими символами, наприклад, "123hello"
- Яке значення або exception повинна повертати функція, якщо її значення більше діапазону, допустимого типом даних int
- Чи необхідна підтримка різних платформ - 32 і 64 біта
- В якій системі числення повинна працювати ця функція? чи достатньо 10-тичний?
- Чи необхідна підтримка негативних чисел? або результат "-1" можна використовувати для позначення помилки виконання.
- чи потрібно ігнорувати whitespaces на початку рядка, якщо так, то які символи можна мати на увазі під whitespaces (пробіл, таб)?
Після отримання наших відповідей ми очікуємо від вас реалізації тіла функції протягом 10-25 хвилин.
Початківцю програмісту (без досвіду) ми пробачимо повна відсутність питань до постановки задачі, але, сподіваємося не зустріти в реалізації функції виклику математичної функції зведення в ступінь pow ().
Від програмістів з досвідом роботи ми очікуємо почути хоча б деякі з перерахованих вище питань і безпечну реалізацію, що містить базову обробку помилок.