Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





 

ГОСТ 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 { Исполняемая часть модуля }

Procedure InitStack(Var Top:TP); { Процедура инициализации стека }

Begin

Top:=Nil { Ссылка на вершину стека }

End; { InitStack }

 

Function EmptyStack(Top:TP):Boolean; { Функция проверки пустоты стека }

Begin

EmptyStack:=Top=Nil

End; { EmptyStack }

Рисунок 5 (продолжение)

 


 

Procedure InStack(X:Tinf; Var Top:TP); { Процедура включения элемента в стек }

Var pn:TP; { Ссылка на новый элемент }

Begin

New(pn); { Резервирование памяти для нового элемента }

pn^.inf:=X; { Заполнение поля информации }

pn^.pSled:=Top;{ Заполнение поля ссылки }

Top:=pn { Новая ссылка на вершину стека }

End; { InStack }

 

Procedure OutStack(Var X:Tinf;Var Top:TP); { Процедура извлечения элемента из стека }

Var pu:TP; { Ссылка на удаляемый элемент }

Begin

If Top<>Nil { Если стек не пуст }

Then Begin

X:=Top^.inf; { Извлечение информации }

pu:=Top; { Запоминание ссылки на удаляемый элемент }

Top:=Top^.pSled;{ Новая ссылка на вершину стека }

Dispose(pu) { Удаление элемента стека }

End

End; { OutStack }

 

End.

Рисунок 5 (продолжение)

 

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

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

Необходимо выполнять исчерпывающие проверки в программе. Анализ корректности входных данных в программе является обязательным. Не следует писать изменяющих себя программ. Несомненную пользу программисту принесет знакомство с литературой, посвященной технике и технологии программирования [3 - 6].

 


 

 

Date: 2015-09-19; view: 395; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию