Forth
http://fforum.winglion.ru/

Самозапросы на форт-софт
http://fforum.winglion.ru/viewtopic.php?f=2&t=3130
Страница 2 из 6

Автор:  _KROL [ Вс сен 03, 2017 20:46 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

http://www.cyberforum.ru/asm-beginners/thread1429828.html
Спасибо! Там ещё полезны кое-какие комменты, к примеру
Цитата:
format binary as exe

А ещё фраза "Сам себе Iczelion" открыла мои глаза на:
http://www.cyberforum.ru/assembler/thread751124.html
Там и про PE-файлы есть ;)

Автор:  _KROL [ Вс сен 03, 2017 20:56 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

В дополнении оттуда супер-pdf! (для скачки просто там нужна регистрация)

Вложения:
PE101-v1RU.PDF [530.34 Кб]
Скачиваний: 680

Автор:  Ethereal [ Пн сен 04, 2017 01:15 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

_KROL писал(а):
А ещё фраза "Сам себе Iczelion" открыла мои глаза на:
Это творение Mikl-а. Его на том форуме забанили решением администрации. Мы пытались заступиться, но было бесполезно. Впрочем, я сам на том форуме в нарушителях.
Причина - в форум постоянно приходят студиозы и тупо постят условие задачи. Иногда даже без "пожалуйста, помогите". Просто "Дано ... Надо ...". Реакция у нас была такая - или покажи свои наработки, хоть какие-нибудь и тогда поможем или go, фрилянс. go. А политика администрации состояла в том, чтобы таких "педагогов" разогнать и поощрить тех, кто делает задачи за бесплатно и даже без "спасибо". Администрация победила. А Mikl был главным "педагогом".

Автор:  gudleifr [ Пн сен 04, 2017 09:20 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Им, видите ли, навеяло... http://gudleifr.forum2x2.ru/t35-topic.

Автор:  Ethereal [ Пн сен 04, 2017 17:47 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Развернул бы эту свою мысль :
2. Объектно-ориентированное программирование - болезнь, а глядя с высот FORTH - болезнь детская.
А то я никогда даже не писал на ООП и когда говорю похожее на меня смотрят как на троглодита. А поскольку я на ООП и не ООП-ил никогда, то приходится в ответ мычать ибо выстраданных аргументов нет. А не ООП-ил потому-что с какой стороны на это ООП ни смотрел, никак не мог понять в чем тут фишка ? Всегда по впечатлению выходило, что идея какая-то ни о чем.

Автор:  gudleifr [ Пн сен 04, 2017 18:11 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Ethereal писал(а):
Развернул бы эту свою мысль


Из "заметок":

Я знаю три пути использования ООП:

Первый путь - классический. Представления мира, в котором живет программа, в виде строгой иерархии "объектов". Если один объект является частью другого, считается, что в реальном мире этому соответствует связь "part_of" - "крыло - часть птицы", если же объект наследуется от другого - "is_a" - "аист тоже птица" (и значит, у него тоже есть крылья). По идее, такой подход должен давать возможность программе свободно ориентироваться в сложном мире и писаться на естественном языке.
Но, ловушка здесь в прилагательном "строгая" в первой строке. Допустим, я построил эту самую иерархию и написал нужную мне программу. И тут, как обычно, мне понадобилось ее изменить. Фигушки!
Во-первых, т.к моя иерархия изначально "глубоко продуманная", то как я заставлю себя ее перекроить? Не то, чтобы жалко, но просто мозги так не повернуть, чтоб "систему мира" переделать.
Во-вторых, во всех существующих системах ООП, переделка "мира" вещь практически неосуществимая, вызывающая лавинообразный рост ошибок.
Поэтому первый путь, столь любимый классиками, в дикой природе практически не встречается.

Второй путь - быдлокодерский. Как "современный программист" решает задачу? Он ищет подходящую библиотеку. А для удобства применения сложных библиотек тупыми кодерами, первые естественно снабдить этой самой, описанной выше "иерархией".
"Найти в окне X кнопочку Y и запретить ее нажатие" == X.Y.ЗАПРЕТИТЬ().
"Сделать еще такую же кнопочку, но разместить левее" == Z-КЛАСС УНАСЛЕДОВАТЬ-ОТ Y-КЛАСС; Z-КЛАСС:РИСОВАТЬ()={ПРЕДОК.РИСОВАТЬ(); ПРЕДОК.СДВИНУТЬ-ВЛЕВО();}; Z=НОВЫЙ-ОБЪЕКТ Z-КЛАСС;"
Как-то так...
И многие "соврменные бейсики" этот механизм в себе имеют. Еще один стимул применения подобной схемы: вся привычная визуальная фигня - окошки, рамочки, кнопочки, прокрутки и менюшки - еще в 70-е годы прошлого века была создана объектно-ориентированной. И остается такой по настоящее время.

Третий путь - обфускационный - "чтоб как у людей". Просто группирование разнообразных данных, а, если поднапрячься, и кода, в одном месте. Чтоб было! Как это работает, см. - http://gudleifr.forum2x2.ru/t18-topic. Доходит до смешного - "объектные программисты" утверждают, что правильные отступы в "елочках" (избыточно вложенных вариантах) и "матрешках" (избыточно вложенных циклах) позволяют им понимать программу не читая (!), а только бегло просматривая.

Автор:  Ethereal [ Пн сен 04, 2017 20:01 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

А в чем ржач то был ? Там аналогичные решения были :
We are given 5 integer numbers.
Write a program that checks if the sum of some subset of them is 0.
and return true if any subset founded has sum=0 else false
Код:
CREATE DATA 5 , 7 , -2 , -6 , -3 ,

: ZADACA
  ( -- flag )
  0
  32 1 DO
    5 0 DO
      1 I LSHIFT J AND IF
        DATA I CELLS + @ +
      THEN
    LOOP
    0= DUP IF LEAVE THEN
  LOOP
;

ZADACA . BYE
А лучше ничего и не придумывается.

Автор:  gudleifr [ Пн сен 04, 2017 20:13 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Ethereal писал(а):
А в чем ржач то был ?
В том, что ОО-программист не может прочесть 8 строчек кода, пока не приведет в привычную ему форму - строк на 100.

Ethereal писал(а):
А лучше ничего и не придумывается.
В смысле хуже? Явно видны два огреха - константы 5 и 32 стали независимыми. Структура программы не зависит от задачи. Я, ведь, в BASIC дал подсказку: один и тот же итератор используется трижды.

Автор:  Ethereal [ Пн сен 04, 2017 20:17 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

gudleifr писал(а):
Явно видны два огреха - константы 5 и 32 стали независимыми.
Если бы в задаче было "n чисел", но ведь сказано "дано 5". Не надо решать в общем виде, если этого общего вида в задаче не существует. Общий вид, там где он не нужен, только захламляет исходник. Всякие объявления констант не нужные.
gudleifr писал(а):
Структура программы не зависит от задачи.
Она соответствует данной конкретной задаче. Вам шашечки или ехать ?
gudleifr писал(а):
Я, ведь, в BASIC дал подсказку: один и тот же итератор используется трижды.
В примере на Бейсике ПЯТЬ операторов FOR. У меня два DO. Мыслить надо проще.

Автор:  gudleifr [ Пн сен 04, 2017 20:25 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Ethereal писал(а):
сказано "дано 5".
Но "дано 32" не сказано. Зачем усложнять жизнь читателю?

Автор:  gudleifr [ Пн сен 04, 2017 20:28 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Ethereal писал(а):
Вам шашечки или ехать ?
В данном случае Вы пишете "на показ". Но, показывать нечего. Показать правильность Вашего решения можно только решив самому заново.

Автор:  Ethereal [ Пн сен 04, 2017 20:32 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

gudleifr писал(а):
Зачем усложнять жизнь читателю?
А читатель - это кто ? Тот, кто хочет спереть твой исходник и выдать за свой ? Тогда зачем облегчать ? Другие читатели мне не встречаются.
И потом, в гробу я видел таких читателей, для кого не очевидно, что 2^5 = 32. Этим ничего не облегчишь.
gudleifr писал(а):
Но, показывать нечего.
С удовольствием посмотрел бы на решение проще. Проще, для меня, это быстрее по скорости или меньше по размеру кода. Другие критерии - это стремление в никому не нужную сторону.

Автор:  gudleifr [ Пн сен 04, 2017 20:36 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

Ethereal писал(а):
В примере на Бейсике ПЯТЬ операторов FOR. У меня два DO. Мыслить надо проще.

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

Ethereal писал(а):
И потом, в гробу я видел таких читателей, для кого не очевидно, что 2^5 = 32.

Да Вы сами, через месяц будете вспоминать, зачем 2 в пятую степень возводили...

Автор:  _KROL [ Пн сен 04, 2017 20:38 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

gudleifr писал(а):
Да Вы сами, через месяц будете вспоминать, зачем 2 в пятую степень возводили...

Ну, кто как видит ;)
И зачем "грызётесь"? Других дел нет что-ли?
P.s. Олимпиадные задачи можно тоже по разному решать...
P.p.s. Да и к основной теме оно мало относится.

Автор:  Ethereal [ Пн сен 04, 2017 20:41 ]
Заголовок сообщения:  Re: Самозапросы на форт-софт

gudleifr писал(а):
Ethereal писал(а):
останавливается после нахождения первого нуля
В условии сказано "любое подмножество". Подмножество из одного элемента подпадает под условие. Про расшифровку результата в условии задачи нет букав. Только про возвращаемый флаг TRUE/FALSE.
gudleifr писал(а):
Да Вы сами, через месяц будете вспоминать, зачем 2 в пятую степень возводили...
Наоборот буду париться зачем
5 CONSTANT N
написал, коли в этом нет никакого смысла.
gudleifr писал(а):
Во-первых, не пять, а два!
А, это во втором варианте "для эстетов". Так там тот-же самый алгоритм (если выкинуть ввод данных и вывод результата), что и у меня - внешний цикл 1..31, внутренний 5 раз со сдвигом единицы и наложением маски.

Страница 2 из 6 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/