DRAKON.SU
https://forum.drakon.su/

Прошу помочь с циклом ДЛЯ
https://forum.drakon.su/viewtopic.php?f=78&t=3801
Страница 1 из 2

Автор:  vasili111 [ Понедельник, 30 Январь, 2012 10:41 ]
Заголовок сообщения:  Прошу помочь с циклом ДЛЯ

Читаю книгу "Паронджанов В.Д. - Дружелюбные алгоритмы, понятные каждому".
Все было понятно до стр.146 "Цикл ДЛЯ". Данная часть главы мне непонятна. Вычисления обычного факториала я нашел в интернете и понял:

n!=1*2*..*n
например
6!= 1х2х3х4х5х6 = 720

Но в дракон-схемах на рис.83 и рис.84 не разобрался (смотрите прикрепленный файл). Конкретно не понял как вычисляется факториал на обоих схемах. Прошу помочь разобраться в данных дракон-схемах, а также если есть возможность дать другую дракон-схему с использованием цикла ДЛЯ.

Также хочу сказать что книга очень интересная и выразить свою благодарность ее автору.

Вложения:
Комментарий к файлу: Страница с дракон-схемами которые я не понял.
asdf.jpg
asdf.jpg [ 207.52 КБ | Просмотров: 18105 ]

Автор:  Ильченко Эдуард [ Понедельник, 30 Январь, 2012 17:51 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

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

Непонятно, что конкретно Вам не понятно : )

Что такое k?
Зачем k умножается на X?
Или, вообще, как работает цикл?

