OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 14:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 135 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 21:48 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Цитата:
А где гарантии, что человек не запутается в таком условии (что и имело место в данном случае)?

Запутаться в условии линейного поиска - это как в трёх соснах... А где вообще гарантии, что человек хоть что-то умеет. Конечно, таковых нет. Давайте ориентироваться на тех, кто не умеет, и отменим всю специальную нотацию. Формулы вообще, например. И будем писать всё словами.

Цитата:
локальные переменные процедуры (смысл которых все равно не ясен)

А чего его понимать. Единственный смысл переменных цикла - соответствие инварианту и схождение от начального вектора значений к требуемому результату. Если понятие инварианта пустой звук для человека, то и возникают проблемы при попытке изображать из себя контупер и по шагам выполнять цикл. Вместо того, чтобы сразу видеть, решением чего он является.

Спорить смысла нет. У Вас сложившийся стиль составления программ. Свои задачи Вы успешно одолеваете за счёт накопленного чутья - и вперёд с песней... Речь же идёт о подготовке молодых программистов, изначально ориентированных на другой способ мышления.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:05 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Евгений Темиргалеев писал(а):
У студента может код и мясной, ну куда уж ему... А у Вас, Vlad, мясные рассуждения применительно к образованию. Так что шли бы Вы лесом...


Я про образование вообще ничего не говорил. Я даже не против идеи обучения на обероне :) И я не против акцентов на Дейкстре. Я против догм.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:13 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
При чём тут догма.

Есть некоторый уровень понимания вопроса (алгоритмизации, в данном случае), при котором одно представляется грамотным (потому что является проекцией с того уровня), а другое - нет (потому что нет таких ситуаций на верхнем уровне мышления, которые давали бы такие "тени" на нижнем).

Тому, кто не учитывает тот над-уровень, эти рассуждения о грамотности-безграмотности будут казаться догмой. Для другого же очевидно, что ни в каком случае его мысль не даст проекции, например, в FOR-BREAK. Так же, как компиляция с ЯВУ не даст некоторых последовательностей двоичного кода, которые могут быть написаны вручную.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:27 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Vlad писал(а):
Я про образование вообще ничего не говорил...
Да. Вы просто форумом ошиблись. В который раз...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
При чём тут догма.


При том, что в данном случае FOR/WHILE вообще не причем. А вы усиленно вдалбливаете в неокрепший мозг, что именно это корень всех зол :)

Илья Ермаков писал(а):
Тому, кто не учитывает тот над-уровень, эти рассуждения о грамотности-безграмотности будут казаться догмой. Для другого же очевидно, что ни в каком случае его мысль не даст проекции, например, в FOR-BREAK. Так же, как компиляция с ЯВУ не даст некоторых последовательностей двоичного кода, которые могут быть написаны вручную.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:33 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Евгений Темиргалеев писал(а):
Вы просто форумом ошиблись. В который раз...


Да отстаньте вы уже... Не читайте мои сообщения и все.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:44 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Если результатом этого "над-уровня" является "хреновый код" (в терминах читабельности), то значит это хреновый над-уровень, и его надо дотачивать соответствующими поправками.

Читабельность в условиях знания над-уровня и без него совершенно разная. Вы либо будете узнавать паттерны, либо нет. Почитайте какой-нибудь текст с формулами, не зная ничего про то, что описывают эти формулы. Тоже будет очень хреново. Это как обиженный студент на физмате, пропустивший месяц и потом пришедший на семинар, смотрит на доску и плюётся: "чёртовы формулы, ну какой дурак их придумал... Совсем ничего не понятно. Неужели нельзя без них?"

"Дотачивать" - ну да. ИТ-шники только и занимаются тем, что дотачивают модели под уровень реализации. Протаскивая нижележащую дрянь наверх, вместо того, чтобы делать наоборот.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
При том, что в данном случае FOR/WHILE вообще не причем. А вы усиленно вдалбливаете в неокрепший мозг, что именно это корень всех зол :)

