OberonCore

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

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




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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Выделено отсюда: viewtopic.php?p=38994#p38994

Valery Solovey писал(а):
Вот Вам реализация цикла:
1. Вычисляется выражение.
2. Проверяется условие.
3. Если условие не верно, то перейти в заданную ячейку (сразу за концом цикла).
4. Последовательно выполнять команды цикла.
5. Наткнуться на безусловный переход вверх (переход будет на начало вычисления выражения).

При объяснении цикла, такого описания можно избежать. В нём нет необходимости.
Любопытно, как по-другому объяснить цикл начинающему 7-класснику? (Ясно, что "ячейку" и "безусловный" можно опустить.)


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

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Сложный вопрос. У меня нет опыта, чтобы ответить.

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


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Что без "1, 2, 3" и без прыгания по строчкам - только нарисовать.
Я вот в этом году в начале курса рисую (по правилам Дракона). Под конкретный пример ("поставили студенту задачу перетаскать кучу кирпичей неизвестного количества.."). И тут же WHILE.
И пояснения про "обратную связь", которая в любых повторяющихся процессах есть.

Причём лучше всунуть промежуточный этап: "Мы знаем условие, и попробуем составить..." - и бесконечную цепочку условий рисуем. А потом: "А давайте замкнём в петлю. В цикл".

И так же текстово рядом IF IF ... END END и WHILE .. END.

При этом эти штуки я объяняю очень общо, ещё до программирования, когда просто понятие алгоритма (примерно по 1 лекции Дейкстры). Потом через какое-то время (после освоения ББ и начала работы с роботом) приходим к WHILE со счётчиком, и потом к общему WHILE (и тут уже сразу говорится "строим от постусловия". Кроме того, в задачках с Роботом на собственной попе они быстро видят, что кто не написал ПУ, сидит и путается, по чём цикл строить, по какой стенке :) ).


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

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Эк у Вас все хитро закручено :D

То ли дело у нас: цикл - такой же элемент, как и все остальные: в ответ на "левый" сигнал начинает "жизнедеятельность", внешнее проявление которой заключается в какой-то (в этом и заключена специфика) рассылке сигналов другим элементам.
Конкретно для FOR - посылается нужное число (определяемое, к примеру, св-ми элемента) раз в одно и то же место с индексом (счетчиком цикла) в потоке.
Для REPEAT - на каждый "целевой" сигнал приходится другой сигнал для вычисления условия продолжения (до, или после - в зависимости от предустановленного св-ва элемента)
Грубо говоря, принципиальной разницы с элементом IF_ELSE, или вообще элементом пользователя - и нет, вроде бы.

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

Ну это так, собственные наблюдения в качестве оффтопа 8)


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
А какое физическое значение у Вашего цикла за пределами компьютера и конкретного инструмента?
Не прослеживается.

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


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

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

Ну хорошо, пусть я новичок - откройте мне, чем же он такой "совсем особенный по природе своей".
Пока мне кажется: квадратик себе, и квадратик...
У каждого квадратика свое "расписание" рассылки сигналов, делов-то. Казалось бы...


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Я всегда даю ссылку на эту работу Дейкстры:
http://khpi-iip.mipk.kharkiv.edu/librar ... ex316.html

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

(Я сам пришёл к такому стилю объяснения до знакомства с этой работой, потому что опыт у меня такой - системное программирование, управляющие алгоритмы.., где игра словами про "1. Конечность. 2. Результативность." и т.п. вообще теряет всякий смысл. Потом нашёл эту работу, очень обрадовался, и, в общем, этой 1-й главы и придерживаюсь на 1-2 паре, с вариациями - например, рисование..).

Про построение циклов см. http://oberoncore.ru/wiki/start.


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

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Илья, а вот я абсолютно согласен с Галковым, что цикл - такой же квадратик, как и любой другой.
И такое его рассмотрение мне представляется вполне адекватным, физическим.
И вполне целесообразным в ряде задач, включая символьные преобразования формул и кодогенерацию (это именно те случаи, где я практически использовал такое представление цикла).
Почему бы это у математики должен быть другой взгляд на вещи, не понимаю.


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

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

Смотря что хотите сказать этой фразой "такой же...".

Я напомню, что разговор об этом пошёл в ответ на моё сообщение viewtopic.php?p=39339#p39339 о методике обучения построению циклов.

Я не могу уловить связи между вопросом методическим и семантическим (т.е. как показать смысл и как научить проектировать конструкцию N) и вопросом синтаксическим "А вот конструкция N - такой же элемент синтаксиса (графического или какого ещё), как и другие конструкции".


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

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

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


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

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

Но учили-то нас совсем другому :D
Как сейчас помню, Спартак Тимофеевич, на первых же лекциях, на первом курсе.... (он тогда еще ректором был)
Оказывается-то, что все это "одно и то же" - инвариантность законов нашего Мира относительно пространственно-временных преобразований.
И что занимательно, это не считается противоречием с классиками.

Может и тут что-то похожее... ((типа, мысли вслух))
Ну не вижу я принципиальной разницы у "классического цикла", с чем-то эдаким экзотическим (на ходу сочинил): проверка условия => сигнал в целевую ветку => проверка совершенно другого условия => сигнал в ту же целевую ветку => и все...
Даже возьму на себя невиданную смелость сообщить, что у нас два выхода из цикла... Ну и у IF_ELSE тоже два выхода - какая типа разница... :lol:


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

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Это к предложению Галкова о том, что любая структурная единица алгоритма, будь то вызов процедуры, действие или цикл, имеет форму типового кубика (чёрного ящика), в который входят и выходят потоки управления и данных.

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

И с последней фразой Галкова абсолютно согласен :D


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

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


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

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
А было бы полезно вникнуть! :)

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

Хотя, опять же, что называть классическим... Как насчёт АВМ? :wink: Уж тут-то физического смысла не в пример больше, чем в абстрактном цикле!


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

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


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

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

Однако напоминаю, что не в тему тут всё это совершенно.


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

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

Если есть теоретический метод, способный давать практические результаты, надо его и изучать соответственно.

Хотелось бы увидеть сравнительный анализ классического и "кубикового" подхода. Сделаете - удивитесь! :D


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

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

Вариант:
- вот эту вот штуковину (тело цикла) надо повторять.
- сколько раз? (естественный вопрос)
- до посинения!
- а как узнать, посинело или нет?
- а для этого условие окончания цикла проверяем каждый раз!

Ну и т.п.


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

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

Природа цикла вообще, как одного из шаблонов поведения, не меняется.
Понятие инварианта цикла - тоже.
Методы проектирования цикла - тоже.

О чём тогда речь? Не пойму.


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

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


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

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


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

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


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

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