русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-08-31; просмотров: 977; Нарушение авторских прав


 

ГОСТ 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].

 


 

 



<== предыдущая лекция | следующая лекция ==>
К. ГР. ГД – КД | Описание программы. Требования к содержанию и оформлению


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.292 сек.