OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 13:03

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




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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Peter Almazov писал(а):
А "линейный поиск" придумали толкователи, чтобы легче было объяснять [тупым студентам].
Ну, к пример, у меня это было сначала для себя понято. Потом уже для студентов. Они, кстати, не тупые настолько, насколько нужно быть нетупым, чтобы рассекать квантовую теорию поля.

(Кстати, начало научного подхода -- классификация, а не обобщение.)

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


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

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
С какой целью было введено понятие линейного поиска? Ведь его не было у отцов основателей.
Да чтобы понаглядней донести концепцию до слушателей. Выходит, что трудов отцов-основателей для них недостаточно, им надо посильнее разжевать. Это тема, действительно, плохо доходит до большинства, знаю по опыту. Вот в этом смысле я и употребил термин "тупые". А студентов, конечно, нехорошо обижать, приношу им свои извинения.

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


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Сергей Губанов писал(а):
> ... Не люблю ...

Вот и всё объяснение. Зато честно.


А насчёт окончания фразы как? )) Держать IF на один раз - это как в линейном поиске через FOR... Смотрится так же коряво.


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

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Данном случае линейный поиск как раз подходит.
Процессор выбирает элементы последовательности до тех пор, пока не обнаружит стоп или неверный элемент.
И кстати, это и похоже на инвариант
ИМХО - как раз. Только последовательность бесконечная.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Май, 2009 14:32 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Илья Ермаков писал(а):
Держать IF на один раз
Первая часть любой инструкции выполняется всего один раз. И вторя часть любой инструкции тоже выполняется всего один раз (или даже ноль). Не бывает такого чтобы какую-либо из этих частей выполнили бы более одного раза. После каждого вызова процедуры run() осуществляется проверка флагов. Нет ни одного вызова run() после которого бы флаги не проверили.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Май, 2009 17:26 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Сергей Губанов писал(а):
И вторя часть любой инструкции тоже выполняется всего один раз (или даже ноль).


Вот. Я как раз про случай "даже ноль". Вторая часть инструкции НЕ выполняется только один раз из всех витков цикла, на последнем витке. Т.е. охрана IF ЗАВЕДОМО истинна на всех оборотах цикла, кроме последнего. Фактически, её истинность инвариантна по отношению к процессу выполнения цикла (но не к Вашему конкретному циклу; что и не нравится мне в нём...)

IF внутри цикла - сразу мысль про то, что это фильтрация ситуаций по какому-то свойству. А тут - единичная "отфильтровка", по признаку "сейчас последний виток цикла?".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Май, 2009 19:26 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Info21 писал(а):
Прямая дорога к рукосуйству, причем не только в программировании.
Уважаемый Info21!
Перечитал сейчас Лекцию 8 (08.pdf). По сравнению с Дейкстрой и Грисом разительно бросается в глаза общая установка на натаскивание. Но ни в коем случае не сочтите это за упрёк, т. к. в педагогике я - профан. Просто свежий взгляд.
Но дело не в этом.
Меня заинтересовал пример "Поиск корня методом деления пополам". Заинтересовал тем, что решение носит характер подгонки под пресловутый линейный поиск, но, самое главное, тем что не приведён инвариант цикла. Позреваю, что из-за этого в тексте конспекта есть маленький, но существенный недочёт. Какой, пока не буду говорить. Подчеркиваю, я располагаю только конспектом, а в самой лекции, возможно, всё в порядке.
Не могли бы Вы сформулировать инвариант цикла для этого примера? Само собой, я не настаиваю на ответе, для его отсутствия может быть куча причин.
Интересно также узнать мнение остальных участников форума.

Заодно ещё одна мелочь: в программе "Найти максимальное значение в последовательности" переменной y не присвоено начальное значение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Май, 2009 20:19 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Peter Almazov писал(а):
Info21 писал(а):
Прямая дорога к рукосуйству, причем не только в программировании.
Уважаемый Info21!
Перечитал сейчас Лекцию 8 (08.pdf). По сравнению с Дейкстрой и Грисом разительно бросается в глаза общая установка на натаскивание.
Это вводный курс для (1) начинающих (2) непрофессионалов. Про инвариант -- спасибо за замечания, посмотрю, но мне тоже бросается Ваша ... установка.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Peter Almazov писал(а):
Меня заинтересовал пример "Поиск корня методом деления пополам". ...
Петр, спасибо за замечания, Ваша точка зрения понятна и содержательна.

