Стандартом ГОСТ 2.708-81 «ЕСКД. Правила выполнения электрических схем цифровой вычислительной техники» установлены правила выполнения схем алгоритмов и программ автоматизированным способом и от руки.
Принятые условные обозначения приведены ниже.
Символы операций соединяют в последовательности их реализации сплошными тонкими линиями. Координату зоны символа или порядковый номер операции проставляют слева в верхней части символа в разрыве его контура.
В пределах контура символа делают запись, поясняющую отображаемую им функцию. Если поясняющая надпись не помещается внутри символа, дополнительный комментарий выносят на свободное место схемы алгоритма и соединяют с поясняющим символом тонкой штриховой линией.
Символ «соединитель» в виде кружка с вписанным в него буквенным, цифровым или буквенно-цифровым обозначением (идентификатором) используют для обрыва линий связи (линий потока) между удалёнными друг от друга символами, находящимися на одной странице. Если соединяемые блоки находятся на разных страницах, используют межстраничный соединитель с указанием в нём номера страницы. После него ставят символ «соединитель» и указывают в нём номер блока.
Указание направлений линий потока сопровождают стрелкой, если линия направлена справа налево или снизу вверх. В других случаях линия не применяется.
Символы «Пуск», «Прерывание» и «Конец» применяют соответственно в начале схемы алгоритма или программы, в случае её прерывания для возврата или переноса, а также в конце программы.
Размер a следует выбирать из ряда 10, 15, 20 мм. Допускается увеличение размера a на число, кратное 5. Размер b принимают равным 1,5a.
№ п/п | Обозначение | Наименование. Функции |
1. | ![]() | Процесс. Выполнение операций (группы операций), в результате которых изменяется значение (форма представления, расположение) данных |
2. | ![]() | Решение. Выбор направления алгоритма (программы) в зависимости от некоторых переменных условий |
3. | ![]() | Модификация. Выполнение операций, меняющих команды (группы команд), изменяющих программу |
4. | ![]() | Предопределённый процесс. Использование ранее созданных и описанных отдельно алгоритмов (программ) |
5. | ![]() | Сортировка. Упорядочение множеств по заданным признакам. |
6. | ![]() | Ручной ввод. Ручной ввод данных с помощью неавтономных устройств с клавиатурой, переключателей, кнопок. |
7. | ![]() | Ввод-вывод. Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) |
8. | ![]() | Документ. Ввод-вывод данных, носителем которых является бумага. |
9. | ![]() | Магнитный диск. Ввод-вывод данных, носителем которых служит магнитный диск. |
10. | ![]() | Соединитель. Указание связи между прерванными линиями потока (связывающие символы). |
11. | ![]() | Пуск-останов. Начало, конец, прерывание процесса обработки данных или выполнения программы. |
12. | ![]() | Файл. Представление объекта обработки данных (используется с символами конкретных носителей данных). На рисунке показан файл на магнитном диске. |
13. | ![]() | Межстраничный соединитель. |
14. | ![]() | Расшифровка. |
15. | ![]() | Кодирование. |
Приложение 2.
Пример блок-схемы
Листинг программы:
program Demo;
uses
crt,printer;
var
k: integer;
Mid: real;
procedure Menu;
var
i,j: byte;
begin
clrscr;
for i:=1 to 80 do
write(‘*’);
writeln(‘*** Расчёт среднего арифметического ***’);
for i:=1 to 80 do
write(‘*’);
writeln;
writeln(‘1 – ввод данных’);
writeln(‘2 – вывод результата на экран’);
writeln(‘3 – вывод результата на принтер’);
writeln(‘4 – сохранение результата в файл’);
writeln(‘5 – выход’);
write(‘Ваш выбор: ‘);
readln(k);
end;
procedure EnterData;
var
n,i: integer;
a: array[1..100] of integer;
Sum: longint;
begin
clrscr;
write(‘Введите количество чисел (<100): ‘);
readln(n);
Sum:=0;
for i:=1 to n do begin
write(‘Введите ‘,i:3,’ число из ‘,n:3,’: ‘);
readln(a[i]);
Sum:=Sum+a[i];
end;
Mid:=Sum/n;
end;
procedure DataScreen;
begin
clrscr;
writeln(‘Среднее арифметическое = ‘,Mid:5:2);
write(‘Нажмите Enter для продолжения…’);
readln;
end;
procedure DataPrinter;
var
ch: char;
begin
clrscr;
writeln(‘Вывод результата на принтер’);
write(‘Вы уверены? (y/n) ’);
repeat
ch:=readkey;
until ch in [‘y’,’Y’,’n’,’N’];
if ch in [‘y’,’Y’] then
writeln(lst,‘Среднее арифметическое = ‘,Mid:5:2);
write(‘Нажмите Enter для продолжения…’);
readln;
end;
procedure DataFile;
var
s: string;
f: text;
begin
clrscr;
writeln(‘Вывод данных в файл’);
write(‘Введите имя файла: ‘);
readln(s);
assign(f,s);
rewrite(f);
writeln(f,’Среднее арифметическое’);
writeln(f,Mid:5:2);
close(f);
write(‘Нажмите Enter для продолжения…’);
readln;
end;
begin
repeat
Menu;
case k of
1: EnterData;
2: DataScreen;
3: DataPrinter;
4: DataFile;
end;
until k=5;
end.
Блок-схема основной программы.
Доступно в следующей версии.