УДК 65.011.66:002:006.354

Группа Т55

Г О С У Д А Р С Т В Е Н Н Ы Й   С Т А Н Д А Р Т   С О Ю З А   С С Р


Единая система программной документации

ГОСТ 19.005-85

 

Р-СХЕМЫ АЛГОРИТМОВ И ПРОГРАММ

Обозначения условные графические и правила выполнения

United system for program documentation.
R-charts. Graphical charts symbols and conventions for charting

ОКСТУ 0019


Постановлением Государственного комитета СССР по стандартам от 27 марта 1985 г. № 893 срок введения установлен

с 01.07.86

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

Стандарт устанавливает условные графические обозначения элементови структур Р-схем, а также правила их выполнения автоматическим и (или) ручным способами.

Р-схема (R-chart) - нагруженный по дугам ориентированный граф, изображаемый с помощью вертикальных и горизонтальных линий и состоящий из структур (подграфов), каждая из которых имеет только один вход и один выход.

1. УСЛОВНЫЕ ОБОЗНАЧЕНИЯ ЭЛЕМЕНТОВ Р-СХЕМ

1.1. Перечень, наименование, обозначения и функции элементов Р-схем должны соответствовать указанным в табл. 1.

Таблица 1

Наименование Обозначение и его содержание Функция
1. Вершина

Окружность диаметром не менее 2 мм
Вершина Р-схемы
2. Вершина специальная

Левая и правая круглые скобки на расстоянии не менее 1 мм
Выделение вершины Р-схемы
3. Дуга

Горизонтальная линия со стрелкой а) справа б) слева
Направленное соединение двух вершин Р-схемы
4. Дуга специальная

Две горизонтальные линии, отстоящие друг от друга на расстоянии 0,8 -- 3 мм
Специальное соединение двух вершин Р-схемы
5. Линия соединительная

Вертикальная линия
Соединение по вертикали указанных выше элементов Р-схемы
6. Комментарий

Пунктирная вертикальная (вверх или вниз) и горизонтальная (влево или вправо) линии, оканчивающиеся квадратной скобкой, за которой следует текст комментария.
Связь между элементом Р-схемы и текстом комментария.

1.2. В справочном приложении 1 приведены примеры допустимых условных обозначений элементов Р-схем, выполненных на алфавитно-цифровых устройствах ввода-вывода.

1.3. В справочном приложении 2 приведены примеры выполнения элементов Р-схем.

2. СТРУКТУРА Р-СХЕМ

2.1. Структуры Р-схем должны соответствовать указанным в табл. 2 или полученным из них путем применения правил соединения структур (разд. 3).

Таблица 2

Наименование Обозначение и его содержание Функция
1. Структура базовая

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

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

Примечания.

1. Вершина структуры, из которой исходит первая сверху дуга, называется начальной.

2. Вершина структуры, в которую входит первая сверху дуга, называется конечной.

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

2.2. В справочном приложении 3 и на черт. 1-4 приведены примеры записи структур Р-схем.

3. ПРАВИЛА СОЕДИНЕНИЯ СТРУКТУР Р-СХЕМ

3.1. Устанавливаются следующие соединения структур Р-схем:

В результате их применения получаются структуры Р-схем, к которым также применимы установленные правила их соединения.

3.1.1. Последовательное соединение структур Р-схем осуществляется путем слияния конечной вершины и соединительной линии одной структуры с начальной вершиной и соединительной линией другой, располагемой за ней структуры. Если конечная вершина первой и (или) начальная вершина второй структуры являются специальными, то в результате слияния образуется специальная вершина, при этом соединительные линии обеих структур не сливаются. Начальной и конечной вершинами результирующей структуры становятся соответственно начальная вершина первой и конечная вершина второй из соединяемых структур.

Пример последовательного соединения г структур а, б, в и а приведен на черт. 1.

Черт. 1

3.1.2. Параллельное соединение структур Р-схем осуществляется путем связи соединительными линиями начальной и конечной вершин одной структуры соответственно с начальной и конечной вершинами другой, расположенной под ней, структуры. Начальной и конечной вершинами результирующей структуры становятся соответственно начальная и конечная вершины первой (верхней) из соединяемых структур.

На черт. 2 изображены примеры параллельного соединения структур; а - приведенных на черт. 1 а, 1 б и 1 а; б - приведенных на черт. 1 в, 1 б; в - приведенных на черт. 1 б, 1 б.