Разумеется, в примере подразумевается монотонность функции.
Про вывод -- теоретически правильно, но практически курс осуществляется при жестоком дефиците времени.

С замечаниями по дискуссии об инвариантах тоже склонен согласиться 8)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Май, 2009 12:16 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Монотонность - это именно то самое правильное и точное слово, которое я так и не вспомнил :(
Спасибо!


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

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Info21 писал(а):
начало научного подхода -- классификация, а не обобщение

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 13 Май, 2009 17:20 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
TAU писал(а):
Info21 писал(а):
начало научного подхода -- классификация, а не обобщение

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

Но сначала - анализ., то есть классификация.
"Чтобы объединиться, сначала надо размежеваться" (с) Почти точная цитата из Ленина... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 18 Май, 2009 00:17 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Валерий Лаптев писал(а):
TAU писал(а):
Info21 писал(а):
начало научного подхода -- классификация, а не обобщение

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

Но сначала - анализ., то есть классификация.
"Чтобы объединиться, сначала надо размежеваться" (с) Почти точная цитата из Ленина... :)

Ну-ну. Все-таки уйти от спора курицы и яйца не можете...

Видите ли, стремление всегда и во всем выделить, "что первее", "что главнее" методологически неверно.

Методы мышления человека включают множество видов (взаимосвязанных и пересекающихся):
анализ
аналогия
абстракция
дедукция
индукция
синтез
...

Без каждого из них мышление становится неполноценным.


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

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

Когда человек попадает в совершенно новую ситуацию, то первым делом занимается номенклатурой наличных объектов ("что тут есть?"). И обязательно с отставанием хотя бы на полшага -- связи между объектами (начиная с пространственных; кстати, классификация -- это тоже связи.)

Формирование нейронного контура, "зажигающегося" на комплекс признаков, -- первичный элемент любых форм мышления.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 18 Май, 2009 14:50 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Info21 писал(а):
Когда человек попадает в совершенно новую ситуацию, то первым делом занимается номенклатурой наличных объектов ("что тут есть?")

Это - восприятие.

Info21 писал(а):
И обязательно с отставанием хотя бы на полшага -- связи между объектами (начиная с пространственных; кстати, классификация -- это тоже связи.)

Формирование нейронного контура, "зажигающегося" на комплекс признаков, -- первичный элемент любых форм мышления

Класификация связана с абстрагированием от конкретных объектов путем выделения "комплекса признаков", общего (обобщение) для некоторого их класса. :wink:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 18 Май, 2009 16:00 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Народ! Сильно далеко ушли от темы выхода из середины цикла... :)
У меня еще тоже есть интересная тема: Почему физики мыслят инфариантами.
Физики - откройте новую тему.


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

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 575
Откуда: Россия, Санкт-Петербург
Всегда говорил студентам, что программирование и статистика - гораздо ближе к физике, чем к математике, потому что наряду с абстрактным там есть место вещественному.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
TAU писал(а):
Info21 писал(а):
Когда человек попадает в совершенно новую ситуацию, то первым делом занимается номенклатурой наличных объектов ("что тут есть?")

Это - восприятие.
Это не восприятие, а классический анализ.

Но диспутировать на эту тему больше не буду.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Май, 2009 08:49 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Валерий Лаптев писал(а):
У меня еще тоже есть интересная тема: Почему физики мыслят инфариантами.
Физики - откройте новую тему.
Кстати, а причём тут физики?
Дэвид Грис в своей "Науке программирования" упоминал, что инварианты в программировании предложил Роберт Флойд.
То есть их в программирование ввёл таки не физик Дейкстра, а вполне себе информатик Флойд...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 19 Май, 2009 08:50 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
http://news.stanford.edu/news/2001/nove ... t-117.html
Цитата:
"Floyd's 1960s method of invariants, in which assertions are attached to points in a computer program, is still the basis of much work in proving that computer programs meet their specifications," says John McCarthy, professor emeritus of computer science.


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

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


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

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


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

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