Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документирование программного обеспечения.doc
Скачиваний:
64
Добавлен:
02.04.2015
Размер:
200.7 Кб
Скачать

44. 4346. 04 - 13

Руководитель Студентка гр.4346

доц. каф.44 Бровин Н.Н. Дергачева Е.В.

Нормоконтролер

доц. каф.44 Попов В.П.

2004

Рисунок 2 – Пример заполнения титульного листа программного документа

- 2 -

44. 4846. 00 - 13

СОДЕРЖАНИЕ

1. Описание математических методов получения случайных величин . 2

1.1. Получение псевдослучайных величин . . . . . . . . . . . . . . . .3

1.1.1. Метод середины квадрата . . . . . . . . . . . . . . . . . . .4

1.1.2. Метод вычетов . . . . . . . . . . . . . . . . . . . . . . .. . 7

1.2. Получение дискретных случайных величин . . . . . . . . . . . 12

      1. Получение дискретных случайных величин из заданного

массива с заданным в виде массива законам распреде-

ления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

      1. Получение дискретных случайных величин из заданного

массива с распределением Пуассона . . . . . . . . . . 18

Рисунок 3 – Пример фрагмента содержания программного документа

– 84 –

44.4846.00 -13

Лист регистрации изменений

Номера листов (страниц) Входящ. П Д

Всего Номер номер о а

Изме- Изме- Заме- Новых Аннули- листов доку- сопр. д т

не- нен- ненных рован- (стр.) мента докум. п. а

ние ных ных в и

докум. дата

Рисунок 4 – Форма листа регистрации изменений

2. Рекомендации по содержанию основной части программных документов

Материалы программного документа располагаются в следующей последовательности: титульный лист(первый лист документа),лист аннотации,лист(листы)содержания,текст документа(с рисунками, таблицами и т.д.),приложения,лист регистрации изменений.

Приложения выполняются при необходимости и служат для лучшего понимания принципа работы программы. Приложения могут содержать примеры использования программы, примеры расположения исходных данных в программных структурах и другие сведения, облегчающие понимание программы.

Аннотация располагается на отдельной пронумерованной странице документа с заголовком "АННОТАЦИЯ" и не нумеруется, как раздел документа.

Содержание документа располагается на отдельной пронумерованной странице (страницах) сразу после аннотации, снабжается заголовком "СОДЕРЖАНИЕ".

2.1. Текст программы. Требования к содержанию и оформлению

ГОСТ 19.101-77 определяет текст программы как запись программы с необходимыми комментариями. Программный документ "Текст программы" должен состоять из: титульной части, информационной части, основной части, части регистрации изменений.

В разделе "СОДЕРЖАНИЕ" информационной части должны быть указаны названия всех программных единиц (программ, подпрограмм, модулей, и т.д.), входящих в программный комплекс и номера страниц документа, на которых располагаются тексты соответствующих программных единиц. В основной части должны быть представлены тексты всех программных единиц, причем текст каждой программной единицы должен начинаться со спецификации и снабжаться необходимыми комментариями. Спецификацией назовем краткое определение функционального назначения программного продукта и описание входных и выходных данных, а также ряда внутренних структур данных, необходимых для понимания логики работы программы. Спецификация должна предварять общий текст программы и располагаться в отдельных строках комментария. Основной текст программы должен быть снабжен комментариями, определяющими логику работы программы. Бессмысленные комментарии типа "Цикл по I от 1 до 15" перед оператором цикла только мешают пониманию программы. Комментарии должны быть такими, чтобы прочитав их без текста программы, можно было восстановить логику работы программы. Лучшей документацией внутренней логики программы является простая и ясная структура текста программы, использование сдвига по строке в соответствии с уровнем вложенности, осмысленные имена и соблюдение других правил, касающихся хорошего стиля программирования [3, 4, 5, 6]. Пример программы приведен на рисунке 5.

Program Control;

{ Программа контроля правильности расстановки скобок в программах }

Uses Stack; { Подключение модуля для работы со стеком }

Procedure Brackets(NameF:String); { Процедура проверки правильности расстановки скобок в тексте программы - текстовом файле с именем NameF }

Procedure Error(n:Byte; s:Char); { Процедура расшифровки ошибок }

Begin Case n Of

1 : WriteLn(‘Нет соответствия ’,s,’ скобок !’);

2 : WriteLn(‘Лишняя закрывающая скобка ’,s,’ !’);

3 : WriteLn(‘Лишняя открывающая скобка ’,s,’ !’);

End;

End; { Error }

Var FT:Text; Top:TP; s,sz,sk:Char;

Begin

Assign(FT,NameF);

Reset(FT);

InitStack(Top); { Инициализация стека }

While Not Eof(FT) { Пока не конец файла }

Do Begin While Not EoLn(FT) { Пока не конец строки }

Do Begin Read(FT,s);

Case s of

‘(‘,’[‘,’{‘: InStack(s,Top);

‘}’,’]’,’)’: If Not EmptyStack(Top)

Then Begin { Стек не пуст }

OutStack(sk,Top);

Case sk of

‘(‘ : sz:=’)’;

‘[‘ : sz:=’]’;

‘{‘ : sz:=’}’

End;

If s<>sz

Then Begin Error(1,s); Exit

End

End

Else Begin { Стек пуст} Error(2,s); Exit

End

End; { Case }

End; { While }

ReadLn(FT)

End;

Close(FT);

If EmptyStack(Top) { Если стек пуст }

Then WriteLn(‘ Скобки расставлены правильно !’)

Else Begin OutStack(sk,Top); Error(3,sk)

End

End; { Brackets }

Рисунок 5 – Текст программы

Function FileExist(NameF:String):Boolean;

{ Функция проверки существования файла любого вида }

Var F:File; { Любой вид файла}

Begin Assign(F,NameF);

{$I-} { Отключение автоматического контроля чтения-записи }

Reset(F); { Открытие для чтения }

{$I+} { Включение автоматического контроля чтения-записи }

If IOResult=0 { Если файл существует }

Then Begin FileExist:=True;

Close(F)

End

Else FileExist:=False

End; { FileExist }

Var NameFT:String; s:Char;

Begin

Repeat

WriteLn(‘Полное имя файла с текстом проверяемой программы ?’);

ReadLn(NameFT);

If FileExist(NameFT) Then Brackets(NameFT)

Else WriteLn(‘Файл’,NameFT,’не существует!’);

WriteLn(‘Проверить еще одну программу ?’);

ReadLn(s);

Until Not (s in [‘Д’,’д’,’Y’,’y’]);

End.

UNIT Stack; { Модуль для работы со стеком }

INTERFACE { Интерфейсная часть модуля }

Type Tinf=Char; { Тип информации }

TP=^Tel; { Ссылочный тип }

Tel=Record

inf:Tinf; { Поле информации }

pSled:TP { Поле ссылки }

End;

Procedure InitStack(Var Top:TP); { Инициализация стека }

Function EmptyStack(Top:TP):Boolean; { Проверка пустоты стека }

Procedure InStack(X:Tinf;Var Top:TP); { Включение элемента }

Procedure OutStack(Var X;Tinf;Var Top:TP); { Извлечение элемента }

IMPLEMENTATION { Исполняемая часть модуля }