Черт. 2

3.1.3. Вложенное соединение структур Р-схем осуществляется путем замены дуги структуры, в которую производится вложение, на последовательное соединение дуги того же направления и вкладываемой структуры. При этом соединительная линия из конечной вершины вкладываемой структуры и сама конечная вершина (если она не является конечной вершиной параллельного соединения структур) сливаются соответственно с соединительной линией и вершиной, в которые входила заменяемая дуга. Начальной и конечной вершинами результирующей структуры остаются соответственно начальная и конечная вершины структуры, в которую произвоится вложение.

Примеры вложенного соединения структур Р-схем приведены на черт. 3 и 4. На черт. 3 вложение осуществляется путем замены дуги со стрелкой справа, а на черт. 4 - слева.

На черт. 3 изображены примеры вложенного соединения: а - структуры 1 в в структуру 1 б; б - последовательного соединения структур 1 б и 1 а в структуру 1 в; в - структуры 1 в в структуру 1 в; г - структуры 2 б в структуру 1 б.

Черт. 3

На черт. 4 изображены примеры вложенного соединения: а - структуры 1 б в структуру 1 б; б - последовательного соединения структур 1 в, 1 б и 1 а в структуру 1 б; в - структуры 1 б и 2 б в структуру 1 б. структуру 1 б

Черт. 4

4. НАДПИСИ НА ЭЛЕМЕНТАХ И СТРУКТУРАХ Р-СХЕМ

4.1. Написи на элементах и структурах Р-схем должны соответствовать указанным в табл. 3.

4.2. В справочном приложении 4 приведены примеры выполнения надписей на элементах и структурах Р-схем.

Таблица 1

Наименование Обозначение и его содержание Функция
1. Надпись внутри специальной вершины
(СТРОКА)
Тип структуры Р-схемы, определяющий ее особое реализацию
2. Надпись над дугой
Условие прохождения по дуге
3. Надпись под дугой
Действие, выполняемой при прохождении по дуге
4. Надпись над специальной дугой
Задает специальное (определенное при реализации) выполнение структуры Р-схемы
5. Надпись под специальной дугой
Действие, выполняемое специальным образом при прохождении по дуге
6. Надпись около начальной вершины структуры

Имя, записанное внутри структуры Р-схемы около начальной ее вершины без пробела
Имя структуры Р-схемы
7. Надпись в конце дуги

Знаки "Звездочка" или "номер" с именем в конце дуги без пробелов. Имя может отсутствовать.
Перевод в начало (а) или в конец (б) структуры Р-схемы с указанным именем.

При отсутствии имени переход осуществляется в начало (а) или конец (б) данной Р-схемы

Примечания.

1. СТРОКА - последовательность любых знаков

2. ЗАПИСЬ - любой текст, включая пустой, формульный, формальный (на языках программирования), содержащий любые специальные знаки, таблицы, рисунки и т. п. и записанный в одну и более строк таким образом, что длина любой строки не превышает длину дуги, соответствующий тексту.

3. ИМЯ - идентификатор по ГОСТ 19781-83.

5. НАДПИСИ ВЫПОЛНЕНИЯ Р-СХЕМ

5.1. Р-схемы в программных документах выполняются на листах формы 1 или формы 2 в соответствии с ГОСТ 19.106-78.

5.2. На одном листе может располагаться одна или несколько без переноса Р-схем, каждая из которых может сопровождаться текстом, записываемым до и (или) после нее. Правила оформления текстов Р-схем определяются при реализации. Текст Р-схемы, текст ее комментария и ЗАПИСИ на элементах Р-схем для одного способа выполнения (ручного или автоматического) должны иметь одинаковый интервал между строками.

5.3. Р-схемы вместе с сопровождающими текстами Р-схем в программных документах могут оформляться в виде иллюстраций, приложения или располагаться в разрыве между строками текста документа без нумерации.

5.4. Расстояние между Р-схемы и сопровождающим ее текстом, а также между Р-схемами должно быть больше одного интеравала между строками ЗАПИСЕЙ на элементах Р-схемы.

Расстояние между Р-схемой и текстом документа должно быть больше одного интервала между строками текста документа.

5.5. Р-схемы и сопровождающие их тексты при ручном изготовлении должны быть выполнены черными чернилами. пастой или тушью, иметь одинаковую толщину линий и шрифт, соответствующий ГОСТ 2.304-81.

