РефератыИнформатика, программированиеБаБазис стандартной и рекурсивной схемы. Верификация программы

Базис стандартной и рекурсивной схемы. Верификация программы

Министерство РФ по связи и информатизации


«Поволжская государственная академия телекоммуникаций и информатики»


Кафедра «программного обеспечения информационных технологий
»


КОНТРОЛЬНАЯ РАБОТА ПО КУРСУ:


«Теория вычислительных процессов»


2010


Задание 1


Построить базис стандартной схемы;


Реализовать стандартную схему в графовой и линейной формах;


Составить интерпретацию для заданной стандартной схемы;






6 Расчет суммы чисел Фибоначчи Расчет суммы первых четырех чисел Фибоначчи

Числа Фибоначчи (Fi
) определяются по формулам F0
= F1
= 1; Fi
= Fi –1
+ Fi –2
при i = 2, 3, ... (каждое очередное число равно сумме двух предыдущих).


Вычислим сумму первых четырёх чисел Фибоначчи, которые не превосходят заданного натурального числа М. Зададим число M = 4.


алгоритм
Фибоначчи (аргумент целое
М, результат целое
S)

дано
| M>0


начало цел
F0, F1, F2


F0:=1; F1:=1; F2:=2


S:=4 | 4 – сумма первых трех чисел Фибоначчи


начинается пока
F2<=M


F0:=F1; F1:=F2; F2:=F0+F1 | серия переприсваиваний


S:=S+F2;


кончается


S:=S–F2 | из S вычитается последнее значение F2, превосходящее M


Конец


Исполнение алгоритма




























F0
F1
F2
S
F2<M
1 1 2 4 +
1 2 3 4+3 +
2 3 5 7+5 − (кц)
12-5=7

Базис класса стандартных схем программ


Полный базис класса стандартных схем
состоит из 4-х непересекающихся, счетных множеств символов и множества операторов - слов, построенных из этих символов.


Множества символов полного базиса:


1. X = {F0
, F1
, F2
, S, M} - множество символов, называемых переменными
;


2. Множество функциональных символов
; верхний символ задает местность символа
; нульместные символы называют константами и обозначают начальными буквами латинского алфавита a, b, c...;


3. Множество предикатных символов
; нульместные символы называют логическими константами;


4. {program, uses, var, begin, end} - множество специальных символов.


Множество операторов включает пять типов:


1. начальный оператор
- слово вида start(F0
, F1
, F2
), где F0
, F1
, F2
- переменные, называемые результатом этого оператора;


2. заключительный оператор
- слово вида stop(S), S - терм; вхождения переменных в терм S называются аргументами этого оператора;


3. оператор
присваивания
– F0
:=1; F1
:=1; F2
:=2; S:=4; F0
:=F1
; F1
:=F2
; F2
:=F0
+F1
; S:=S+F2
; S:=S–F2
;


4. условный оператор
(тест) – логическое выражение; F2
<=M;


5. оператор петли
- односимвольное слово While
.


Графовая форма стандартной схемы на рис. 1.




Рис. 1


Линейная форма стандартной схемы


Turbo

Pascal


Program SummaFib;


Uses Crt;


Var M, {zadannoe chislo}


F0, F1, F2, {3 posledovatelnyh chisla Fibonachchi}


S : Integer; {summa chisel Fibonachi}


BEGIN


ClrScr;


Write('Vvedite naturalnoe M : ');


ReadLn(M);


F0:=1; F1:=1; F2:=2;


S:=4; {4 - summa pervih 3-h chisel Fibonachchi}


Write('Chisla Fibonachchi, ne prevoshodyaschie ', M, ' :', F0:4, F1:4);


While F2<=M do


begin


F0:=F1; F1:=F2; Write(F1 : 4);


F2:=F0+F1; S:=S+F2;


end;


S:=S-F2; {vychitanie iz summy poslednego chisla, kotoroe prevoshodit M}


WriteLn; WriteLn;


WriteLn('OTVET: Summa etih chisel ravna = ', S); ReadLn


END
.


Задание 2


Построить базис рекурсивной схемы;


Составить интерпретацию для заданной рекурсивной схемы (рис. 2);


Составить протокол выполнения программы;






6


Составить рекурсивную программу-функцию подсчета количества всех положительных делителей натурального числа n. Рассчитать количество делителей для числа 10.


Рис. 2


TURBO PASCAL


program Chislo;


uses crt;


type r=array[1..10] of integer;


var


d,x:integer;


a:r;


y:integer;


begin


clrscr;


y:=1;


textcolor(6);


write('NAHOZHDENIE DELITELEJ');


gotoxy(2,2);


textcolor(9);


write('Vedite chislo, u kotorogo nado najti kolichestvo delitelej: ');


readln(x);


textcolor(6);


write ('Deliteli chisla ' ,x, ' : ');


for d:=1 to x div 2 do


begin


textcolor(9);


if x mod d=0 then begin


writ

e(d,' ');


inc(y);end;end; {Y:= Y + 1}


writeln(x);


textcolor(5);


write('Kolichestvo delitelej: ' ,y);


