OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 12:13 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
А по-моему, второе является частным случаем первого. В связи с чем фраза "Тут у Вас смешаны во едино два разных понятия" приобретает новый смысл : ).

И ещё мне кажется, что Вы переоцениваете Форму.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 12:15 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 12:35 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
2Peter Almazov: предсказывать результаты работы человека мало знакомого - не самое умное занятие.
Но как-то этого предсказателя характеризующее.
Особенно, если предсказание делаются о предмете, в котором не разбираешься.

2Valery Solovey: да ничуть. Посмотрите на линейный код: из него тоже выносятся инварианты, о которых Вы проявили заботу.
И про итеративно/рекурсивные задачи - не они определяют высокий статус цикла, а наоборот...
Да, для их решения очень полезен метод "тупого повторения" (плюс еще кое-что математическое)
Но "тупое повторение" может иметь великую пользу и без верхнего полета математической мысли.
Мне именно так представляется :)

Ну хочу я по какому-то условию дать 143 импульса (электрических, например) куда-то. Очень нужная работа, несмотря на "тупость".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 12:59 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 13:09 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Galkov писал(а):
да ничуть. [...]
Возможно я и неправ, но Вы не привели аргументов, показывающих, что "непараметризованный" цикл не является частным случаем "пареметризованного".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 14:14 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Валерий, чего-то я не пойму предмета беседы....
Какой такой павлин-мавлин ??? Кто такой параметризированный цикл ???
Цикл, это такая простая синтаксическая конструкция из двух других: условия, и тела цикла. Семантика этой конструкции определяется... и т.д. в соответствии с классиками.
А связаны они между собой через декларативную часть, или нет - да не его это дело... Пофиг ему.
Могут быть связаны, могут быть и нет - он не перестанет от этого быть Циклом

Это я так понимаю. А Вы :?:
Или по другому: чем неправильно такое понимание :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 14:19 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Galkov писал(а):
Цикл, это такая простая синтаксическая конструкция из двух других: условия, и тела цикла.

Извините, не смог удержаться: "Ложка - это конструкция из держала, черпала и перемычки" :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 14:21 

Зарегистрирован: Понедельник, 23 Март, 2009 10:35
Сообщения: 98
Откуда: Ханты-Мансийск
Валерий Лаптев писал(а):
Я в первой своей книжке "С++.Экспресс-курс" в 2003 писал так:
...
Все правильно.
...
Операторы вывода отличаются один от другого всего в двух местах: в текстовой константе и в выражении умножения. Хотелось бы заменить десять очень похожих операторов одним-единственным, который отработает за все десять.
Это не пустой интерес программиста, которому лень написать десять почти одинаковых строк, это очень важная проблема.
...
Поэтому сокращение текста программы за счет однотипных вычислений — это очень важное действие.

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


Последовательность обучения, согласно Кушниренко, такая (поправьте, если ошибаюсь):
  1. понятие Исполнителя, система команд исполнителя, команды-действия;
  2. линейная последовательность команд;
  3. цикл "N раз";
  4. команды-вопросы (возвращающие логическую константу);
  5. команда ветвления;
  6. цикл с предусловием;

и всё это - до величин!
и вопросов их именования, хранения значения и использования.

т.е. разводить понятия до тех пор, пока не будет возможности сформировать ориентировочную основу действия.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 14:51 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Galkov писал(а):
Это я так понимаю. А Вы :?:
Не то, чтобы я считал Вашу точку зрения такой уж там какой-то неправильной... Просто есть и другие варианты, и если их не назвать, то новички посчитают Ваш вариант единственными или по крайней мере самым верным. А остальное будут игнорировать.
Galkov писал(а):
Тут у Вас смешаны во едино два разных понятия
1) Представление некого массива как бы разных действий, как некого единого, но чем-то параметризированного
2) Объединение тупой конструкции большого количества, уже одинаковых, действий - в единую конструкцию по имени Цикл
Всё-таки они должны быть смешаны. И то, что в силу определённых причин Вы рассматриваете вторй вариант особо (так удобно), не должно служить поводом считать их взаимоисключающими: второе - частный случай первого.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 15:27 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Иван Кузьмицкий писал(а):
Извините, не смог удержаться: "Ложка - это конструкция из держала, черпала и перемычки" :)
А я даже больше скажу: если мы не научились объяснять сложные вещи на уровне "держала и черпала", но без существенных упрощений - значит мы сами не очень разбираемся в теме.
В стародавние времена, шеф учил меня: если ты не можешь на пальцах рассказать про знак и степень альфы для отличия гиромагнитного отношения электрона от двойки - значит ты занимаешься не своим делом.

