Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 20.01.2009, 16:03   #11 (permalink)
Darkcosinus
Member
 
Регистрация: 25.04.2008
Сообщений: 238
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Ну это мы еще можем: y = 15 : x . Во!
Ну-ну, и при x=0 словим division by zero, а при x, ну например, 8 - type mismatch
Darkcosinus вне форума   Ответить с цитированием

Старый 20.01.2009, 16:03
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Наверняка в этих темах есть интересующий вас ответ

Программирование в институте, что это?
Программирование
Программирование
Программирование: с чего начать?

Старый 20.01.2009, 16:34   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Darkcosinus Посмотреть сообщение
Ну-ну, и при x=0 словим division by zero, а при x, ну например, 8 - type mismatch
Тогда надо условие иначе ставить и оговаривать диапазоны и ограничения. А так как Вы сформулировали - всё удовлетворяет! Кидаешь 3 - на выходе 5 и наоборот . Откуда я знаю - может быть там на входе перечисляемый тип с двумя значениями - 3 и 5?

А хотите во всём диапазоне - пожалуйста: y = 8 - x . О как мы могём!

Последний раз редактировалось Vladimir_S; 20.01.2009 в 16:49
Vladimir_S вне форума   Ответить с цитированием
Старый 20.01.2009, 18:39   #13 (permalink)
Darkcosinus
Member
 
Регистрация: 25.04.2008
Сообщений: 238
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А так как Вы сформулировали - всё удовлетворяет!
Эта задача задавалась при приёме на работу в крупную софтверную компанию, в которой за такую фразу уволят в момент Типы данных, диапазоны входных данных - всё это можно было уточнить, а если не уточнить, то написать ограничения.

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А хотите во всём диапазоне - пожалуйста: y = 8 - x . О как мы могём!
Вот это уже правильное решение.
Darkcosinus вне форума   Ответить с цитированием
Старый 20.01.2009, 21:45   #14 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ох, как хорошо, что я не собираюсь устраиваться в крупную софтверную кампанию! А вообще, если серьезно, - не согласен категорически! Программирование - деятельность точная, ибо компьютер понимает всё буквально, и программист очень быстро от него заражается подобным мироощущением. А если заказчик невнятно формулирует задачу и отказывает программисту в приеме на работу по причине неспособности последнего влезть в заказчикову подкорку, то это, полагаю, на совести заказчика - буде таковая обнаружится. В связи с этим предлагаю еще раз разобрать формулировку. Обращаю внимание на пояснение - "очевидные if или case не являются оптимальными", т.е. эти операторы РЕШАЮТ задачу! Но ведь не реально перебирать весь диапазон значений аргумента посредством операторов выбора, а значит предполагается всего два значения - 3 и 5. А раз так, то вариант с произведением ничуть не хуже варианта с суммой.
Простите за оффтоп, но уж если начал... Вот вам этическая задача на базе анекдота. Зайдя в кабинет к начальнику, услужливый подчиненный увидел, что тот пытается запихнуть какие-то бумаги в свежеприобретенный уничтожитель документов, но, очевидно, не знает, как обращаться с аппаратом. Подчиненный, естественно, вызывается помочь, берет бумаги и проделывает всё, как надо. Начальник кивает головой и в конце изрекает: "Мне в двух экземплярах, пожалуйста". Вопрос: кто виноват?
Vladimir_S вне форума   Ответить с цитированием
Старый 20.01.2009, 22:33   #15 (permalink)
Darkcosinus
Member
 
Регистрация: 25.04.2008
Сообщений: 238
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

К сожалению реальные условия работы далеки от идеального о них представления

Комментарий про if и case - мой. В исходном тексте условия его нет. Работодатель проверяет, умеет ли человек оптимизировать код и понимает ли, как это делается, или он просто научился писать алгоритмы. Там остальные задачи ещё хлеще

Из реальных примеров - пожалуйста. Из проекта недельной давности. Есть на сайте меню выбора модели авто, всего ~500 наименований, они все есть в базе данных. База часто обновляется. Делается "чтоб работало" - при вызове скрипта читаются все строки из БД и выводятся в меню. Когда сайт прорекламировался, на него пошли посетители, и несколько выборов и сортировок 500 элементов из БД в секунду элементарно эту БД заваливали.
Работает? Конечно. Чья вина, что сайт заваливается? Заказчика, который не написал в ТЗ, что "сайт должен выдерживать N обращений в секунду"? Вы бы как заказчик стали платить такому исполнителю?

Вернёмся к функции - то, что предполагаются два значения - всего лишь догадка. В крупных проектах программист не пишет всю программу целиком, он разрабатывает модуль. Если другой программист не позаботился о корректности выходных данных своего модуля, которые поступают на вход нашего модуля, а в нашем модуле при неверном параметре происходит format c: /s , то кто виноват в последствиях? Вопрос нелёгкий и неоднозначный, но исключения и их последствия уже как-то сами собой должны всплывать в мыслях при разработке...
Darkcosinus вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 21.01.2009, 10:05   #16 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Darkcosinus Посмотреть сообщение
Из реальных примеров - пожалуйста. Из проекта недельной давности. Есть на сайте меню выбора модели авто, всего ~500 наименований, они все есть в базе данных. База часто обновляется. Делается "чтоб работало" - при вызове скрипта читаются все строки из БД и выводятся в меню. Когда сайт прорекламировался, на него пошли посетители, и несколько выборов и сортировок 500 элементов из БД в секунду элементарно эту БД заваливали.
Работает? Конечно. Чья вина, что сайт заваливается? Заказчика, который не написал в ТЗ, что "сайт должен выдерживать N обращений в секунду"? Вы бы как заказчик стали платить такому исполнителю?
Ситуация интересная. Отвечу так. Поскольку вопрос спорный, я бы не торопился увольнять программиста, а поставил бы ему конкретную задачу по переработке кода, а дальше посмотрел бы, как быстро и эффективно он с этим справится. И если он, скажем, в течение дня сумел бы всё наладить, то никаких претензий к нему я бы предъявлять не стал - напротив, считал бы, что у человека появился опыт, гарантирующий впредь неповторение подобного. Не говоря уже о том, что завал сайта может быть обусловлен вообще слабостью сервера - и тут уж никакой программист не поможет!
Vladimir_S вне форума   Ответить с цитированием
Старый 21.01.2009, 13:04   #17 (permalink)
Darkcosinus
Member
 
Регистрация: 25.04.2008
Сообщений: 238
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну в данном случае оптимизация запросов к БД - долг каждого программиста Потому как возможности баз и серверов, использующихся в веб, известны.
Если он ответит "как задачу поставили, так я и сделал, работает ведь", то я бы такого точно держать не стал.
Фишка в том, что каждый день простоя для магазина - это убытки, сравнимые по стоимости с созданием самого магазина.
В общем с точки зрения программиста и его начальника - программер не имел опыта, теперь заимел. С точки зрения заказчика - работа была выполнена непрофессионалами и потом залатана. Вряд ли обратятся в эту компанию ещё раз.

Вот чтобы отсеять таких программеров, которые будут учиться на ошибках в процессе работы в этой компании, и принять тех, которые уже наделали ошибок в другой компании, и теперь не будут, такие тесты и делаются )
Darkcosinus вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:13.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.