Специальные знаки (*, #, круглые скобки), используемые при изображении Р-схем, должны по высоте не превышать 1,5h, где h - максимальная высота строки ЗАПИСЕЙ на элементах Р-схем.

5.6. Расстояние между ЗАПИСЯМИ, расположенными одна под другой на разных дугах одной Р-схемы, должно быть больше одного интервала между строками ЗАПИСЕЙ на элементах Р-схем.

5.7. Квадратная скобка в комментарии должна охватывать текст комментария.

5.8. Расстояние сверху и снизу от текста комментария должно быть больше одного интервала между строками текста комментария.

5.9. В справочном приложении 5 приведен пример выполнения Р-схемы.


Приложение 1
Справочное

ПРИМЕРЫ ДОПУСТИМЫХ УСЛОВНЫХ ОБОЗНАЧЕНИЙ ЭЛЕМЕНТОВ Р-СХЕМ, ВЫПОЛНЕННЫХ НА АЛФАВИТНО-ЦИФРОВЫХ УСТРОЙСТВАХ ВВОДА-ВЫВОДА

Наименование Обозначение
1. Вершина
+ или ¤

Знак "Плюс" или "Знак денежной единицы" по ГОСТ 19767-74

2. Специальная вершина
( )

Левая и правая круглые скобки

3. Дуга
a)   ----->

Последовательность знаков "Минус", заканчивающаяся знаком "Больше"

б)   <-----

Последовательность из знака "Меньше" и следующие на ним знаков "Минус".

4. Специальная дуга
===========

Последовательность знаков "Равно"

5. Линия соединительная
!
!
!
!

Последовательность расположенных друг под другом знаков "Восклицательный знак"

