В свое время физики предложили свою подборку методов решения задачи о
поимке льва в пустыне и помещении его в клетку. А как решают ту же
задачу различные деятели эпохи информационных технологий?
Программист на Паскале
Просматривает пустыню полным перебором. Обнаружив льва, строит вокруг
него клетку.
Опытный программист на Паскале
Сортирует пустыню по возрастанию, после чего ищет льва двоичным поиском
и строит вокруг него клетку. Если в процессе строительства лев уходит,
бросает работу с криком "Range Check Error".
Программист на Си
Ищет в пустыне камень и помещает его в клетку. Присваивает камню
значение "лев".
Опытный программист на Си
Присваивает пустыне значение "клетка".
Программист на Си++
Проектирует клетку таким образом, чтобы лев был ее составной частью. При
инициализации клетки лев автоматически генерируется внутри.
Программист на Аде
Говорит, что лев и клетка - это объекты разных типов, и нечего морочить
ему голову некорректными задачами.
Программист на Дельфи
Пишет во все конференции: "Народ, где взять компонент, который ищет
в пустыне льва и помещает его в клетку?"
Железячник
Покупает в зоопарке львицу, делает ей операцию по смене пола и долго
пытается запихнуть ее в клетку для канарейки.
Геймер-action`ер
Вооружается супердвустволкой, плазмометом, хладометом,
гвоздеметом, роторным пулеметом и бензопилой. Прочесывает пустыню,
разнося все на своем пути. Ищет среди убитых льва и пытается обнаружить
у него в животе желтый ключ. Если находит, отпирает им клетку и стоит в
ней, ожидая перехода на следующий уровень.
Геймер-квестовик
Ищет по всей пустыне льва, находит, кладет в карман.
Затем ищет по всей пустыне клетку, попутно пытаясь засунуть льва в
чайник, башмак, телевизор, ведро с краской и другие попадающиеся на пути
емкости.
Геймер-стратег
Поднимает по всей пустыне налоги, чтобы получить деньги
на строительство клетки и охотничьих юнитов. К моменту окончания
строительства все львы дохнут от голода.
Пользователь интернета
Заходит в свой любимый поисковик, пишет в строке
Search "пустыня", ищет в найденном "лев в клетке". Если не находит,
говорит, что задача неразрешима.
Вебмастер
Заходит в свой любимый поисковик и пишет в строке Search
"пустыня + лев". Создает документ kletka.html и прописывает в нем ссылку
на найденное.
Спамер
Рассылает по всей пустыне множество клеток, к каждой из которых
привязана бумажка: "Если вы лев, пожалуйста, зайдите внутрь и закройтесь
изнутри".
Троянщик
Делает то же, что и спамер, но вместо бумажки снаружи вешает
внутри клетки картинку с голой львицей.
Маркетолог электронного бизнеса
Ставит в пустыне самозапирающуюся клетку. Разбрасывает по всей пустыне
указывающие на нее баннеры "Пробное пользование клеткой - три недели
бесплатно!". Каждого входящего в клетку заставляет заполнить анкету,
и если в графе "Кто вы" из предложенного списка выбрано не "Лев",
сообщает о некорректности введенных данных и вышвыривает вошедшего
вон из клетки.
Админ
Выкапывает вокруг клетки ров, заполняет его концентрированной
кислотой, устанавливает вдоль берега противотанковые ежи и
противопехотные мины, все это опутывает колючей проволокой. К проволоке
и прутьям клетки подключает провода от генератора высокого напряжения.
Вешает на клетку 10 кодовых и 12 амбарных замков. Заходит внутрь,
запирается на все замки, пускает ток, ключи проглатывает, коды забывает
и говорит, что теперь ему никакой лев не страшен.
Хакер
Нейтрализует кислоту щелочью, перекусывает проволоку, проползает
под ежами, перепрыгивает с шестом через мины, отключает ток, взламывает
замки и входит в клетку. Не обнаружив внутри льва, матерится с досады,
дает пинка админу и уходит обратно в пустыню.
'По моим предположением, VB программист найдёт координаты льва через
GetLionCoordinates() 'as pointapi
FindLion (p as pointapi) 'as long
'и установить клетку
CreateCompatibleCage(r as RECT)
Ну да, чтобы про VB-шника не смогли придумать, это наверное у ребят проблемы с фантазией.
VB-шник
Ставит по таймеру на каждую клетку отчего всё жутко тормозит. Рекомендуется сменить среду обитания тигра (например поместить его в воду) чтобы тормоза были не так заметны. В противном случае решение будет найдено лет через 300-400.
За счёт ограничения скорости и маневренности льва можно синхронизировать его с VB и в таймере подтянуть к нему клетку методами Клетка.Left=Клетка.Left-1 и Клетка.Top=Клетка.Top-1
Но так как при перемещении клетки будет заметно неприятное для глаза мерцание, выходит что задача не имеет решения
CyRax
Согласен, а вот как будет действовать опытный ВБ программист:
преобразует клетку (дабы избежать мерцания) в прямоугольник и будет стнхронно двигать 4 точки и проирсовывать BitBlt
Некоторые особо одарённый программисты, которые от природы очень хорошо соображают перестанут мерять пустыню Twip'ами и начнут пикселами )))))))))))
Опытный VB-программист поставит 2 таймера на клетку, отчего программа совсем повиснет. Соответственно он быстрее прийдёт к выводу (как более опытный) что задача не имеет решения.
Специалист по информатике
охотится на слонов выполняя следующий алгоритм А:
begin
{
Едем в Африку
Начинаем на мысе Доброй Надежды
Пересекаем Африку по диагонали
с Юга на Север в направлении c Востока на Запад
Для каждого пересечения делай
{
Лови каждого зверя, который встретится по дороге
Сравни этого зверя со зверем известным под именем "Слон"
}
}
--------------------------------------------------------------------------------
Опытный программист
изменяет алгоритм А, помещая зверя типа "Слон" в Каир, чтобы программа в любом случае закончилась корректно.
--------------------------------------------------------------------------------
Программист на Ассемблере
предпочитает выполнять алгоритм А на четвереньках.
--------------------------------------------------------------------------------
SQL-программист
применяет следующее выражение:
SELECT слон FROM Африка
--------------------------------------------------------------------------------
Программист-естествоиспытатель
оставляет отлавливание слона ADABASу
--------------------------------------------------------------------------------
LOGO-программисты
скачут через Африку на своих черепашках.
--------------------------------------------------------------------------------
COBOL-программисты
делают это на динозаврах.
--------------------------------------------------------------------------------
BASIC-программисты
предпочитают отделанный бархатом экипаж с постоянно включенным ручным тормозом.
--------------------------------------------------------------------------------
Программисты на Си
определяют для начала с функцией sizeof() необходимое пространство для слона, пытаются это пространство аллокировать, забывают при этом проверить результат и после этого стреляют по слонам дикими указателями.
--------------------------------------------------------------------------------
Программисты на Си++
утверждают, что слон есть класс и по сему должен метод его отлавливания в себя включать. И если слон покидает Африку, то автоматически вызывается его деструктор.
--------------------------------------------------------------------------------
PASCAL-программисты
помечают на карте Африки произвольный пункт точкой, затем пишут перед ней END и мечтают при этом, что Никлас Вирт будет до смерти затоптан каким-нибудь слоном.
--------------------------------------------------------------------------------
MODULA-программисты
импортируют слона из зоопарка.
--------------------------------------------------------------------------------
LISP-программисты
строят лабиринт из множества скобок и надеются, что слон в них заблудится.
--------------------------------------------------------------------------------
Специалисты по математике
попытаются сначала доказать существование хотя бы одного однозначного слона перед тем как перейти к шагу 1 подчиненного задания.
--------------------------------------------------------------------------------
Профессор математики
доказывает существование хотя бы одного однозначного слона, а задачу поиска и отлавливания реальных слонов оставляет своим студентам.
--------------------------------------------------------------------------------
Инженеры
охотятся на слонов выезжая в Африку, вылавливая каждого серого зверя, который перебегает им дорогу и считая слоном каждого, вес которого не более чем на 15% отличается от одного из пойманых перед этим "слонов".
--------------------------------------------------------------------------------
Экономисты
принципиально не охотятся на слонов. Они убеждены в том, что слоны сами сдадутся, если им достаточно заплатить.
--------------------------------------------------------------------------------
Специалисты по статистике
охотятся на первого животного, которого они n-раз видели и называют его "слон".
--------------------------------------------------------------------------------
Советники по экономике
не охотятся на слонов. И многие из них никогода ни на кого не охотились. Но их можно нанять за приличную почасовую оплату, чтобы те давали вам умные советы.
--------------------------------------------------------------------------------
Системные аналитики
теоретически в состоянии определить корреляцию между размерами охраны и числом попаданий при охоте на слонов, если кто-нибудь объяснит что есть слон.
--------------------------------------------------------------------------------
SAP-системные инженеры
объявят самого лучшего животного слоном и подстроят свои представления о слоне под это животное.
--------------------------------------------------------------------------------
MICROSOFT
покупает в Сиэттле одного слона в зоопарке, копирует его в массовых количествах и внушает всем в мире, что это то что необходимо каждому и является идеальным дополнением к MS Office и экспортирует 14Млн. штук в Африку.
просто на фоне этого запроса те тривиальные два вложенных паскалевских цикла выглядят уже не как единственный и верный способ лечения всех болезней
Хотя это вроде бы как классика