Мониторинг обменных курсов валют
18c0693f

Структурированные программы


В этом разделе рассмотрим в качестве средства описания алгоритмов структурированные программы. Они вычисляют функции, используя минимальные средства: элементарные присваивания, условные операторы и циклы.

Определим вначале синтаксис структурированных программ. Зафиксируем для этого некоторое счетное множество имен переменных Var, которые будут использоваться в программах. Как обычно, будем считать, что оно включает имена x, x1,x2,…, y, y1,..., z,z1,... и т.п. В последующих определениях x, y, z - это произвольные переменные из Var.

Определение 7.1. Оператор присваивания. Присваивание - это выражение одного из следующих трех видов:

Определение 7.2. Условия. Условие - это выражение одного из двух видов:

а) x = y или б) x < y.

Структурированные программы определяются индуктивно.

Определение 7.3.Структурированные программы.

Конструкция в п. (б) называется последовательным применением или композицией программ ?1 и ?2, конструкция в п. (в) называется условным оператором; конструкция в п. (г) - это оператор цикла, ? - условие цикла, а ?1 - тело цикла.

С помощью структурированных программ (далее называемых просто программами) вычисляются (частичные) функции от натуральных аргументов, принимающие натуральные значения. С каждой программой ? свяжем естественным образом множество входящих в нее переменных Var?

(определите это множество индукцией по построению программы). В процессе работы программа изменяет значения этих переменных. Операционная семантика задает правила такого изменения.

Определение 7.4. Состояние - это отображение ? из множества переменных Var во множество N.
Для x

Var через ?(x) обозначим значение переменной x в состоянии ?. Через S обозначим множество всех состояний.

Разумеется, при рассмотрении конкретной программы ? нас будут интересовать значения переменных из Var?.

Определение 7.5. Операционная семантика программы ? - это отбражение (вообще говоря, частичное) типа S
S, которое программа ? индуцирует на множестве всех состояний. Через ?(?) обозначим состояние - результат применения программы ? к состоянию ?. Оно определяется индукцией по построению программы.



Пусть ? - программа, Var? - множество ее переменных. Выделим среди эти переменных некоторое подмножество входных

переменных x1,…, xn и одну результирующую (выходную) переменную y (она может быть одной из входных). Переменные из Var? , не являющиеся входными, будем называть вспомогательными.





Самый выгодный курс обмена валюты