readln
;


end
.


Результат работы PASCAL-программы (рис. 3)



Рис. 3


Задание 3


Разработать алгоритм программы, решающей поставленную задачу;


Составить стандартную схему программы и записать полученную программу в линейной форме (рис. 4);


Для каждого оператора программы, записанного в линейной форме определить слабейшие предусловия.





6 Расчет суммы чисел Фибоначчи




Рис. 4


Turbo Pascal


Program SummaFib;


Uses Crt;


Var M, {Zadannoe chislo}


F0, F1, F2, {3 posledovatelnyh chisla Fibonachchi}


S : Integer; {Summa chisel Fibonachch}


BEGIN


ClrScr;


Write('Vvedite naturelnoe chislo M: ');


ReadLn(M);


F0:=1; F1:=1; F2:=2;


S:=4; {4 - summa pervyh 3-x chisel Fibonachchi}


Write('Chisla Fibonachchi, ne prevoshodyaschie ', M, ' :', F0:4, F1:4);


While F2<=M do


begin


F0:=F1; F1:=F2; Write(F1 : 4);


F2:=F0+F1; S:=S+F2;


end;


S:=S-F2; {vychitanie iz summy poslednego chisla, kotoroe prevoshodit M}


WriteLn; WriteLn;


WriteLn('O T V E T: Summa etih chisel ravna ', S); ReadLn


END
.


Результаты работы Pascal-программы (рис. 5).



Рис. 5


Слабейшие предусловия операторов:


1. начальный оператор
- слово вида start(F0
, F1
, F2
), где F0
= 1, F1
= 1,


F2
- переменные, называемые результатом этого оператора;


2. заключительный оператор
- слово вида stop(S), где S = 2 - терм; вхождения переменных в терм S называются аргументами этого оператора;


3. оператор присваивания
– F0
:=1; F1
:=1; F2
:=2; S:=4; F0
:=F1
, где F1
=1; F1
:=F2
, где F2
=2; F2
:=F0
+F1
, где F0
=1, F1
=1; S:=S+F2
, где S=4, F2
=3; S:=S–F2
, где S=4, F2
=2;


4. условный оператор
(тест) – логическое выражение; F2
<=M, где F2
=2,


M>1;


5. оператор петли
- односимвольное слово While
. Слабейшее предусловие такое же, как в условном операторе
.


Задание 4


Разработать алгоритм программы, решающей поставленную задачу;


Составить стандартную схему программы и записать полученную программу в линейной форме (рис. 6);


Используя метод индуктивных утверждений и правила верификации Хоара произвести верификацию программы.





6 Расчет произведения чисел Фибоначчи


Рис. 6


Turbo Pascal


Program ProizFib;


Uses Crt;


Var M, {zadannoe chislo }


F0, F1, F2, {tri posledovatelnyh chisla Fibonachchi}


S : Integer; {summa chisel Fibonachchi}


R : Real; {proizvedenie chisel Fibonachchi}


BEGIN


ClrScr;


Write('Vvedite naturalnoe chislo M: ');


ReadLn(M);


F0:=1; F1:=1; F2:=2;


S:=4; {4 - summa pervyh 3-x chisel Fibonachchi}


R:=2; {2 - proizvedenie pervyh 3-x chisel Fibonachchi}


Write('Chisla Fibonachchi, ne prevoshodyaschie ', M, ' :', F0:4, F1:4);


While F2<=M do


begin


F0:=F1; F1:=F2; Write(F1 : 4);


F2:=F0+F1; S:=S+F2; R:=R*F2


end;


S:=S-F2; {vychitanie iz summy poslednego chisla, kotoroe prevoshodit M}


R:=R/F2; {Delenie iz proizvedeniya chisla, kotoroe prevoshodit M}


WriteLn; WriteLn;


WriteLn('O T V E T: Summa etih chisel ravna: ', S); ReadLn;


WriteLn; WriteLn;


WriteLn('O T V E T: Proizvedenie etix chisel ravno: ', R); ReadLn


END
.


Результаты работы Pascal-программы (рис. 7).



Рис. 7


Задание 5


Составить алгоритм выполняемого процесса;


Определить множества условий и событий для процесса;


Построить сеть Петри для моделируемого процесса.





6 Работа банкомата в режиме выдачи наличных денежных средств

Условиями для рассматриваемой системы являются:


а) банкомат ждет;


б) запрос поступил и ждет;


в) банкомат обрабатывает запрос;


г) запрос обработан.


Событиями для этой системы являются:


1.Запрос поступил.


2. Банкомат начинает обработку запроса.


3. Банкомат заканчивает обработку запроса.


4. Результат обработки выдаются деньги клиенту.


Для перечисленных событий можно составить следующую таблицу их пред- и постусловий (рис. 8).










Событие Предусловия Постусловия

1


2


3


4


нет


а, б


в


г


б


в


г, а


нет









а


Рис. 8


Предусловие выполняется для события 2.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Базис стандартной и рекурсивной схемы. Верификация программы

Слов:1318
Символов:13855
Размер:27.06 Кб.