Реферат: Семантика оператора case

Преобразуем каждый из предикатов (1)-(3) в соответствии с определением семантики оператора присваивания.

Получим:

(a=1) Þ (c+a>1) º c>0

(a=2) Þ (a+1>1) º 3>1 º T

(a=3) Þ (a-c>1) º c<2

В итоге с использованием правил эквивалентных преобразований из таблицы 5.8 получим

((a=1) Ù (c>0)) Ú (a=2) Ú ((a=3) Ù (c<2))

Семантика оператора цикла.

Здесь нам надо определить, как оператор цикла в языке Pascal меняет состояние вычислительного процесса. Другими словами, если задано постусловие R, то каково должно быть для него предусловие wp, чтобы в результате выполнения оператора получить R.

Операторы цикла в любом языке программирования реализуют операцию композиции повторения (см. лекция 3). В языке Pascal есть три вида оператора цикла:

while B do S;

for i:=E1 to E2 do S; (for i:=E1 downto E2 do S)

repeat S1 ; S2 ; … ; Sk until B;

где B - логическое выражение,

E1 , E2 - выражения,

S1 ; S2 ; … ; Sk - операторы.

С циклом вида (1) мы уже встречались в примере 9.1 вычисления n членов гармонического ряда. Фрагмент программы (строки 5-8) показан на рис. 11.1

{Вычисление суммы ряда}

{Инициализация цикла}

s:=0;

i:=1;

{Вычисление суммы первых n членов гармонического ряда}

while i£n do begin s:=s+1;

i:=i+1 end {while}

Рис. 11.1.

На рис. 9.3 были показаны все состояния вычислительного процесса программы Harmonic для n=5. Фактически каждая итерация этого цикла представляет из себя выполнение оператора if_endif на рис. 11.2, а операторы в строках 5,6 устанавливают значения для s и i, необходимые для начала цикла.

if

B1 ® s:=s+1/i; i:=i+1;

. . . . .

B5 ® s:=s+1/i; i:=i+1;

К-во Просмотров: 1346
Бесплатно скачать Реферат: Семантика оператора case