Т.е., "держало и черпало" - очень важные методологические инструменты :D
((Хотя я уже где-то говорил это, кажется))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 16:00 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Valery Solovey писал(а):
Всё-таки они должны быть смешаны
Мне кажется, что - не факт.
Ну вот сделал я гениальное обобщение MyFunc ((которое выделено отдельно в отдельную функцию только по причине " скажем так, для удобства" - тут я с Вами совершенно согласен))
А употреблю ли после этого цикл, или сделаю несколько линейных вызовов - второй разговор. И оба варианта будут правильны.
Наоборот: кинул на улицу какой-то строб, и ожидаю "акнолиджа". И где тут "гениальное обобщение", если тело цикла просто пустое ??? Или это не цикл ???

Чего получается: одно без другого может существовать. Вместе - тоже могут.
Не получается у меня сделать вывод, что должны быть смешаны :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 16:53 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Galkov писал(а):
Т.е., "держало и черпало" - очень важные методологические инструменты :D
((Хотя я уже где-то говорил это, кажется))


Смысл ложки лежит в тарелке супа, а не в "черпале".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Пятница, 18 Декабрь, 2009 20:49 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Дмитрий Колосов писал(а):
Последовательность обучения, согласно Кушниренко, такая (поправьте, если ошибаюсь):
  1. понятие Исполнителя, система команд исполнителя, команды-действия;
  2. линейная последовательность команд;
  3. цикл "N раз";
  4. команды-вопросы (возвращающие логическую константу);
  5. команда ветвления;
  6. цикл с предусловием;

и всё это - до величин!
и вопросов их именования, хранения значения и использования.

т.е. разводить понятия до тех пор, пока не будет возможности сформировать ориентировочную основу действия.


Да, всё почти так.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 00:49 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Илья Ермаков писал(а):
Да, всё почти так.
По-моему, эта последовательность -- с поправками или без -- не однозначно правильная.
В том смысле, что возможна и сильно другая, но не менее эффективная.
Причем без "цикла N раз" :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 08:15 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Имхо, опять смешение синтаксиса и семантики, формы и содержания!

Решительно не вижу, чем по сути "Выполнить N раз" отличается от "повторять, пока не посинеет". Алгоритмически - конструкция из действия и условия с переходом! Всё!

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

Вот учиться правильно пользоваться инструментами на конкретных задачах и классах задач - дело нужное. Только не путать при этом задачу, метод и инструмент!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 11:59 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Alexey_Donskoy писал(а):
Решительно не вижу, чем по сути "Выполнить N раз" отличается от "повторять, пока не посинеет".

По сути - это разница между общерекурсивными и частично рекурсивными функциями. ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 13:15 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Да, трудно с математиками :lol:
[offtop]как-то бодался с авторами системы моделирования (MVS), пытался триггер Шмидта изобразить. Ну никак не получалось их убедить, что одно из трех решений на передаточной ф-ии - "не фиическое".
Так и не получилось ведь, хотя причина и следствие - у них на схеме были стрелочками обозначены
[/offtop]

Прав Алексей :!:
Вот пример я уже приводил: жду внешнего сигнала (бит в LPT-порте). Даже sleep-а не делаю, потому-что делов на несколько микросекунд.
И это не теория, а правда жизни. Это Цикл или нет :?:
И где тут общерекурсивность, частичная рекурсивность, итеративность, или какая иная Нечистая Сила :?:

Спрашивается, зачем вводить новые сущности без необходимости...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 14:36 

Зарегистрирован: Пятница, 16 Октябрь, 2009 20:04
Сообщения: 68
Ну, блин, господа ученые, намудрили!
Как я теперь сыну буду объяснять понятие цикла?
Я не препод, не физик, не математик. Я строитель. В моем понимании цикл - это набор каких-либо однотипных действий.
Каменщик, например. Зацепил раствор мастерком, набросил на кладку, взял кирпич, уложил, поправил. И по новой.
Это тело цикла.
А сколько раз он это сделает - десять раз по чертежу, пока стенка не кончится, пока есть материалы - это условие.
Это так или я не прав?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 14:40 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Доровских Александр писал(а):
Ну, блин, господа ученые, намудрили!
...
Это так или я не прав?
Это так. А господа -- не ученые (не считая хитроумного Trurl'я).

Надо бы для философии циклов и проч. отдельную ветку, что ли :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 16:20 
Модератор
Аватара пользователя

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


Наверняка возможна.

Что касается меня, то я некогда пытался сразу разбирать общий WHILE. Сейчас так и есть, но до Блэкбокса - на занятии, где вообще понятие алгоритма вводится, и на житейских примерах демонстрируется. Там как раз две конструкции объясняются - охрана и цикл. По лекции Дейкстры.

Когда пошло программирование, то проще показать сначала цикл с конкретным числом повторов - там как раз "эстафета" выходит: процедуры - повторное использование с счёт вызовом процедур - свёртывание повтора в цикл со счётчиком - параметризация процедуры и использование параметра в цикле со счётчиком.
Вот только один нюанс: с этого года я под циклом со счётчиком имею в виду i := 0; WHILE i < count DO ... INC(i) END :) Т.к. WHILE в общей форме разобрали (и в граф. эквиваленте тоже) на обще-алгоритмическом занятии, то всё логично выстраивается.


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

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


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

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


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

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