Визуальный язык ДРАКОН

Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность/Надёжность

Инструменты пользователя

Инструменты сайта


strukturnaja_algoritmizacija_i_shampur-metod_-_sochinitel_stanovitsja_mudrecom

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

strukturnaja_algoritmizacija_i_shampur-metod_-_sochinitel_stanovitsja_mudrecom [2012/04/07 14:41]
Владислав Жаринов создано
strukturnaja_algoritmizacija_i_shampur-metod_-_sochinitel_stanovitsja_mudrecom [2012/05/20 16:50] (текущий)
Владислав Жаринов [Структурная алгоритмизация и шампур-метод: сочинитель становится мудрецом]
Строка 9: Строка 9:
 Тогда любой набор значений входящих в это выражение величин,​ при котором условие истинно,​ можно называть «паролем» охраны. Понятно,​ что паролей м.б. и больше одного — это зависит от выражения (вида условий,​ значений входящих переменных и констант). Тогда любой набор значений входящих в это выражение величин,​ при котором условие истинно,​ можно называть «паролем» охраны. Понятно,​ что паролей м.б. и больше одного — это зависит от выражения (вида условий,​ значений входящих переменных и констант).
  
-Важно понимать также вот что. Структура охранного логвыра,​ как она определена для виопа Д4 в [[http://​drakon.su/​ocenka_texnojazyka_i_shampur-metoda#​nachalo_azbuki_drakona-1vrode_kak_v_bs_da_ne_kak_v_bs|этом подразделе]],​ допускает при проверке охраны также вычисления арвыров. Но результаты этих вычислений используются только в течение проверки. Это значит,​ что полученные значения недоступны после прохождения виопа. Но не менее существенно,​ что они недоступны и до этого. Т.е. возможно,​ что мы проверяем не то, что имели в виду для данной развилки (скажем,​ в неформальной постановке её вопроса). И это нужно учитывать. Разумный путь — использовать в охранах только имена величин (это и есть простейшая форма арвыра,​ как можно видеть из определения виопа Д3).+Важно понимать также вот что. Структура охранного логвыра,​ как она определена для виопа Д4 в [[http://​drakon.su/​vershiny_i_linii_sxem_-_smysl_v_grafike_i_tekste#​nachalo_azbuki_drakona-1vrode_kak_v_bs_da_ne_kak_v_bs|этом подразделе]],​ допускает при проверке охраны также вычисления арвыров. Но результаты этих вычислений используются только в течение проверки. Это значит,​ что полученные значения недоступны после прохождения виопа. Но не менее существенно,​ что они недоступны и до этого. Т.е. возможно,​ что мы проверяем не то, что имели в виду для данной развилки (скажем,​ в неформальной постановке её вопроса). И это нужно учитывать. Разумный путь — использовать в охранах только имена величин (это и есть простейшая форма арвыра,​ как можно видеть из определения виопа Д3).
  
 Если некие данные используются только в развилках и не являются объектами действий алгопроцесса,​ то их можно получать арифметически (в частности,​ как результат алгопроцесса-функции). Но тут уже неоднократно используемую величину имеет смысл вычислить как действие и потом только указывать имя результата вычисления. Это сокращает работу исполнителя. Если некие данные используются только в развилках и не являются объектами действий алгопроцесса,​ то их можно получать арифметически (в частности,​ как результат алгопроцесса-функции). Но тут уже неоднократно используемую величину имеет смысл вычислить как действие и потом только указывать имя результата вычисления. Это сокращает работу исполнителя.
Строка 41: Строка 41:
 Перейдём к циклу Дейкстры. Он также изначально был сформулирован в текстовой записи. Современная формулировка дана в новом издании классической работы «Алгоритмы и структуры данных» Н. Вирта ([[http://​forum.oberoncore.ru/​viewtopic.php?​p=50482#​p50482|Приложение С]]). Фактически она представляет выбор Дейкстры,​ вложенный как тело цикла ПОКА. О смысле конструкции сказано следующее:​ Перейдём к циклу Дейкстры. Он также изначально был сформулирован в текстовой записи. Современная формулировка дана в новом издании классической работы «Алгоритмы и структуры данных» Н. Вирта ([[http://​forum.oberoncore.ru/​viewtopic.php?​p=50482#​p50482|Приложение С]]). Фактически она представляет выбор Дейкстры,​ вложенный как тело цикла ПОКА. О смысле конструкции сказано следующее:​
  
-//​Грубо говоря,​ обычно n-веточный цикл Дейкстры соответствует конструкциям из n обычных циклов,​ каким-то образом вложенных друг в друга. (Алгоритмы и структуры данных,​ с. 268)//+//​Грубо говоря,​ обычно n-веточный цикл Дейкстры соответствует конструкциям из n обычных циклов,​ каким-то образом вложенных друг в друга.// (Алгоритмы и структуры данных,​ с. 268)
  
 Каким же образом?​ Попробуем разобраться с помощью графит-метода (шампур-метод снова недостаточен — нам нужно привлекать и содержание вершин). Каким же образом?​ Попробуем разобраться с помощью графит-метода (шампур-метод снова недостаточен — нам нужно привлекать и содержание вершин).
Строка 59: Строка 59:
 Представляет интерес определение порядка следования по «шапке»,​ вплоть до выхода из цикла. В книге на этот счёт сказано следующее:​ Представляет интерес определение порядка следования по «шапке»,​ вплоть до выхода из цикла. В книге на этот счёт сказано следующее:​
  
-//Хотя в теории Дейкстры последовательность выбора ветвей цикла и вычисления соответствующих охран не определена,​ в этой книжке принято,​ что охраны вычисляются в текстуальном порядке. (Алгоритмы и структуры данных,​ с. 269)//+//Хотя в теории Дейкстры последовательность выбора ветвей цикла и вычисления соответствующих охран не определена,​ в этой книжке принято,​ что охраны вычисляются в текстуальном порядке.// (Алгоритмы и структуры данных,​ с. 269)
  
 Что происходит при этом? Проверяется ПОКА-охрана. Если она истинна — исполнитель идёт на ПОВТОР (выполняет первую ветвь). Если ложна — то исполнитель идёт... нет, не на выход из конструкции (обозначенный как КЦ)... а на текст за телом этой ветви. Это м.б. конец конструкции только в том случае,​ когда в цикле только одна охрана. Как нетрудно убедиться,​ это уже не цикл Дейкстры,​ а обычный цикл. А начало следующей ветви — это ближайшее ИНАЧЕСЛИ — так и попадаем на охрану следующей ветви. Если и она ложна — всё повторяется по шампуру. Что происходит при этом? Проверяется ПОКА-охрана. Если она истинна — исполнитель идёт на ПОВТОР (выполняет первую ветвь). Если ложна — то исполнитель идёт... нет, не на выход из конструкции (обозначенный как КЦ)... а на текст за телом этой ветви. Это м.б. конец конструкции только в том случае,​ когда в цикле только одна охрана. Как нетрудно убедиться,​ это уже не цикл Дейкстры,​ а обычный цикл. А начало следующей ветви — это ближайшее ИНАЧЕСЛИ — так и попадаем на охрану следующей ветви. Если и она ложна — всё повторяется по шампуру.
strukturnaja_algoritmizacija_i_shampur-metod_-_sochinitel_stanovitsja_mudrecom.txt · Последние изменения: 2012/05/20 16:50 — Владислав Жаринов