В данном случае "причём" то, что была допущена ошибка при проектировании процесса поиска (т.е. его условия). Вместо анализа была предпринята наивная попытка "обойти подбором". WHILE для побора не подошёл, рука сразу потянулась к FOR, а там и RETURN приклепался.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Vlad писал(а):
При том, что в данном случае FOR/WHILE вообще не причем. А вы усиленно вдалбливаете в неокрепший мозг, что именно это корень всех зол :)
Опять ахинея какая-то.

Речь о банальном обучении пользоваться схемой поиска и формальной логикой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 22:59 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Читабельность в условиях знания над-уровня и без него совершенно разная. Вы либо будете узнавать паттерны, либо нет.


Вы сейчас говорите не о читабельности а о писабельности :) Вы взяли Дейкстру, взяли формулу, и записали все это без придумок соответствующими паттернами. Да, при таком подходе ошибок будет намного меньше, чем при подходе "методом тыка". Я с этим не спорил и вообще я только за четкое понимание того, что пишется :) Но к читабельности "результата" такой подход имеет лишь опосредованное отношение.

Илья Ермаков писал(а):
"Дотачивать" - ну да. ИТ-шники только и занимаются тем, что дотачивают модели под уровень реализации. Протаскивая нижележащую дрянь наверх, вместо того, чтобы делать наоборот.


Какую такую нижележащую дрянь? :) Или вы это так - "Карфаген должен быть разрушен"? :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:02 

Зарегистрирован: Суббота, 28 Март, 2009 17:27
Сообщения: 22
Спор не о чем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:06 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Но к читабельности "результата" такой подход имеет лишь опосредованное отношение.

Тяжко вздохнув... Давайте на примере. Если Вы знаете правила, по которому транслятор переводит некоторые в ассемблер, Вам будет легче читать и восстанавливать исходную идею, чем если Вы ожидаете любых возможных сочетаний команд? Только тут ЯВУ - это законы "обсчёта" алгоритмов, транслятор - голова грамотного программиста, а ассемблер - язык программирования. В случае Оберона - с созданными намеренно затруднениями для "вольных изысков".

Цитата:
Илья Ермаков писал(а):
"Дотачивать" - ну да. ИТ-шники только и занимаются тем, что дотачивают модели под уровень реализации. Протаскивая нижележащую дрянь наверх, вместо того, чтобы делать наоборот.

Какую такую нижележащую дрянь? :)

Этак мы очень далеко от темы ветки уйдём. Посмотрите на морально устаревшие архитектуры ОС, тащащиеся из 70-х годов, хотя бы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:18 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Тяжко вздохнув... Давайте на примере. Если Вы знаете правила, по которому транслятор переводит некоторые в ассемблер, Вам будет легче читать и восстанавливать исходную идею, чем если Вы ожидаете любых возможных сочетаний команд?


Да тут речь не о сочетаниях, а о количестве команд. Вы искусственно сужаете это количество. Это может помогать пониманию, а может наоборот стирать исходную идею. Зависит от. Идея FOR - итерирование по заранее известному диапазону. В данном примере она очень даже в тему: итерирование - отдельно, проверка специфичного условия - отдельно. Вы же все этого сужаете до обобщенного WHILE со зверским условием, из которого при чтении надо выдирать итерирование и "полезную" проверку, чтобы понять что происходит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:29 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Обсуждение от kim241 вынесено в Отвлечённые:
viewtopic.php?f=12&t=1449


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:30 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Вы же все этого сужаете до обобщенного WHILE со зверским условием, из которого при чтении надо выдирать итерирование и "полезную" проверку, чтобы понять что происходит.

Опять 25... Ничего выдирать не надо. Надо узнавать шаблон в лицо. Который на каждом шагу.

Никакого полного итерирования "в диапазоне" нет. Есть процесс, идущий от начала до конца. Формулируется конец. Более того, формулируется по готовому шаблону, который от зубов отлетает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:40 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Опять 25... Ничего выдирать не надо. Надо узнавать шаблон в лицо. Который на каждом шагу.


