Перенос блок-схемы на следующую страницу
Введение
Если у вас не получается построить полноценную блок-схему на основе кода программы или не получается осуществить перенос блок-схемы на следующую страницу, то звоните мне и записывайтесь на индивидуальный урок по информатике и программированию.
Как правильно произвести перенос блок-схемы алгоритма на другую страницу
Если вы совсем новичок в сфере визуализации различных диаграмм, то рекомендую вам в первую очередь ознакомиться с тем, что такое блок-схема, а также «под микроскопом» рассмотреть фундаментальные элементы блок-схем.
Давайте рассмотрим следующую задачу.
Дан целочисленный массив, состоящий из 10 элементов. Значениями элементов массива являются случайно сгенерированные числа от -20 до +30.
Необходимо:
Заполнить массив случайными числами и вывести его на экран пользователя.
Найти минимальный и максимальный элемент массива и вывести найденные значения на экран.
Найденный минимальный элемент поменять с последним элементом массива, а найденный максимальный элемент поменять с первым элементом массива.
Вывести преобразованный массив на дисплей пользователя.
Задача должна быть реализована средствами языка программирования Pascal. Также необходимо построить блок-схему, которая отражает принцип работы задействованных алгоритмов.
Приведем код программы на языке программирования Pascal, а также детальное комментирование практически каждой строки кода.
program Example;
{раздел объявления констант}
const
{данная константа отвечает за количество элементов в массиве}
N = 10;
{раздел объявления переменных}
var
v : array[1..N] of integer; {одномерный целочисленный массив}
i : integer; {переменная типа счетчик циклов}
imin : integer; {хранит индекс минимального элемента}
imax : integer; {хранит индекс максимального элемента}
tmp : integer; {временная переменная для обмена двух значений}
{начало главного блока программы}
begin
{диалог пользователю о выводе значений элемента массива на экран}
write('Исходный массив имеет вид: ');
{цикл, в котором просматриваются все элементы массива от 1 до 10}
for i := 1 to N do
begin
v[i] := -20 + random(51); {генерируем случайное число от -20 до +30}
write(v[i]:4); {вывод на экран значения элемента массива с шириной в 4 знака}
end;
{делаем предположение, что самый первый элемент массива является минимальным}
imin := 1;
{делаем предположение, что самый первый элемент массива является максимальным}
imax := 1;
{циклически просматриваем все элементы массива, начиная со второго}
for i := 2 to N do
begin
{если текущий элемент меньше минимального, то}
if(v[i] < v[imin]) then
imin := i; {запоминаем новый минимальный элемент}
{если текущий элемент больше максимального, то}
if(v[i] > v[imax]) then
imax := i; {запоминаем новый максимальный элемент}
end;
writeln; {вставка пустой строки для повышения читабельности}
{выводим на экран минимальный и максимальный элемент массива}
writeln('Минимальный элемент массива [', imin, '] = ', v[imin]);
writeln('Максимальный элемент массива [', imax, '] = ', v[imax]);
{меняем местами последний элемент массива и только что найденный минимальный элемент}
tmp := v[N];
v[N] := v[imin];
v[imin] := tmp;
{меняем местами первый элемент массива и только что найденный максимальный элемент}
tmp := v[1];
v[1] := v[imax];
v[imax] := tmp;
{вставка пустой строки для повышения читабельности}
writeln;
{диалог пользователю о предстоящем выводе}
write('Преобразованный массив имеет вид: ');
{циклически просматриваем все элементы массива}
for i := 1 to N do
write(v[i]:4); {печатаем на экран текущее значение элемента массива}
end. {официальный конец программы}
Как видите, получилась программа средней степени «тяжести», состоящая из 57 строк кода. Давайте изобразим блок-схему решеной задачи. Да, я понимаю, что блок-схема создается до написания кода, но в данном случае код программы у нас уже написан, готов.
В процессе создания блок-схемы становится очевидно, что на один лист документа MS Word данная блок-схема не поместится! Что делать? Выход есть – использовать специальный элемент блок-схемы, который позволяет «рвать» блок-схему на составные части. Данный блок называется блоком-соединителем. В начале данной публикации я давал ссылку на статью, описывающую ключевые элементы блок-схем.
Первая часть блок-схемы
Как видно из первой части блок-схемы мы добрались лишь до 27 строки кода, то есть изобразили ровно половину. Элемент-соединитель представляет собой окружность, внутри которой записывается некий уникальный идентификатор. Как правило данный идентификатор представляется натуральным числом, потому что это удобно и компактно. При переносе блок-схемы на новую страницу я обозначил точку разрыва идентификатором 1.
Сейчас блок-схема продолжится на второй странице. Первым узлом, с которого начинается построение блок-схемы, является узел-соединитель, причем внутренний идентификатор равен строго 1.
Вторая часть блок-схемы
Как видно из второй части визуализированной блок-схемы второй страницы также недостаточно, следовательно, мы вынуждены еще раз осуществить перенос блок-схемы. Обратите внимание на числовой идентификатор, который мы указываем в месте разрыва диаграммы. Он равен уже два. Если при дальнейшем построении потребуется еще обеспечивать перенос блок-схемы, то идентификатор при каждом переносе будет увеличиваться на единицу.
Закончить построение и переносы блок-схемы я предлагаю на нашем совместном уроке по информатике и программированию. Также на частном занятии я вам продемонстрирую более сложные варианты переноса блок-схем, когда переносится не одна а несколько независимых ветвей алгоритма программы.