Pull to refresh
  • by relevance
  • by date
  • by rating

«Детская» задачка для программистов

MetaQuotes Software Corp. corporate blog
В процессе разработки наших программных продуктов перед нами часто встают задачи для решения которых требуются глубокие знания языка C++, принципов работы компиляторов и процессоров.

Нашей компании нужны программисты, которые умеют решать подобные задачи.

Например одна из таких задач: не компилируя этот код (очень важно решить ее в голове) скажите сработает ли когда-нибудь вывод «BINGO»?
Читать дальше →
Total votes 39: ↑25 and ↓14 +11
Views 3.2K
Comments 118

Задачки для веб-сёрферов

Entertaining tasks
Лет десять назад, когда интернет был диковинкой, я мошенничал тем, что участвовал в различных теле- и радиовикторинах, используя свой доступ в сеть. То есть не знал ответы на вопросы, а просто очень быстро умел находить их в интернете. Что позволило мне несколько раз выиграть билеты в кино, пару книжек и компакт-дисков, и разок появиться на местном телевидении. Все эти навыки пригодились в жизни — я и сейчас по просьбам друзей нахожу в Сети требуемое. «Если оно есть в интернете, говорю я им, то я это вам найду». Впрочем, не сочтите это за хвастовство. Уверен, что многие умеют быстро находить любую требуемую информацию.
И вот в связи с этим мне подумалось как-то: а почему бы не сделать хитроумных задачек в стиле, скажем, «Своей игры» или «Что? Где? Когда?», но специально для тех, кто любит и умеет искать в интернете.
И я начал сочинять такие задачки. Кому-то из моих знакомых они не понравились вовсе, кто-то почесал репу и остановился на середине пути. А кому-то понравилось, и они потратили несколько минут (или часов) своего драгоценного времени на разгадывание этих головоломок.
Если у вас есть свободное время, есть навыки поиска информации и вы хотите попробовать свои силы — попробуйте разгадать несколько таких задачек.
Всё, что для этого нужно — базовые знания, Google, Wikipedia и другие ваши любимые источники информации.
Задачки можно разгадывать сразу с хвоста, опустив начало. Я бы рекомендовал всё же разгадывать последовательно, от начала до конца. Тогда разгадывание может оказаться более интересным. Потому как здесь цель — не скорость и не точность лишь финального слова, а раскрытие всей цепочки целиком.

ЗАДАЧКИ ПОД КАТОМ
Total votes 81: ↑69 and ↓12 +57
Views 417
Comments 56

Две интересные задачи

Lumber room

1. Мотоциклист и верховой



На аэродром к прибытию самолета был выслан мотоциклист из почтового отделения.
Самолет прибыл раньше установленого срка, и привезенная почта была направлена в почтовое отделение
с верховым. Проехав полчаса, верховой встретил мотоциклиста, который принял почту, и, не задерживаясь, повернул обратно.
В почтовое отделение мотоциклист прибыл на 20 минут раньше, чем следовало.
На сколько минут раньше установленого срока самолет прибыл на аэродром?
Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Views 268
Comments 22

С#: Этюды, часть 1

.NET *
На канале c# в irc-сети Руснет пытаюсь развлекать людей т.н. этюдами. Это — короткие задачки, для решения которых требуется знать некоторые тонкости языка и реализации, и которые совсем не очевидны для человека, с упомянутыми тонкостями не знакомого.
Этюд номер 1 каналом уже разгадан, но хабросообщество его пока, скорее всего, не знает.
Читать дальше →
Total votes 56: ↑36 and ↓20 +16
Views 1K
Comments 43

C#: Этюды, часть 2

.NET *
Продолжение, начало здесь

Начну с соцопроса: какие Вы знаете способы выполнить код до начала функции Main() (надеюсь, что перечислят все известные мне и парочку неизвестных :) )?

А теперь задачка:

Перед Вами небольшой код, выводящий два символа (кстати, проверьте себя: в каком порядке они выведутся?). Необходимо вывести подчеркивание "_" между этими символами.
Конечно, задача была бы тривиальной без ограничений. А они следующие:

Читать дальше →
Total votes 25: ↑17 and ↓8 +9
Views 1.4K
Comments 43

C#: Этюды, часть 3

.NET *
В предыдущей части было предложено три разных по своей сути решения.

Сегодня — новая загадка, из области ASP.NET. Её основное отличие от предыдущих в том, что я столкнулся с ней в реальной ситуации, и пришлось потратить время, чтобы разобраться, в чем же дело.

