Средства описания структурных алгоритмов.
(кроме схем опис-х выше) Псевдокоды.Псевдокод – формализованное текстовое описание алгоритма (текстовая нотация). В литературе были предложены несколько вариантов псевдокодов. Один из них приведен в табл. 2.4.
Описать с помощью псевдокодов неструктурный алгоритм невозможно. Использование псевдокодов изначально ориентирует проектировщика только на структурные способы передачи управления=>требует более тщательного анализа разрабатываемого алгоритма. В отличие от схем алгоритмов, псевдокоды не ограничивают степень детализации проектируемых операций. Они позволяют соизмерять степень детализации действия с уровнем абстракции, на котором это действие рассматривают, и хорошо согласуются с основным методом структурного программирования – методом пошаговой детализации.
Flow-формы.- представляют собой графическую нотацию описания структурных алгоритмов, которая иллюстрирует вложенность структур. Каждый символ Flow-формы соответствует управляющей структуре и изображается в виде прямоугольника. Для демонстрации вложенности структур символ Flow-формы может быть вписан в соответствующую область прямоугольника любого другого символа. В прямоугольниках символов содержится текст на естественном языке или в математической нотации. Размер прямоугольника определяется длиной вписанного в него текста и размерами вложенных прямоугольников.
Диаграммы Насси-Шнейдермана. - являются развитием Flow-форм. Основное их отличие от Flow-форм: область обозначения условий и вариантов ветвления изображают в виде треугольников.Такое обозначение обеспечивает большую наглядность представления алгоритма.
|
|
Также, как при использовании псевдокодов, описать неструктурный алгоритм, применяя Flow-формы или диаграммы Насси-Шнейдермана, невозможно (для неструктурных передач управления в этих нотациях просто отсутствуют условные обозначения). В то же время, являясь графическими, эти нотации лучше отображают вложенность конструкций, чем псевдокоды.
Общим недостатком Flow-форм и диаграмм Насси-Шнейдермана является сложность построения изображений символов, что усложняет практическое применение этих нотаций для описания больших алгоритмов.
Стиль оформления программы.
С т.зр технологичности хороший стиль оформления программы, облегчающий ее восприятие и автором, и др. программистами if, придется ее проверять или модифицировать. исходя из того, что любую программу неоднократно придется просматривать, следует придерживаться хорошего стиля написания программ.
Стиль оформления программы включает:
-правила именования объектов программы (переменных, ф-ий, типов, данных и т.п.);
|
|
-правила оформления модулей; -стиль оформления текстов модулей.
Правила именования объектов программы.При выборе имен следует придерживаться правил:
•имя объекта должно соответствовать его содержанию, например:
Maxltem - максимальный элемент; Nextltem - следующий элемент;
•если позволяет язык программирования, можно использовать символ «_» для визуального разделения имен, состоящих из нескольких слов, например:
Max_ltem, Next_Item;
•необходимо избегать близких по написанию имен, например:Index и InDec.
Правила оформления модулей.Каждый модуль должен предваряться заголовком, который, как минимум,содержит:
-название модуля; -краткое описание его назначения;
-краткое описание входных и выходных параметров с указанием единиц измерения;
-список используемых (вызываемых) модулей;
-краткое описание алгоритма (метода) и/или ограничений;
-ФИО автора программы:
-идентифицирующую информацию (номер версии). Например:
{*****************************************************}
{* Функция: Length_Path(n:word; L: array of real):real *}
{* Цель: определение суммарной длины отрезков *}
|
|
{* Исходные данные: *}
{* n - количество отрезков, *}
{* L - массив длин отрезков (в метрах) *}
{* Результат: длина (в метрах) *}
{* Вызываемые модули: нет *}
{* Описание алгоритма: *}
|
|
{* отрезки суммируются методом накопления, n > О *}
{* Дата: 25.12.2001 Версия 1.01. ' *}
{* Автор: Иванов И.И. *}
{* Исправления: нет *}
{*********************************}
Стиль оформления текстов модулей.- определяет использование отступов, пропусков строк и комментариев, облегчающих понимание программы. пропуски строк и комментарии используют для визуального разделения частей модуля, например:
{проверка количества отрезков и выход, если отрезки не заданы}
if n<0 then
begin WriteLn('Количество отрезков отрицательно');
exit; end;
{цикл суммирования длин отрезков}
S:=0;
for i: =0 to п-1 do S: =S + Len[i];
Для таких языков, как Pascal, C++ и Java, использование отступов позволяет прояснить структуру программы: обычно дополнительный отступ обозначает вложение операторов языка, например:
атах:=а[1,1];
for i:=1 to n do
for j:=1 to m do
if a[i,j]>amax then amax:=a[i,j];
КОМЕНТАРИИ. Комментировать следует цели выполнения тех или иных действий, а также группы операторов, связанные общим действием, т.е. комментарии должны содержать некоторую дополнительную (неочевидную) информацию, например:
{проверка условия и выход, если условие не выполняется}
if n<0 then
begin
WriteLn('Количество отрезков отрицательно');
exit;
end;
Для языков низкого уровня(Ассемблер) стиль, облегчающий понимание, предложить труднее. В этом случае лучше ком-ть и блоки операторов, и каждый оператор, пр:
цикл суммирования элементов массива;
установки цикла mov АХ, 0; обнуляем сумму
mov CX, п; загружаем счетчик цикла
mov BX, 0;смещение первого элемента массива;
тело цикла cycle:add AX, a[BX];
добавляем элемент add BX, 2;
определяем адрес следующего loop cycle;
цикл на n повторений;
выход из цикла при обнулении счетчика
Дата добавления: 2018-02-15; просмотров: 1390; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!