терминатором начинается и заканчивается любая функция. тип возвращаемого значения и аргументов функции обычно указывается в комментариях к блоку терминатора.
операции ввода и вывода данных
в гост определено множество символов ввода/вывода, например вывод на магнитные ленты, дисплеи и т.п. если источник данных не принципиален, обычно используется символ параллелограмма. подробности ввода/вывода могут быть указаны в комментариях.
выполнение операций над данными
в блоке операций обычно размещают одно или несколько (гост не запрещает) операций присваивания, не требующих вызова внешних функций.
блок, иллюстрирующий ветвление алгоритма
блок в виде ромба имеет один вход и несколько подписанных выходов. в случае, если блок имеет 2 выхода (соответствует оператору ветвления), на них подписывается результат сравнения — «да/нет». если из блока выходит большее число линий (оператор выбора), внутри него записывается имя переменной, а на выходящих дугах — значения этой переменной.
вызов внешней процедуры
вызов внешних процедур и функций помещается в прямоугольник с дополнительными вертикальными линиями.
начало и конец цикла
символы начала и конца цикла содержат имя и условие. условие может отсутствовать в одном из символов пары. расположение условия, определяет тип оператора, соответствующего символам на языке высокого уровня — оператор с предусловием (while) или постусловием (do … while).
подготовка данных
символ «подготовка данных» в произвольной форме (в гост нет ни пояснений, ни примеров), задает входные значения. используется обычно для циклов со счетчиком.
соединитель
в случае, если блок-схема не умещается на лист, используется символ соединителя, отражающий переход потока между листами. символ может использоваться и на одном листе, если по каким-либо причинам тянуть линию не удобно.
комментарий
комментарий может быть соединен как с одним блоком, так и группой. группа блоков выделяется на схеме пунктирной линией.
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017 // Внимание! Если программа не работает, обновите версию!
begin var m:=ReadInteger('Количество строк в матрице:'); var n:=ReadInteger('Количество столбцов в матрице:'); var k,p:integer; Write('Строки с какими номерами поменять? '); Read(k,p); Writeln('*** Исходная матрица [',m,',',n,'] ***'); var a:=MatrRandom(m,n,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); a.SwapRows(k-1,p-1); Writeln('*** Матрица-результат ***'); a.Println(4) end.
терминатор начала и конца работы функции
терминатором начинается и заканчивается любая функция. тип возвращаемого значения и аргументов функции обычно указывается в комментариях к блоку терминатора.
операции ввода и вывода данных
в гост определено множество символов ввода/вывода, например вывод на магнитные ленты, дисплеи и т.п. если источник данных не принципиален, обычно используется символ параллелограмма. подробности ввода/вывода могут быть указаны в комментариях.
выполнение операций над данными
в блоке операций обычно размещают одно или несколько (гост не запрещает) операций присваивания, не требующих вызова внешних функций.
блок, иллюстрирующий ветвление алгоритма
блок в виде ромба имеет один вход и несколько подписанных выходов. в случае, если блок имеет 2 выхода (соответствует оператору ветвления), на них подписывается результат сравнения — «да/нет». если из блока выходит большее число линий (оператор выбора), внутри него записывается имя переменной, а на выходящих дугах — значения этой переменной.
вызов внешней процедуры
вызов внешних процедур и функций помещается в прямоугольник с дополнительными вертикальными линиями.
начало и конец цикла
символы начала и конца цикла содержат имя и условие. условие может отсутствовать в одном из символов пары. расположение условия, определяет тип оператора, соответствующего символам на языке высокого уровня — оператор с предусловием (while) или постусловием (do … while).
подготовка данных
символ «подготовка данных» в произвольной форме (в гост нет ни пояснений, ни примеров), задает входные значения. используется обычно для циклов со счетчиком.
соединитель
в случае, если блок-схема не умещается на лист, используется символ соединителя, отражающий переход потока между листами. символ может использоваться и на одном листе, если по каким-либо причинам тянуть линию не удобно.
комментарий
комментарий может быть соединен как с одним блоком, так и группой. группа блоков выделяется на схеме пунктирной линией.
// Внимание! Если программа не работает, обновите версию!
begin
var m:=ReadInteger('Количество строк в матрице:');
var n:=ReadInteger('Количество столбцов в матрице:');
var k,p:integer;
Write('Строки с какими номерами поменять? '); Read(k,p);
Writeln('*** Исходная матрица [',m,',',n,'] ***');
var a:=MatrRandom(m,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
a.SwapRows(k-1,p-1);
Writeln('*** Матрица-результат ***');
a.Println(4)
end.
Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
Строки с какими номерами поменять? 2 5
*** Исходная матрица [5,8] ***
-79 16 -87 -77 -93 94 -21 -16
-63 -35 58 -52 -89 -54 -32 -65
16 23 72 99 39 -46 66 -80
-85 62 -29 -14 95 69 -58 -5
-70 -47 -25 -48 33 42 -82 -12
*** Матрица-результат ***
-79 16 -87 -77 -93 94 -21 -16
-70 -47 -25 -48 33 42 -82 -12
16 23 72 99 39 -46 66 -80
-85 62 -29 -14 95 69 -58 -5
-63 -35 58 -52 -89 -54 -32 -65