Итак, на странице Test.aspx имеется код:


Читать дальше →
Total votes 61: ↑34 and ↓27 +7
Views 1.3K
Comments 76

C#: Этюды, часть 4

Lumber room
Продолжение, предыдущая часть здесь

Итак, сегодня мы с Вами с помощью молотка и лопаты попытаемся сделать трепанацию черепа влезть во внутренности .NET.

Имеется простейший класс: class X { public int Val; }. При создании объекта этого класса какой реальный размер он будет занимать? И какие значения будут содержать дополнительные поля? Предъявите доказательство в виде кода на C# ;)
Читать дальше →
Total votes 18: ↑13 and ↓5 +8
Views 283
Comments 41

C#: Этюды, часть 5

Lumber room
Хабраюзеры нашли решение предыдущего этюда, но я решил вдобавок продемонстрировать свое (там же)

С внутренностями .NET пока остановимся, потому что придумать этюд на эту тему оказалось несколько сложнее, чем я думал: не хватает элемента неожиданности, ощущения «нерешаемости» задачи.

У сегодняшней задачки, надеюсь, с этим все будет в порядке :)
Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Views 188
Comments 17

C#: Этюды, часть 6

Lumber room
Со времени последнего этюда прошло очень много времени, но я надеюсь, что хабраюзеры не успели утратить интерес к C#.

В этот раз задачка довольно простая, но новичкам в шарпе она может оказаться полезной. Есть следующий код:
Читать дальше →
Total votes 18: ↑13 and ↓5 +8
Views 205
Comments 30

C#: Этюды от Эрика Липперта

.NET *
Возможно, вам нравятся головоломки и C#, и, может быть, вы даже решали некоторые из них в моем блоге здесь, на Хабре.

Теперь у вас есть возможность попробовать свои силы в решении головоломок более высокого уровня.

Если вы не слышали о парне по имени Эрик Липперт, то очень советую почитать его блог. Эрик — один из разработчиков компилятора C# и часто пишет о разных необычностях и странностях в работе компилятора и среды исполнения .NET, а главное, объясняет причины такого поведения. Он пишет настолько интересно и увлекательно, что у его блога даже есть перевод на русский.

В своей записи от 8 июля Эрик дает ссылку на видео, в котором он и Neal Gafter (который также является одним из разработчиков платформы .NET) рассматривают несколько головоломок на языке C#. Пока я успел посмотреть только три из них, но мне уже нравится их уровень. (Внимание: за каждой головоломкой идет ответ, если хотите подумать самостоятельно, не забывайте нажимать на паузу)

Рекомендую всем, кто хочет расширить свой познания в C#/.NET.

UPD: поскольку с отображением видео есть определенные проблемы, можно скачать видео напрямую. Для этого идем сюда, вводим в строке поиска puzzlers и выбираем справа Download

UPD2: проблемы с воспроизведением видео на исходном сайте скорее правило, чем исключение, поэтому я залил файл на файлообменник: depositfiles.com/files/7ej8pu7zt
Total votes 63: ↑40 and ↓23 +17
Views 1.3K
Comments 14

C#: Этюды, часть 7

.NET *
Сегодня простой этюд, почти без кода.

Допустим, есть некий класс и его статический конструктор:
static C()
{ Console.WriteLine("from static ctor"); }

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

В общем, все очень сложно. Тем не менее, напишите код, который гарантированно вызывает указанный выше статический конструктор как раз в нужном месте.

Console.WriteLine("before static ctor");
// нужно вызвать здесь
Console.WriteLine("after static ctor");
Total votes 32: ↑22 and ↓10 +12
Views 1.7K
Comments 60

Задачка про саммит G50 и рукопожатия

Entertaining tasks Mathematics *
Мой друг получил письмо от рекрутера, ведущее на сайт с такой задачкой:
На саммите большой пятидесятки собрались представители пятидесяти государств. От каждого государства присутствовал президент и премьер-министр. В перерыве между [дискуссиями] участники обменялись дипломатическими рукопожатиями, при этом, так как рукопожатия совершались в дипломатических целях, ни один президент не обменивался рукопожатиями с премьер-министром своей страны.

На званом обеде, посвящённом закрытию саммита, президент Анчурии опросил всех участников, кто сколько сделал рукопожатий, и не получил ни одного повторяющегося ответа. Сколько рукопожатий сделала премьер-министр Анчурии?

Как оказалось, задача имеет единственное решение.
Spoiler!!! Решение под катом
Total votes 59: ↑49 and ↓10 +39
Views 11K
Comments 33