Семантика оператора “case”
Категория реферата: Рефераты по информатике, программированию
Теги реферата: конспект урока 10 класс, реферат по бжд
Добавил(а) на сайт: Zhelezkin.
Предыдущая страница реферата | 3 4 5 6 7 8 9 10 11 12 13 | Следующая страница реферата
var n, i : integer;
s : real;
begin
{ T }
write(’Введите значение n =’);
readln( n ); { nÎ N }
if n>0 then
begin {(nÎ N)Ù(n>0)}
s:=0 ;
i:=1; {i=1 Ù s=0 Ù n>0}
while i£n do
begin {s=Sk : 0<k<i : 1/k}
begin s:=s+1/i ; i:=i+1 end
{i=n , , n>0};
writeln (’Сумма’, п , ’ членов
гармонического ряда =’’, s)
end {}
else {n£0} writeln (’Ошибка в исходных данных.
Должно быть’, n,’ >0’)
end {}
Рис. 11.1.
В первом комментарии сформулированы пост- и пред- условия, определяющие множество допустимых исходных данных и множество возможных результатов. Комментарий {T} между строками 2 и 3 утверждает, что в этой точке программы допустимо любое состояние. Действительно, мы ничего пока еще не можем сказать в этой точке о значениях переменных этой программы.
Однако, после оператора readln (n) (строка 4) мы уже можем утверждать, что nÎ N, т.е. целое. Как Вы уже, наверное, изучали на семинарских занятиях, Pascal - это строго типизированный язык программирования. Это означает, что каждой переменной в программе как бы сопоставляется предикат, определяющий тип этой переменной. Всякий раз, когда происходит запись нового значения в эту переменную, происходит вычисление значения этого предиката. Если оно T, то запись выполняется, если F, то выдается сообщение об ошибке, и выполнение программы прекращается. Поэтому, после оператора readln (n), т.е. после его нормального завершения, мы можем быть уверены, что n - целое значение. Но мы ничего не можем сказать о величине этого значения. Поэтому, нам надо убедиться,что n > 0 , прежде чем начать вычисления.
В строке 5 логическое выражение n>0 обеспечивает проверку исходных данных на соответствие предусловию программы. Поэтому, после строки 5 мы можем быть уверены, что любое состояние, полученное в этой точке, будет удовлетворять предикату, написанному в виде комментария - {(nÎ N)Ù(n>0)}.
Комментарий в конце 7 строки определяет состояния вычислительного процесса непосредственно перед входом в цикл. Комментарий после заголовка цикла (строка 8) - { s=Sk : 0<k<i : 1/k} - определяет инвариант цикл. То, что это действительно так, мы убедились ранее, при рассмотрении семантики цикла.
Рекомендуем скачать другие рефераты по теме: новшество, конспект.
Предыдущая страница реферата | 3 4 5 6 7 8 9 10 11 12 13 | Следующая страница реферата