новые версии
Создание блок-схемы
Запустите Visio.
Выберите категорию Блок-схема.
Дважды щелкните значок блок-схема.
Для каждого этапа документируемого процесса перетащите в документ соответствующую фигуру блок-схемы.
Чтобы соединить элементы блок-схемы, наведите указатель мыши на первую фигуру, и щелкните стрелку, указывающую на фигуру, с которой требуется создать соединение. Если вторая фигура находится не рядом с первой, необходимо перетащить маленькую стрелку к центру второй фигуры.
Чтобы добавить текст для фигуры или соединительной линии, выделите ее и введите текст. По завершении ввода текста щелкните в пустой области страницы.
Чтобы изменить направление стрелки соединительной линии, выберите соединение, а затем на вкладке Фигура в группе Стили фигур щелкните пункт Линия, наведите указатель на пункт Стрелки и выберите нужное направление и вид стрелки.
Автоматическое выравнивание и интервалы
Нажмите сочетание клавиш CTRL+A, чтобы выбрать все объекты на странице.
На вкладке Главная в группе Упорядочение нажмите кнопку Положение и выберите пункт Автовыравнивание и определение интервалов.
Если это не привело к нужному результату, отмените ее, нажав сочетание клавиш CTRL+Z, и воспользуйтесь другими параметрами меню кнопок Выравнивание и Положение.
Пример блок-схемы, представляющей процесс предложения
Что представляют блок-схемы
При открытии шаблона блок-схема открывается набор элементов Фигуры блок-схемы. Каждая фигура в этом наборе представляет собой тот или иной этап процесса. Но фигуры не имеют какого-то универсального смысла, их значение определяется создателями и пользователями блок-схем. В большинстве блок-схем используется три или четыре вида фигур, и этот диапазон расширяется только по специфической необходимости.
При этом названия фигур в Visio указывают на их применение. Ниже описаны наиболее рас фигуры.
Начало/конец. Эту фигуру следует использовать для представления первого и последнего этапа процесса.
Фигура "Начало/Завершение"
Процесс. Фигура представляет собой стандартный этап процесса. Это одна из наиболее часто используемых фигур в любом процессе.
Фигура "Процесс"
Решение. Эта фигура используется в точке, где выбор следующего этапа зависит от принятого решения. Вариантов может быть несколько, но чаще всего их два: "да" и "нет".
Фигура "Решение"
Подпроцесс. Эту фигуру следует использовать для представления ряда этапов, которые в совокупности образуют подпроцесс, определенный в другом месте (часто на другой странице того же документа). Такой подход удобен, если блок-схема получается слишком большой и сложной.
Фигура "Заранее определенный процесс"
Документ. Эта фигура представляет этап, на котором создается документ.
Фигура "Документ"
Данные. Эта фигура указывает, что данные поступают в процесс или покидают его. Также эта фигура может представлять материалы. Иногда ее называют фигурой "Ввод/Вывод".
Фигура "Данные"
Ссылка на текущую страницу. Маленький круг показывает, что следующий (предыдущий) этап находится в другом месте документа. Эта фигура особенно полезна на больших блок-схемах, где в противном случае пришлось бы использовать длинный соединитель, который сложно отследить.
Фигура "Ссылка на текущую страницу"
Ссылка на другую страницу. При размещении этой фигуры на странице открывается диалоговое окно, в котором можно создать набор гиперссылок между двумя страницами блок-схемы или между фигурой "Подпроцесс" и отдельной страницей блок-схемы, на которой показаны этапы этого подпроцесса.
Фигура "Ссылка на другую страницу"
1)
var mas: array[1..10] of real = {.,.,}; // перечисление элементов массива, который дан по условию задания
var counter: integer;
begin
for i:= 1 to 10 do
begin
if mas[i]<0 then counter:=counter+1;
end;
end.
2)
var mas: array[1..5] of integer = {.,.,}; // перечисление элементов массива, который дан по условию задания
var counter: integer;
begin
for i:= 1 to 5 do
begin
if (mas[i]>0) and (i mod 2 = 0) then counter:=counter+1;
end;
end.
3)
var mas: array[1..15] of integer = {.,.,}; // перечисление элементов массива, который дан по условию задания
var counter: integer;
begin
for i:= 1 to 15 do
begin
if (mas[i]>5) and (i mod 2 = 0) then counter:=counter+1;
end;
end.
4)
var mas: array[1..15] of integer;
var counter: integer;
begin
for i:= 1 to 15 do
begin
mas[i] = random(20) - 5;
end;
for i:= 1 to 15 do
begin
writeln(mas[i]);
end;
for i:= 1 to 15 do
begin
if (mas[i]>0) then counter:=counter+1;
end;
end.
5)
var mas: array[1..7] of real = {.,.,}; // перечисление элементов массива, который дан по условию задания
var counter: integer;
begin
for i:= 1 to 7 do
begin
readln(mas[i]);
end;
for i:= 1 to 7 do
begin
if mas[i]>0 then mas[i]=0;
end;
for i:= 1 to 7 do
begin
writeln(mas[i]);
end;
end.
6)
var mas: array[1..10] of real = {.,.,}; // перечисление элементов массива, который дан по условию задания
var counter: integer;
var sum: real;
var average: real;
begin
for i:= 1 to 7 do
begin
readln(mas[i]);
end;
for i:= 1 to 7 do
begin
if mas[i]<0 then
begin
sum:=sum+mas[i];
counter:=counter+1;
end
end;
average:= sum/counter;
end.
Объяснение:
type
LibBook = record
Book:string[50];
Author:string[50];
Publisher:string[30];
PubYear:integer;
City:string[30];
Deleted:boolean
end;
var
gf:file of LibBook;
function Create(pName:string):file of LibBook;
// Создает или обнуляет существующий файл библиотеки
// с полным именем pName (в имени можно указать и путь)
begin
var f:file of LibBook;
Rewrite(f,pName);
Result:=f;
f.Close
end;
procedure Insert(pLib:LibBook);
// Добавляет книгу в базу
begin
var n:=FileSize(gf);
Seek(gf,n);
Write(gf,pLib);
end;
procedure BookWrite(pn:integer;pLib:LibBook);
// вывод книги номер pn
begin
Writeln('*** Книга №',pn,' ***');
if pLib.Deleted=False then begin
Writeln('Название: ',pLib.Book);
Writeln('Автор: ',pLib.Author);
Writeln('Издатель: ',pLib.Publisher);
Writeln('Год выпуска: ',pLib.PubYear);
Writeln('Город: ',pLib.City);
end
else Writeln('=== У Д А Л Е Н А ===');
Writeln
end;
procedure View(pKol:integer:=0);
// Отображает содержимое библиотеки.
// Можно вывести не все, а только pKol первых записей
begin
var nB:=FileSize(gf);
if nb=0 then Writeln('Библиотека пустая')
else begin
Seek(gf,0);
Writeln('Книг в библиотеке: ',nB,NewLine);
if pKol<>0 then nB:=min(pKol,nb);
var Lib:LibBook;
for var i:=1 to nB do begin
Read(gf,Lib);
BookWrite(i,Lib)
end
end
end;
function Delete(pNom:integer):boolean;
// Удаляет книгу с номером pNom и возвращает true.
// Возвращает false, если такой книги нет
begin
var nB:=FileSize(gf);
var Lib:LibBook;
if pNom-1>nB then begin
Writeln('Книга №',pNom,' не найдена');
Result:=False
end
else begin
Seek(gf,pNom-1);
Read(gf,Lib);
Lib.Deleted:=True;
Seek(gf,pNom-1);
Write(gf,Lib);
Writeln('Книга №',pNom,' удалена');
Result:=True
end;
end;
procedure Find(ps:string);
// поиск книги по параметрам, заданным строкой
// Формат <код> пробел <значение>
begin
var n:=Ord(ps[1])-Ord('0');
Delete(ps,1,2);
var par:=ps;
var Lib:LibBook;
case n of
0:begin // по номеру книги
var nb:=FileSize(gf);
var fn:=par.ToInteger;
if fn-1>nb then Writeln('Книги с таким номером нет')
else begin
Seek(gf,fn-1);
Read(gf,Lib);
BookWrite(fn,Lib)
end
end;
1:begin // по названию книги
var nl:=par.Length; // для контекстного поиска
Seek(gf,0);
var i:=1;
while not Eof(gf) do begin
Read(gf,Lib);
if Copy(Lib.Book,1,nl)=par then begin
BookWrite(i,Lib); Exit
end
else Inc(i)
end;
Writeln('Поиск по названию книги ',par,' неуспешен')
end;
2:begin // по автору книги
var nl:=par.Length; // для контекстного поиска
Seek(gf,0);
var i:=1;
while not Eof(gf) do begin
Read(gf,Lib);
if Copy(Lib.Author,1,nl)=par then begin
BookWrite(i,Lib); Exit
end
else Inc(i)
end;
Writeln('Поиск по автору книги ',par,' неуспешен')
end;
3:begin // по издательству
var nl:=par.Length; // для контекстного поиска
Seek(gf,0);
var i:=1;
while not Eof(gf) do begin
Read(gf,Lib);
if Copy(Lib.Publisher,1,nl)=par then begin
BookWrite(i,Lib); Exit
end
else Inc(i)
end;
Writeln('Поиск по издательству книги ',par,' неуспешен')
end;
4:begin // по году выпуска
Seek(gf,0);
var i:=1;
var ipar:=par.ToInteger;
while not Eof(gf) do begin
Read(gf,Lib);
if Lib.PubYear=ipar then begin
BookWrite(i,Lib); Exit
end
else Inc(i)
end;
Writeln('Поиск по году издания ',par,' неуспешен')
end;
5:begin // по городу
var nl:=par.Length; // для контекстного поиска
Seek(gf,0);
var i:=1;
while not Eof(gf) do begin
Read(gf,Lib);
if Copy(Lib.City,1,nl)=par then begin
BookWrite(i,Lib); Exit
end
else Inc(i)
end;
Writeln('Поиск по городу ',par,' неуспешен')
end;
else Writeln('Неверная строка поиска')
end
end;
const LibName='MyLib.lib';
begin
var MyBook:LibBook;
gf:=Create(LibName);
Reset(gf,LibName);
With MyBook do begin
Book:='Первый учебник';
Author:='Первый автор';
Publisher:='Издательство 1';
PubYear:=2010;;
City:='Город 1'
end;
Insert(MyBook);
With MyBook do begin
Book:='Второй учебник';
Author:='Второй автор';
Publisher:='Издательство 2';
PubYear:=2012;;
City:='Город 2'
end;
Insert(MyBook);
With MyBook do begin
Book:='Третий учебник';
Author:='Третий автор';
Publisher:='Издательство 3';
PubYear:=2006;;
City:='Город 3'
end;
Insert(MyBook);
View;
Delete(2);
View;
Find('0 3');
Find('1 Перв');
Find('2 Тре');
Find('3 Издательство 2');
Find('4 2006');
gf.Close
end.