Реферат: Написание программ вычисления факториалов

Пусть

E=x<y Ù("i : 0 £ i < n : bi < y) .

Тогда

, т.к. i не свободно в Е.

Определение 10.4. wp(x : = e , R) = если domain(e) , то ;

где domain(e) - предикат, описывающий множество состояний, для которых значение выражения е определено.

Примеры 10.3. :

wp(x : =5 , х=5) = (5=5) = Т ,

т.е. любое состояние оператор x : =5 перерабатывает в состояние, на котором предикат х=5 выполняется.

wp(x : =5 , х¹5) = (5¹5) = F ,

т.е. нет такого состояния, которое бы оператор x : =5 , перевел в состояние х¹5 .

wp(x : =x+1 , х<0) = (x+1<0) =(x<-1) .

wp(x : =x´x , х4 =10) = ((x´x)4 =10) = (x8 =10) .

Пусть с - константа, тогда

wp(x : =е , х=с) = (е=с) ,

т.е. оператор x : =е обязательно завершится и даст в результате состояние, где x имеет значение с, если, и только если, значение выражения е при выполнении этого оператора будет равно с .

Пусть с - константа, а х и y - имена двух разных переменных, тогда

wp(x : =е , у=с) = (у=с) ,

т.е. выполнение оператора x : = е не может изменить значение переменной у.

В последнем примере предполагается, что x : =е может изменить только значение переменной х. Вычисление выражения е не может изменить значения никакой переменной, т.е. нет, так называемого, побочного эффекта. Побочный эффект мы рассмотрим позднее в лекции 15.

Запрещение побочных эффектов исключительно важно, т.к. это позволяет рассматривать выражения в программе, так же, как в математике. Это означает, что выражение в программе обладает многими свойствами выражений в математике.

Идея описания семантики оператора в терминах пред- и постусловий применима не только к отдельному оператору, но и к группе операторов. Покажем, что последовательность операторов

t : =х ; x : =y ; y : = t ;

обеспечивает обмен значениями у переменных х и y .

Пусть начальное значение {x=Y , y=X}.

{x=Y Ù y=X}

К-во Просмотров: 256
Бесплатно скачать Реферат: Написание программ вычисления факториалов