Надо. Конкретно - итерирование. В WHILE его не видно.

Илья Ермаков писал(а):
Никакого полного итерирования "в диапазоне" нет.


Конечно нет. Потому что RETURN стоит в середине. Вы же не будете утверждать, что RETURN увидеть труднее, чем найти INC(i) + проверку диапазона в обощенном WHILE и убедится, что эта i больше нигде не изменяется и никуда не отдается по ссылке? :)

P.S. Только не надо опять начинать про то, что такие вольности (RETURN из FOR) позволяют писать кошмарный код. Да, позволяют. Но и более читабельный, чем обощенный WHILE - тоже позволяют.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 06 Апрель, 2009 23:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Если виден RETURN, то это сразу напрягает. Ибо нет никакой уверенности, что цикл составлен верно. Мало ли, чего "напартизанили" там. Приходится удваивать внимание.

Короче, придёт новое наученное поколение - и никаких проблем у него не будет. Старого кобеля, как говорится.. :) Даже если он борозды не портит... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 08:02 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Илья Ермаков писал(а):
Если виден RETURN, то это сразу напрягает. Ибо нет никакой уверенности, что цикл составлен верно.
Крамольная мысль - а чем по существу паттерн поиска через while лучше, чем паттерн итератора с досрочным выходом?

Мне почему-то представляется, что они оба есть не более чем варианты технической реализации идеи поиска... Каждая реализация со своими особенностями. Плюсами и минусами.

Меня интересует когнитивно-эргономическая точка зрения.
Если средство программирования поддерживает конкретный паттерн, то без разницы, какой именно.
Если не поддерживает, то вероятность ошибиться в том и в другом случае априори одинакова.

Ещё раз подчеркну мысль, что суть (путь математическая) и конкретная реализация модели - вещи разные.

P.S. Возможно, я недооцениваю важности инварианта. Мне кажется, что в данном случае он больше является атрибутом конкретной реализации, чем сути задачи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 08:37 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Илья Ермаков писал(а):
Vlad писал(а):
Если результатом этого "над-уровня" является "хреновый код" (в терминах читабельности), то значит это хреновый над-уровень, и его надо дотачивать соответствующими поправками.

Читабельность в условиях знания над-уровня и без него совершенно разная. Вы либо будете узнавать паттерны, либо нет.

Здравая мысль. Но не кажется ли вам, Илья, что паттерны вполне можно заучивать и на С++? Из опыта преподавания первокурсникам разных языков знаю, что первый язык программирования учится как первый иностранный. Что заучат - то и помнят.
Дело не в языке, а в преподах.
Сам грешен - увлекался финтифлюшками С++ в ущерб правильной постановке мозгов.

Вижу только одно существенное преимущество Оберона перед С++ в этом плане: конструкция модуля со всеми вытекающими.

А строить прогу "под доказательство" - в этом С++ и Оберон совершенно эквивалентны.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Апрель, 2009 08:47 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Alexey_Donskoy писал(а):
Илья Ермаков писал(а):
Если виден RETURN, то это сразу напрягает. Ибо нет никакой уверенности, что цикл составлен верно.
Крамольная мысль - а чем по существу паттерн поиска через while лучше, чем паттерн итератора с досрочным выходом?


Позвольте вбросить свои 5 копеек.
Если речь идёт о конкретном FOR с RETURN, то существо тут, на мой взгляд такое. Когда человек с кем-то договаривается, то от него ждут выполнения оговоренных условий. Если этот человек посередь рабочего процесса сруливает пивка попить, то отношение к нему изменится и необязательно в лучшую сторону.
Когда пишется текст (я акцентирую - именно текст), описывающий FOR, то это, по сути, договор между писателем и читателем - на выполнение заданного количества итераций. Когда же писатель (как в плохом детективе, достаёт рояль из кустов) делает внезапный выход через RETURN, то это называется "семь пятниц на неделе" или попросту, "кидалово" (сорри за словечко).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 135 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB