OberonCore https://forum.oberoncore.ru/ |
|
Объяснение циклов начинающим https://forum.oberoncore.ru/viewtopic.php?f=7&t=2191 |
Страница 3 из 4 |
Автор: | Valery Solovey [ Пятница, 18 Декабрь, 2009 12:13 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
А по-моему, второе является частным случаем первого. В связи с чем фраза "Тут у Вас смешаны во едино два разных понятия" приобретает новый смысл : ). И ещё мне кажется, что Вы переоцениваете Форму. |
Автор: | Peter Almazov [ Пятница, 18 Декабрь, 2009 12:15 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Galkov писал(а): НО, этот подход таки заслуживает академического изучения. И как результат - преврашения в "академичный подход" Славно, и результат даже заранее предсказан.А по хорошему, надо бы на равных рассматривать и такой результат: "закрыто из-за тупиковости и бесперспективности направления". Отрицательный результат - тоже результат. |
Автор: | Galkov [ Пятница, 18 Декабрь, 2009 12:35 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
2Peter Almazov: предсказывать результаты работы человека мало знакомого - не самое умное занятие. Но как-то этого предсказателя характеризующее. Особенно, если предсказание делаются о предмете, в котором не разбираешься. 2Valery Solovey: да ничуть. Посмотрите на линейный код: из него тоже выносятся инварианты, о которых Вы проявили заботу. И про итеративно/рекурсивные задачи - не они определяют высокий статус цикла, а наоборот... Да, для их решения очень полезен метод "тупого повторения" (плюс еще кое-что математическое) Но "тупое повторение" может иметь великую пользу и без верхнего полета математической мысли. Мне именно так представляется Ну хочу я по какому-то условию дать 143 импульса (электрических, например) куда-то. Очень нужная работа, несмотря на "тупость". |
Автор: | Peter Almazov [ Пятница, 18 Декабрь, 2009 12:59 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
2Galkov: Да я и не предсказывал результат. В отличие от. Я говорю, что получение заранее заданного результата - не совсем (или совсем не) научный подход. |
Автор: | Valery Solovey [ Пятница, 18 Декабрь, 2009 13:09 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Galkov писал(а): да ничуть. [...] Возможно я и неправ, но Вы не привели аргументов, показывающих, что "непараметризованный" цикл не является частным случаем "пареметризованного".
|
Автор: | Galkov [ Пятница, 18 Декабрь, 2009 14:14 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Валерий, чего-то я не пойму предмета беседы.... Какой такой павлин-мавлин ??? Кто такой параметризированный цикл ??? Цикл, это такая простая синтаксическая конструкция из двух других: условия, и тела цикла. Семантика этой конструкции определяется... и т.д. в соответствии с классиками. А связаны они между собой через декларативную часть, или нет - да не его это дело... Пофиг ему. Могут быть связаны, могут быть и нет - он не перестанет от этого быть Циклом Это я так понимаю. А Вы Или по другому: чем неправильно такое понимание |
Автор: | Иван Кузьмицкий [ Пятница, 18 Декабрь, 2009 14:19 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Galkov писал(а): Цикл, это такая простая синтаксическая конструкция из двух других: условия, и тела цикла. Извините, не смог удержаться: "Ложка - это конструкция из держала, черпала и перемычки" |
Автор: | Дмитрий Колосов [ Пятница, 18 Декабрь, 2009 14:21 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Валерий Лаптев писал(а): Я в первой своей книжке "С++.Экспресс-курс" в 2003 писал так: ... Все правильно. ... Операторы вывода отличаются один от другого всего в двух местах: в текстовой константе и в выражении умножения. Хотелось бы заменить десять очень похожих операторов одним-единственным, который отработает за все десять. Это не пустой интерес программиста, которому лень написать десять почти одинаковых строк, это очень важная проблема. ... Поэтому сокращение текста программы за счет однотипных вычислений — это очень важное действие. Разумеется, это можно сделать, если повторить выполнение оператора вывода десять раз. И при каждом повторении (которые в программировании обычно называются итерациями) требуется изменить текстовую константу и второй множитель в выражении умножения. Для решения этих проблем мы ... Последовательность обучения, согласно Кушниренко, такая (поправьте, если ошибаюсь):
и всё это - до величин! и вопросов их именования, хранения значения и использования. т.е. разводить понятия до тех пор, пока не будет возможности сформировать ориентировочную основу действия. |
Автор: | Valery Solovey [ Пятница, 18 Декабрь, 2009 14:51 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Galkov писал(а): Это я так понимаю. А Вы Не то, чтобы я считал Вашу точку зрения такой уж там какой-то неправильной... Просто есть и другие варианты, и если их не назвать, то новички посчитают Ваш вариант единственными или по крайней мере самым верным. А остальное будут игнорировать.Galkov писал(а): Тут у Вас смешаны во едино два разных понятия Всё-таки они должны быть смешаны. И то, что в силу определённых причин Вы рассматриваете вторй вариант особо (так удобно), не должно служить поводом считать их взаимоисключающими: второе - частный случай первого.1) Представление некого массива как бы разных действий, как некого единого, но чем-то параметризированного 2) Объединение тупой конструкции большого количества, уже одинаковых, действий - в единую конструкцию по имени Цикл Если это сразу объяснить - но тут возникает проблема: как объяснить это правильно - то человек не будет пытаться через второй вариант выразить то, что не подходит под него по определению. Человек будет понимать, что столкнулся с ситуацией более широкой, и должен использовать для решения более широкий вариант. |
Автор: | Galkov [ Пятница, 18 Декабрь, 2009 15:27 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Иван Кузьмицкий писал(а): Извините, не смог удержаться: "Ложка - это конструкция из держала, черпала и перемычки" А я даже больше скажу: если мы не научились объяснять сложные вещи на уровне "держала и черпала", но без существенных упрощений - значит мы сами не очень разбираемся в теме.В стародавние времена, шеф учил меня: если ты не можешь на пальцах рассказать про знак и степень альфы для отличия гиромагнитного отношения электрона от двойки - значит ты занимаешься не своим делом. Т.е., "держало и черпало" - очень важные методологические инструменты ((Хотя я уже где-то говорил это, кажется)) |
Автор: | Galkov [ Пятница, 18 Декабрь, 2009 16:00 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Valery Solovey писал(а): Всё-таки они должны быть смешаны Мне кажется, что - не факт.Ну вот сделал я гениальное обобщение MyFunc ((которое выделено отдельно в отдельную функцию только по причине " скажем так, для удобства" - тут я с Вами совершенно согласен)) А употреблю ли после этого цикл, или сделаю несколько линейных вызовов - второй разговор. И оба варианта будут правильны. Наоборот: кинул на улицу какой-то строб, и ожидаю "акнолиджа". И где тут "гениальное обобщение", если тело цикла просто пустое ??? Или это не цикл ??? Чего получается: одно без другого может существовать. Вместе - тоже могут. Не получается у меня сделать вывод, что должны быть смешаны |
Автор: | Иван Кузьмицкий [ Пятница, 18 Декабрь, 2009 16:53 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Galkov писал(а): Т.е., "держало и черпало" - очень важные методологические инструменты ((Хотя я уже где-то говорил это, кажется)) Смысл ложки лежит в тарелке супа, а не в "черпале". |
Автор: | Илья Ермаков [ Пятница, 18 Декабрь, 2009 20:49 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Дмитрий Колосов писал(а): Последовательность обучения, согласно Кушниренко, такая (поправьте, если ошибаюсь):
и всё это - до величин! и вопросов их именования, хранения значения и использования. т.е. разводить понятия до тех пор, пока не будет возможности сформировать ориентировочную основу действия. Да, всё почти так. Только команды ветвления - после цикла с предусловием. Т.к. их особенность - вместо одного пути выполнения в программе порождают несколько. Видимо, Кушниренко и его коллеги сочли более разумным сначала натренировать работу с условиями на базе однопутевой конструкции WHILE, для которой, к тому же, уйму дидактических примеров можно придумать. |
Автор: | Info21 [ Суббота, 19 Декабрь, 2009 00:49 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Илья Ермаков писал(а): Да, всё почти так. По-моему, эта последовательность -- с поправками или без -- не однозначно правильная.В том смысле, что возможна и сильно другая, но не менее эффективная. Причем без "цикла N раз" |
Автор: | Alexey_Donskoy [ Суббота, 19 Декабрь, 2009 08:15 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Имхо, опять смешение синтаксиса и семантики, формы и содержания! Решительно не вижу, чем по сути "Выполнить N раз" отличается от "повторять, пока не посинеет". Алгоритмически - конструкция из действия и условия с переходом! Всё! Математики, поймите же наконец, что итерация (сходимость и т.п. мат. понятия) вовсе не является сутью цикла! Напротив, ряд задач (в т.ч. с математическим методом итерации) удобно решается алгоритмическим инструментом "цикл"! Вот учиться правильно пользоваться инструментами на конкретных задачах и классах задач - дело нужное. Только не путать при этом задачу, метод и инструмент!!! |
Автор: | Trurl [ Суббота, 19 Декабрь, 2009 11:59 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Alexey_Donskoy писал(а): Решительно не вижу, чем по сути "Выполнить N раз" отличается от "повторять, пока не посинеет". По сути - это разница между общерекурсивными и частично рекурсивными функциями. |
Автор: | Galkov [ Суббота, 19 Декабрь, 2009 13:15 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Да, трудно с математиками [offtop]как-то бодался с авторами системы моделирования (MVS), пытался триггер Шмидта изобразить. Ну никак не получалось их убедить, что одно из трех решений на передаточной ф-ии - "не фиическое". Так и не получилось ведь, хотя причина и следствие - у них на схеме были стрелочками обозначены [/offtop] Прав Алексей Вот пример я уже приводил: жду внешнего сигнала (бит в LPT-порте). Даже sleep-а не делаю, потому-что делов на несколько микросекунд. И это не теория, а правда жизни. Это Цикл или нет И где тут общерекурсивность, частичная рекурсивность, итеративность, или какая иная Нечистая Сила Спрашивается, зачем вводить новые сущности без необходимости... |
Автор: | Доровских Александр [ Суббота, 19 Декабрь, 2009 14:36 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Ну, блин, господа ученые, намудрили! Как я теперь сыну буду объяснять понятие цикла? Я не препод, не физик, не математик. Я строитель. В моем понимании цикл - это набор каких-либо однотипных действий. Каменщик, например. Зацепил раствор мастерком, набросил на кладку, взял кирпич, уложил, поправил. И по новой. Это тело цикла. А сколько раз он это сделает - десять раз по чертежу, пока стенка не кончится, пока есть материалы - это условие. Это так или я не прав? |
Автор: | Info21 [ Суббота, 19 Декабрь, 2009 14:40 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Доровских Александр писал(а): Ну, блин, господа ученые, намудрили! Это так. А господа -- не ученые (не считая хитроумного Trurl'я).... Это так или я не прав? Надо бы для философии циклов и проч. отдельную ветку, что ли |
Автор: | Илья Ермаков [ Суббота, 19 Декабрь, 2009 16:20 ] |
Заголовок сообщения: | Re: Объяснение циклов начинающим |
Info21 писал(а): В том смысле, что возможна и сильно другая, но не менее эффективная. Причем без "цикла N раз" Наверняка возможна. Что касается меня, то я некогда пытался сразу разбирать общий WHILE. Сейчас так и есть, но до Блэкбокса - на занятии, где вообще понятие алгоритма вводится, и на житейских примерах демонстрируется. Там как раз две конструкции объясняются - охрана и цикл. По лекции Дейкстры. Когда пошло программирование, то проще показать сначала цикл с конкретным числом повторов - там как раз "эстафета" выходит: процедуры - повторное использование с счёт вызовом процедур - свёртывание повтора в цикл со счётчиком - параметризация процедуры и использование параметра в цикле со счётчиком. Вот только один нюанс: с этого года я под циклом со счётчиком имею в виду i := 0; WHILE i < count DO ... INC(i) END Т.к. WHILE в общей форме разобрали (и в граф. эквиваленте тоже) на обще-алгоритмическом занятии, то всё логично выстраивается. |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |