Летопись МИФИ

while (me.alive) you.learn();


ЕГЭ-2024
Тесты ЕГЭ Онлайн
Задачи ЕГЭ по математике
Решения ЕГЭ по математике

Вступительные экзамены и специальности
Фишки для Корума:
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
a b c d e f g h i j k l m n o p q r s t u v w x y z

Рейтинг пользователей Корума
Настроение • Модераторы
Темы • Картина дня • Realtime
Прочие фишки:
Нецензурная брань
Народная орфография
Морзянка онлайн • Калькулятор
Анаграммы • Игра в города

Загрузка календаря

Новые записи

20.05Задача про фермера и его кредит
26.01Актуализация сервисов ЕГЭ по математике 2014 года
05.11Поломалось
28.08Смена парадигмы
18.07Как вести себя в приличном обществе, предварительно обмочив штаны
оглавление »

Лучшие записи

1.Математическое порно1563
2.Ответы ко всем задачам ЕГЭ по математике 2010 года793
3.Тесты ЕГЭ Онлайн515
4.Результаты ЕГЭ по математике368
5.Результаты ЕГЭ по русскому языку268

О чем тут?

NX VBAB Webometrics igjhs А1-08 Абитуриенты Бачинский ВКонтакте Ващенифтему Волга Диплом Дрессировка преподов Дума ЕГЭ Жизнь Забабахал Инновации История Кафедра 26 Кларк Корум Лженаука МИФИ МИФИсты Морзянка НИЯУ Нанотехнологии Наука Образование Омоймоск ПЦ Поздравляю Поиск Президент Преподы Приколы Программное обеспечение Рейтинги Русский язык Сессия Смерть Статистика Стихи Сувениринг Тест Учеба Учебные материалы ФЯУ Физтех Фотки Ядерщики матанализ

Комментарии

День памяти
  20 мая 2023 (мифи умер)

Задача про фермера и его кредит
  20 мая 2023 (Алекс)

Математическое порно
  22 марта 2023 (Angleton)

Российский Союз ректоров
  19 февраля 2023 (Hellen Paul )

В помощь юному радисту: Морзянка 1.0
  13 ноября 2022 (Сергей)

Знахари и шаманы в МГТУ имени Баумана
  5 ноября 2021 (монах из кельи)

Зачет по инженерной графике
  24 августа 2020 (Инженерная графика)

Пасынки Вселенной
  18 февраля 2020 (Max Brown)

Финансовая пирамида за 10 рублей
  7 февраля 2020 (Флора Миллс)

База решений задач ЕГЭ по математике
  26 декабря 2019 (Мария)

$kib@t®onЪ
Сейчас на скибатроне
Шедевры
12 февраля 2010, 17:57:51

Сказка об объектно-ориентированном программировании

Путём длительных размышлений, я пришел к выводу, что чтобы воспитать настоящего программиста, обучение следует начинать чуть ли не с младенческого возраста. Вопрос — как? Ведь книжки по программированию (даже те, что «для чайников») явно не годятся для неокрепших детских умов. И вообще, начинать со всяких «Хеллоу, ворлд» — себя не уважать.

Короче, мой метод — брать быка за рога и приступать сразу к эпическим произведениям. А что для ребенка является самым эпическим произведением? Конечно же, «Сказка о репке»!

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

Экземпляры класса Персонаж программной среды Сказка о репке
Картинка спёрта у Леонида Каганова

Каждый экземпляр класса Персонаж обладает свойствами «имя» и «сила» (сила репки, кто не понял, — это минимальная сила, с которой её можно вытянуть из земли) и методами «посадить» и «позвать на помощь» (оба они, фактически, вызывают функцию-конструктор нового экземпляра этого же класса). Да, вы правы: по идее, должен быть ещё метод «тянуть», но мы его реализуем попозже.

Так вот, про основное действие — то самое воспетое неизвестным автором «тянем-потянем». В этом процессе участвуют сразу несколько экземпляров класса Персонаж, поэтому реализовать его разумно не в виде метода этого класса, а в виде отдельного класса. У него есть свойства «что тянем» (экземпляр класса Персонаж) и «кто тянет» (массив экземпляров класса Персонаж). А также, грубо говоря, один основной метод — определение результата попытки вытягивания при текущем составе участников.

Остался только сам сюжет, который в классическом варианте сводится к следующему алгоритму:
  1. дедка = новый Персонаж;
  2. репка = дедка.посадить(новый Персонаж);
  3. процесс = новый ТянемПотянем(репка);
  4. процесс.включить(дедка);
  5. до тех пор, пока (результат процесса отрицательный, и ещё есть, кого позвать)
       процесс.включить(процесс.последнийВОчереди.позвать(новый Персонаж));
Вот и всё — теперь, если задать правильные исходные данные, то программа в точности повторит эпическую историю о пище и взаимопомощи со счастливым концом.

Но если чуть-чуть поиграться с исходными данными, то... может получиться огромное количество совершенно новых увлекательнейших историй с поистине непредсказуемым финалом!


Нажми на кнопку — будет сказка

P.S. Исходный код (правда, я не особенно щедр на комментарии).

P.P.S. Если у вас не видно никакой кнопочки, или если при ее нажатии ничего не происходит, то вы, скорее всего, читаете эту заметку не на live.mephist.ru.
FaceBook

ранее:
Телекоммуникации 21 ве... Error 404
далее:
Вход и выход

Уже 10 комментариев

вверхвниз
1. Аредель, 13 февраля 2010, 15:03:13
супер)) невообразимый сюжет и фееричный, поучительный финал))) ведь логично же "кто не работает - тот не ест"))))

2. BA3a, 13 февраля 2010, 18:06:44
а почему же они мышку все вместе вытянуть не могут? Как-то нелогично

3. Lexxus, 13 февраля 2010, 23:31:24
а почему же они мышку все вместе вытянуть не могут? Как-то нелогично

Потому что она выросла большая-пребольшая. Там же написано :)

4. BA3a, 14 февраля 2010, 22:37:02
то есть кошка меньше-пременьше мышки вырастает?

5. The END, 14 февраля 2010, 23:48:54
Вот она - верификация абсурда под прикрытием логической концепции валидации декларируемых свойств. Точность поставленного диагноза легко устанавливается по следующим симптомам: дислексией, шизофренией и диафорезом.

6. belkins, 15 февраля 2010, 14:51:25
рода, если доработать то круто будет, а то от лица бабки не смотрится нифига.

7. Lexxus, 15 февраля 2010, 17:10:56
рода, если доработать то круто будет, а то от лица бабки не смотрится нифига.

Так и знал, что кто-нибудь придерётся=)
Будет время - добавлю атрибут "пол", раз уж это так важно))

8. gurka_ju, 25 ноября 2010, 00:14:08
414252 :)

чисто программистская развлекуха:) самое смешное, что я когда-то школьникам базовые алгоритмы как раз на примере сказок и объясняла!!! ну там case , loop - репка, про кощея и его смерть... колобок... но, object oriented - это гениально... а, главное, такая фигня феерическая получaется!!!

9. frelick, 4 февраля 2012, 06:39:45
Интересно было бы взглянуть на картину: Жучка и Кошка лопают Репку... :-)
Ну, а на счёт "кто не работает, то не ест" можно очень долго спорить...

10. Puppet, 29 сентября 2013, 04:03:29
Таким макаром можно целый сборник сказок составить!)


Рейтинг блогов



 

откуда • куда • где • eureka!
Бездарно потраченное время:
105800 дней