Автор:  Владислав Жаринов [ Вторник, 31 Январь, 2012 18:31 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Ну, другие схемы с таким циклом дать можно: http://drakonografika.narod.ru/L3/imper ... ml#del3114 или здесь: http://drakonografika.narod.ru/images/G ... r-DR_2.png - но это уже сложновато...
Разбор случаев можно видеть в этом пункте: http://drakonografika.narod.ru/L3/cikls ... .html#n213. Спрашивайте...

Автор:  vasili111 [ Пятница, 03 Февраль, 2012 09:18 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Спасибо за помощь!
Я разобрался в схеме которая изображена на рис. 83 (см. прикрепленный файл в первом сообщении). Как как я понял "k" является так называемым счетчиком цикла. После этого все на рис. 83 стало понятно.
К сожалению не смог понять цикл на рис.84. непонятно как в этом случае действует цикл. Буду благодарен если кто-нибудь разъяснит этот момент.
Также я сделал свою первую дракон-схему. Попытался использовать в нем цикл ДЛЯ. Только сделана она подобно рис.83. Правильна ли она составлена? Если да, то как будет выглядеть если перевести в вид который изображен на рис.84? Приложил сам файл для редактора drakon editor 1.8 (в архиве, drn файл прикрепить не дает), а также экспортированную версию в pdf файл.

Вложения:
Цикл ДЛЯ.drn [16 КБ]
Скачиваний: 677
Цикл ДЛЯ.pdf [57.78 КБ]
Скачиваний: 483

Автор:  Alexey_Donskoy [ Пятница, 03 Февраль, 2012 09:31 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

vasili111 писал(а):
К сожалению не смог понять цикл на рис.84.
Так это точно то же самое, что и на рис.83, только более компактная форма записи. Взяли стандартные действия и обозначили их специальными графическими символами.

Автор:  vasili111 [ Пятница, 03 Февраль, 2012 10:04 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Alexey_Donskoy писал(а):
vasili111 писал(а):
К сожалению не смог понять цикл на рис.84.
Так это точно то же самое, что и на рис.83, только более компактная форма записи. Взяли стандартные действия и обозначили их специальными графическими символами.

Этот момент я понял, они выполняют один и тот же алгоритм. Но я не разобрался как изображать алгоритмы подобным образом. Какую часть цикла ДЛЯ писать в иконе "Начало цикла", какую часть в иконе "Конец цикла" и какую часть располагать между ними. То есть не понятны конкретные функции каждой из икон.

Автор:  Alexey_Donskoy [ Пятница, 03 Февраль, 2012 11:00 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

vasili111 писал(а):
Какую часть цикла ДЛЯ писать в иконе "Начало цикла", какую часть в иконе "Конец цикла" и какую часть располагать между ними. То есть не понятны конкретные функции каждой из икон.
Вверху - параметр цикла и как он меняется (от скольки до скольки).
Внизу подразумевается изменение параметра цикла (к=к+1).
В середине - основное действие (тело цикла), которое повторяется для каждого очередного параметра цикла.

Автор:  vasili111 [ Суббота, 04 Февраль, 2012 11:19 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

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

Вложения:
Цикл Для v2.pdf [62.22 КБ]
Скачиваний: 524
Комментарий к файлу: Файл для редактора дракон-схем Drakon editor
Цикл ДЛЯ v2.drn [17 КБ]
Скачиваний: 695

Автор:  Alexey_Donskoy [ Суббота, 04 Февраль, 2012 11:26 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

vasili111 писал(а):
Я все правильно понял?
Да.

vasili111 писал(а):
Составил дракон-схему(см. прикрепленные файлы) с использованием икон "Начало цикла" и "Конец цикла" и вторую дракон-схему без них. По идее они должны быть эквивалентны. Так ли оно и правильно ли составлена дракон схема?
Да :)

Автор:  Владислав Жаринов [ Пятница, 17 Февраль, 2012 12:10 ]
Заголовок сообщения:  Практические реализации цикла ДЛЯ

Тут есть только одна вещь, на которую Дмитрий_ВБ обращал внимание. Тело цикла ДЛЯ в принципе ведь по условиям задачи может и не выполниться ни разу. :) Так что разобранный у меня вариант представления через цикл ДО (предложенный в "Как улучшить...") нужно дополнить представлением через цикл ПОКА (в Драконографике этого не сделано). Поскольку мы явно предполагаем покрасить хотя бы одну доску :), то здесь это не обязательно.

Автор:  Владимир Паронджанов [ Среда, 07 Март, 2018 10:49 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

vasili111 писал(а):
Читаю книгу "Паронджанов В.Д. - Дружелюбные алгоритмы, понятные каждому".
Все было понятно до стр.146 "Цикл ДЛЯ". Данная часть главы мне непонятна. Вычисления обычного факториала я нашел в интернете и понял:

n!=1*2*..*n
например
6!= 1х2х3х4х5х6 = 720

Но в дракон-схемах на рис.83 и рис.84 не разобрался (смотрите прикрепленный файл). Конкретно не понял как вычисляется факториал на обоих схемах. Прошу помочь разобраться в данных дракон-схемах, а также если есть возможность дать другую дракон-схему с использованием цикла ДЛЯ.

Также хочу сказать что книга очень интересная и выразить свою благодарность ее автору.


С тех пор прошло 4 года.

Я благодарю профессионального врача Василия Бачиашвили (vasili111) за то, что он 4 года назад открыл эту тему и указал на трудности восприятия цикла ДЛЯ (for).

Я сейчас пишу новую книгу по языку ДРАКОН и стремлюсь исправить недостатки, на которые указал Василий.

Еще раз спасибо. Цикл ДЛЯ действительно требует подробных разъяснений. Слова Василия Бачиашвили мне очень помогли.

Автор:  Владимир Паронджанов [ Среда, 07 Март, 2018 22:10 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Я обнаружил у себя ошибку в цикле ДО (слева) при вычислении факториала.
Выкладываю исправленную схему.
В иконе Вопрос написано k <= n + 1 (Это правильно).
А раньше было k <= n (Это ошибка).


Вложение:
Рис. 58, 59 факториал.png
Рис. 58, 59 факториал.png [ 87.85 КБ | Просмотров: 14514 ]


Прошу критиковать

Автор:  Владимир Ситников [ Среда, 07 Март, 2018 22:55 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Владимир Паронджанов писал(а):
В иконе Вопрос написано k <= n + 1 (Это правильно).

А зачем там n+1?

По-моему, должно быть k<=n. Если k<=n, то это означает, что ещё есть смысл умножать на это k.
Если же k превышает n, то умножать уже не надо, иначе получим не n!, а непойми что.

Автор:  LKom [ Четверг, 08 Март, 2018 08:15 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Дополню к указанному Владимиром Ситниковым.

• Область определения аргумента Факториала включает 0. 0!=1
Алгоритмы В.Д. Паронджанова не работают с аргументом 0.

• Разнобой. В качестве знака присваивание используются знаки = и :=.

Автор:  Владимир Паронджанов [ Четверг, 08 Март, 2018 08:30 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Владимир Паронджанов писал(а):
В иконе Вопрос написано k <= n + 1 (Это правильно).

Владимир Ситников писал(а):
А зачем там n+1?

По-моему, должно быть k<=n.

Владимир, спасибо за замечание.

Я рассуждаю так. Предположим, n = 10.
Выкладываю подробную таблицу для 10 итераций цикла ДО, подтверждающую, что в иконе Вопрос должно быть k <= n + 1

Вложение:
Факториал .png
Факториал .png [ 58.87 КБ | Просмотров: 14503 ]

Из таблицы видно, что:
:idea: в конце 9-го прохода по циклу мы получим результат X = 9! = 362880.
При этом формула k <= n + 1 принимает вид:
 11 <= 11
Поскольку 11 равно 11, на Вопрос отвечаем «Да», бегунок выходит направо по стрелке к началу цикла ДО.

:idea: в конце 10-го прохода по циклу мы получим искомый результат X = 10! = 3628800.
При этом формула k <= n + 1 принимает вид:
 12 <= 11
Поскольку 12 больше 11, на Вопрос отвечаем «Нет», бегунок выходит вниз и цикл ДО заканчивается.

Владимир, что вы об этом думаете?

Автор:  LKom [ Четверг, 08 Март, 2018 09:49 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Изображение
"Из таблицы видно, что:" - в таблице какая то ерунда:
• В каждой строке, в 5-й колонке (n) значение n различное, а в 7-й колонке (k <= n+1 n = 10) n постоянное, т.е. n является константой.

• Тоже с k, в 7-колонке переменная k последовательно меняется от 2 до 12, а значение 8 выпало из последовательности.
---
Сомнительный источник происхождения таблицы.

Автор:  Владимир Паронджанов [ Четверг, 08 Март, 2018 10:52 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Спасибо Владимиру Ситникову и LKom.

Я действительно по ошибке пропустил строку в таблице, на что указал LKom.
Цитата:
значение 8 выпало из последовательности

Из-за этого пропуска появилась ошибка, на которую указал Владимир Ситников.

Выкладываю правильную таблицу

Вложение:
Факториал1 .png
Факториал1 .png [ 62.1 КБ | Просмотров: 14492 ]


Пояснение для LKom. n переменная величина. Она нужна, чтобы обозначить факториал n!

Но. Задача таблицы (и алгоритма) вычислить факториал для конкретного значения n, например, для n = 10.
Так что противоречия здесь нет.

Владимир Ситников писал(а):
А зачем там n+1?

По-моему, должно быть k<=n.

Владимир, вы правы. Спасибо за замечание.

Автор:  LKom [ Четверг, 08 Март, 2018 11:49 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Правильные Дракон-схемы вычисления Факториала в цикле.
Выполнены в ИС Дракон.
N принимает значение от 0 и больше.
Вложение:
ФакториалВЦикле.png

Автор:  Владимир Ситников [ Четверг, 08 Март, 2018 11:56 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

LKom писал(а):
Правильные Дракон-схемы вычисления Факториала в цикле.

Левая неправильная.

Автор:  LKom [ Четверг, 08 Март, 2018 12:02 ]
Заголовок сообщения:  Re: Прошу помочь с циклом ДЛЯ

Еще раз посмотрите.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/