- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
В абсолютно всех присланных решениях использовались условные операторы if:
if x = 220
else
endif
Один чел прислал решение xor 220. И его не взял, т.к. решение он подсмотрел.
xor - это классика ассемблера. :)
Держите еще один вариант, тоже классика:
в условии задачи явно есть слово триггер.
триггеры — это устройства с двумя состояниями.
Сферическая лошадь в вакууме.
Напряжение плавает, потому что движение
электронов при нормальных условиях случайно.
Дребезг контактов, системные прерывания,
преобразование типов данных, многопоточность,
взаимодействие между процессами, бывают даже
глюки транслятора языка программирования.
И могут быть другие причины.
---------- Post added 14-03-2015 at 11:12 ----------
Дополнение о сферических лошадях.
https://ru.wikipedia.org/wiki/Ошибка_Pentium_FDIV
Данная ошибка была впервые обнаружена и опубликована профессором Линчбургского колледжа Томасом Найсли в октябре 1994 года[1].
Согласно заявлению Intel причиной проблемы послужили неточности в таблице поиска, используемой при проведении операции деления[2].
Как оказалось, в Intel знали об этой проблеме, но молчали. К тому же в Intel считали, что поскольку этот дефект существенен лишь для узкого круга пользователей (математиков и других ученых), то пользователи, которые хотят заменить процессор, должны обратиться в компанию и доказать, что именно им эта замена необходима.
Стремление производителя утаить проблему и реакция на ее обнаружение вызвали недовольство потребителей и обширную критику в СМИ, в том числе жесткий репортаж CNN. В результате компания изменила позицию и объявила, что будет свободно обменивать дефектные процессоры всем желающим. Энди Гроув принес публичные извинения. История стоила Intel более половины прибыли за последний квартал 1994 г. — $475 млн[3].
Доверьяй, но проверьяй!
(C) Рональд Рейган
Сферическая лошадь в вакууме.
в реальной задаче я бы проверял любые значения напряжения.
у меня сейчас ИБП питания показывает входящее 215в.
но в конкретной задаче на строго поставленном ТЗ в виде триггера - никаких проверок на несоответствие 220 и 0 я делать ни в коем случае не буду.
Я обычно беру какие-то вопросы отсюда, когда набираем людей:
https://github.com/akuzemchak/developer-interview-questions
1. Источник электропитания - y;
Описать принцип кнопки-триггера,
переключающей напряжение 220В - 0В.
в реальной задаче я бы проверял любые значения напряжения.
у меня сейчас ИБП питания показывает входящее 215в.
но в конкретной задаче на строго поставленном
ТЗ в виде триггера - никаких проверок на несоответствие
220 и 0 я делать ни в коем случае не буду.
В этой задаче явно написано,
что переключаем напряжение.
Откуда Вы точно знаете,
какое значение у переменной?
Я выше уже написал, что
может влиять на переменную.
Если у переменной может быть
значение 220, то это уже явно
не один бит, поэтому надо
учитывать все возможности.
220 Вольт есть опасное напряжение,
поэтому если надеяться, что выключено,
когда на самом деле включено,
то могут быть жертвы.
это вы выставляете себя самым умным, хотя аргументы у вас тупые.
на хрена?
в условии задачи явно есть слово триггер.
триггеры — это устройства с двумя состояниями.
поэтому и простой вариант с if x=220 и сложный вариант с xor подходят идеально.
я бы лично предпочел простой вариант, но уже вопросы предпочтений.
вы же из тех заказчиков, которые ставят программисту четкое ТЗ, а потом возмущаются тем, что программист не учел их мысли. откуда программисту знать, что триггер в понимании заказчика это вовсе не триггер?
Дилетант делает так, что бы "работало как надо", профи делает так что бы "не работало как не надо".
После таких как Вы появляются дырявые скрипты.
При чем Вы не правы даже формально по ТЗ. В задаче сказано что 220 должно быть переключено в 0, а 0 в 220. Вариант с 210 не описан, а значит при 210 ничего не должно происходить (или должен быть эксепшен). Ибо это триггер, 220 он переключает в 0, 0 в 220, а на остальные варианты он срабатывать не должен. Оба же варианта срабатывают при 210, первый делает 220, второй вообще какую-то чушь.
С тем же успехом можно забабахать пхп скрипт который на 220 будет выводить 0, на 0 будет выводить 220, а на 15 будет форматировать диск и потом кричать что "по ТЗ же все работает а 15 там не описано"©
Идите лучше дальше в финансах позорьтесь, там это хоть не так очевидно.
edogs
вы глупы, вы это давно доказали.
1. а чем вас if не устроил?
или вы из тех, кому не конечный результат, а красота кода важнее?
2. у меня ребенок сейчас ходит на курсы программирования, ему 10 лет.
я ему всегда говорю - чем проще код, то тем легче его потом понять и изменить.
Не устроил тем, что человек не думал, прежде чем ответить, а наколбасил первое решение, которое забрело ему в голову.
Еще не устроило тем, что if - это слишком тупо. Еще не устроило тем, что знаю более подходящее для сишника решение: x = y - x Вот всё решение. И никаких 5 строк не нужно выдумывать и городить 10 огородов. Одна строка и всё.
1. Не предусмотрена ситуация, когда x оказывается 210 (допустим), задумайтесь об этом.
1. В условиях задачи нет оговорки, что напряжение нестабильно. Но направление мысли очень верное - оградить процедуру от каких только возможно ошибок.
Мужественно рукопожимаю! Держите плюсик.
А судьи кто?
if (x > 110)
x = 0; else
x = 220;
Я без словаря в крестах не разбираюсь. Как в Хатч в masm32 организовал макрос, так я и пишу сейчас.
Судья я. Вот мой пример, прошу критики.
xor - это классика ассемблера. :)
Держите еще один вариант, тоже классика:
:D :D :D Спасибо за мою же собственную цитату самому же мне. :D
Именно об этом случае я и рассказываю.
Я без словаря в крестах не разбираюсь.
Как в Хатч в masm32 организовал макрос, так я и пишу сейчас.
Судья я. Вот мой пример, прошу критики.
Я писал без крестов,
K&R, вот это наше все.
ASM в Вашем образце, культура
кодирования отвратительная.
В самом начале процедуры должно
быть описание, вход, выход, действия.
Комментарии описывают простые действия,
без пояснения зачем нужны эти действия.
Все числовые константы надо
define со смыслом предварительно.
#define ProcedureIndexFile 00020004h
#define LineFeed 0Ah
Константы для условий надо
define именовать обязательно.
#define FileFail 0
#define HeapFail 0
.if eax == FileFail
Зачем вообще ассемблер для этой задачи?
Страдают читаемость и переносимость.
Файловые действия сожрут столько
времени, что вся скорость теряется.
Не обязательно строка файла
заканчивается LF знаком, последняя
строка может быть без LF знака,
Вы такую строку не считаете.
loop LdCoreCfgFileLoop01
inc ebx ; надо считать последнюю строку без LF знака
jmp LdCoreCfgFileComplete01
Выходной код лучше отдавать
в обычном eax регистре.
Можно еще подумать,
но есть другие дела.
Спасибо!
1. Я писал без крестов, K&R, вот это наше все.
2. ASM в Вашем образце, культура кодирования отвратительная. В самом начале процедуры должно быть описание, вход, выход, действия. Зачем вообще ассемблер для этой задачи? Страдают читаемость и переносимость.
3. Не обязательно строка файла заканчивается LF знаком, последняя строка может быть без LF знака, Вы такую строку не считаете.
4. Выходной код лучше отдавать в обычном eax регистре.
1. Что есть K&R?
2. Это не инлайн процедура в сикоде. Это одна из асм-процедур в асм-программе. Весь движок будет на асме.
Там пока 30Кб кода и еще 12Кб в inc-файле всяческих прототипов, макросов, констант, структур и т.д.
3. У меня все предусмотрено. В читаемых файлах последняя строка неудаляемая.
4. Нельзя. В eax содержится код ошибки последней выполненной функции для выходного лога. GetLastError - не вариант.