6. Комментарий
:----[ СТРОКИ
:    [ ТЕКСТА
:    [ КОММЕНТАРИЯ

Вертикальная линия задается последовательностью расположенных друг под другом знаков "Двоеточие", горизонтальная линия задается последовательностью знаков "Минус", проведенных к первому или последнему знаку "Квадратная скобка", который ставится на каждой строке комментария.


Приложение 2
Справочное

ПРИМЕРЫ ВЫПОЛНЕНИЯ ЭЛЕМЕНТОВ Р-СХЕМ

Наименование Выполнение от руки или автоматизированным способом на графических устройствах ввода-вывода Выполнение автоматизированным способом на алфавитно-цифровых устройствах ввода-вывода
1. Вершина
+---->    ---->+

¤---->    ---->¤

===+--->  ---->+---->
   !           !
   !           !

===¤--->  ---->+---->
   !           !
   !           !
2. Специальная вершина
--->()===
    !!
 ===!!<---

====()--->
    !!
--->!!<---
3. Дуга
+------>+   ¤<-----¤

!       !   !        !
!------>!   !<-------!
!       !   !        !

!       !   !        !
!------>!   !<-------!
4. Специальная дуга
+===========+

--->()======+--->
    !!      !
--->!!----->!

!               !
!               !
!=====+   +=====!
!     !   !     !
!<----!   !---->!
5. Линия соединительная
+--->       ====+
!               !
!--->       --->!
!               !
!<---       <---!

   --->()---->
       !!
   ====!!<----
       !!
   --->!!<----
6. Комментарий
.
  :----[ ЗАПРЕТ СИГНАЛА
  :    [ ПРЕРЫВАНИЯ
  :
(ЗП)===================+
   !                   !
   !--->+------>+----->!
        !       !RD :
        !------>!   :
                    :
    РАСШИФРОВКА ]---:
    НА СТР. 23  ]


Приложение 3
Справочное

ПРИМЕРЫ ЗАПИСИ СТРУКТУР Р-СХЕМ

Наименование Выполнение от руки или автоматизированным способом на графических устройствах ввода-вывода Выполнение автоматизированным способом на алфавитно-цифровых устройствах ввода-вывода
1. Структура базовая
 +------------->+

()------------->()
 !              !
 !------------->!
 !              !
 !<-------------!

 +------------->+
 !              !
 !------------->!
 !              !
 !<-------------!
 !              !
 !------------->!
 !              !
 !<-------------!
1. Структура специальная
 +==============+

()==============()
 !              !
 !------------->!
 !              !
 !<-------------!

 +==============+
 !              !
 !------------->!
 !              !
 !<-------------!
 !              !
 !------------->!
 !              !
 !<-------------!


Приложение 4
Справочное

ПРИМЕРЫ ВЫПОЛНЕНИЯ НАДПИСЕЙ НА ЭЛЕМЕНТАХ И СТРУКТУРАХ Р-СХЕМ

Наименование Выполнение от руки или автоматизированным способом на графических устройствах ввода-вывода Выполнение автоматизированным способом на алфавитно-цифровых устройствах ввода-вывода
1. Надпись внутри вершины специальной
======(&)---->
      ! !
----->! !----->
        !
        !<----

   (HEAD)====
        !
        !--->
2. Надпись над дугой или специальной дугой
  B[J]<M[L]
------------->

 ЧТЕНИЕ
 ДАННЫХ В
 БУФЕР
<----------

 J=1...M
==========
3. Надпись под дугой или специальной дугой
------------>
 ПЕЧАТЬ
 ТАБЛИЦЫ

<----------
 K:=K+1
 F(K)

============
 B[J]:=M[L]
 L:=L+1
 J:=J+1
4. Надпись около начальной вершины структуры
+LAB=======()M1------->+
!          !!          !
!--------->!!--->+23===!
!          !     !     !
!---M0+<---!     !---->!

+01---->+02---->+03---->+
!       !       !       !
!<------!------>!------>!
        !       !       !
        !------>!------>!
5. Надпись в конце дуги
+M2=======()------->+
!         !!        !
!-------->!!------->!
!         !!        !
!---> #LAB!!---->*M2!

+----->+5----->+------>+
!      !       !       !
!---->#!------>!--->*02!
       !       !       !
       !*<-----!---->*5!


Приложение 5
Справочное

ПРИМЕР ВЫПОЛНЕНИЯ Р-СХЕМЫ ПРОГРАММЫ НА ПАСКАЛЕ

Программа MINIMAX анализирует ряд числе и выдает их количество, минимальное и максимальное числа. Признаком конца ряда чисел является число нуль.

        :---[ ОПИСАТЕЛЬНАЯ ЧАСТЬ ПРОГРАММЫ]---:
        :                                     :
 PROGRAM:CONST                     INTEGER    :
+------>+-------------------->(VAR)---------->+
 MINIMAX Z1='ЧИСЛЕ ПРОЧИТАНО:'     N,MIN,MAX,C
         Z2='НАИМЕНЬШЕЕ:'
         Z3='НАИБОЛЬШЕЕ:'


+----------->+==============================+-------------->+
 READLN(N)   !                              !WRITELN(Z1,C)
 MIN:=MAXINT !N<>0   N<MIN  N>MAX           !WRITELN(Z2,MIN)
 MAX:=-MAXINT!----->+----->+----->+-------->!WRITELN(Z3,MAX)
 C:=0         C:=C+1!MIN:=N!MAX:=N!READLN(N)
                    !      !      !
                    !----->!----->!

Традиционная линейная форма записи этой же программы имеет следующий вид:

PROGRAM MINIMAX;
(* ОПИСАТЕЛЬНАЯ ЧАСТЬ ПРОГРАММЫ *)
   CONST
      Z1='ЧИСЛЕ ПРОЧИТАНО:';
      Z2='НАИМЕНЬШЕЕ:';
      Z3='НАИБОЛЬШЕЕ:';
   VAR
      N,MIN,MAX,C:INTEGER;
(* КОНЕЦ ОПИСАТЕЛЬНОЙ ЧАСТИ ПРОГРАММЫ *)
   BEGIN
      READLN(N);
      MIN:=MAXINT;
      MAX:=-MAXINT;
      C:=0;
      WHILE N <> 0
         BEGIN
            C:=C+1;
            IF N < MIN
               THEN MIN:=N;
            IF N > MAX
               THEN MAX:=N;
            READLN(N)
         END;
      WRITELN(Z1,C);
      WRITELN(Z2,MIN);
      WRITELN(Z3,MAX)
   END.

В целом приложение 5 оформлено в соответствии с настоящим стандартом как сочетание ручного и автоматического способов. Р-схемы выполнены на двух листах формы 1 (в поле 3 - текст документа) по ГОСТ 19.106-78. На первом листе изображено две Р-схемы, которые друг от друга отделены более чем одним интервалом. Первая Р-схема сопровождается до, а вторая - после себя текстом.


Переиздание. Ноябрь 1987 г.