Здравствуйте, хабралюди! Сегодня речь пойдет о построении блок-схем для ваших программ с помощью замечательной программы yEd скачать которую можно здесь .
Приступая к работе
Не спешите скачивать, давайте проведем маленькую лекцию по этим же блок-схемах.
Блок-схема это графическое отображение решения задачи (важно запомнить).
И так, буду объяснять как программист программисту, по моему мнению блок-схемы можно использовать когда алгоритм не реально держать в голове (10-20 if else) вот тогда то и приходит такая мысль как записать это, в тот же блокнот, или на бумаге, что вполне приемлемо и ничего такого здесь нет. В нашем случае давайте использовать блок-схемы.
Обозначения
Такой овал обозначает обычно начало и конец, к примеру <?php и ?>.
Данный блок обозначает объявление переменных. Если у вас сильно типизированный язык программирования то этот блок обычно всегда есть в ваших программах, лично я использую слабо типизированные что позволяет мне объявить тип и название переменной сразу при присваивании её какому-то значению.
Собственно вывод результат на экран или продолжение следующего действия.
Ну, и наконец, наше условие ради чего мы здесь и собрались. Может принимать только true or false.
А теперь запускаем yEd
file -> new
По средине будет наша блок-схема, а вот справа отображены наши элементы которые нам будут нужны.
Перетаскивать элементы можно справа на белый лист, что бы провести стрелочку нужно: на элемент, который стоит по средине нажать и отвести мышку от него, при этом в поле edge types можно выбрать тип стрелочки. Вот так у меня получилось реализовать авторизацию пользователя на сайте в помощью блок-схемы:
Заняло у меня это 5 минут. Но за то теперь я точно знаю что и как мне нужно будет делать. А когда программа сложная то сделав блок-схему уже можешь сразу писать код и не заглядывая туда, т.к. только что сам написал эту программу, но визуально!
Вообщем блок-схемы это круто!
Итак, опустив долгие и нудные восхваления Паскаля, которые так любят публиковать в своих статьях редакторы многих сайтов, приступим непосредственно к самому основному – к программированию.
В школах, как правило, изучение Паскаля начинают с решения простейших задач путем составления различных алгоритмов или блок-схем, которое многие так часто игнорируют, считая никому не нужной ерундой. А зря. Я, как и любой другой человек, хоть немного соображающий в программировании (не важно где – в Паскале, Си, Дельфи), могу уверить Вас – умение правильно и быстро составлять схемы является фундаментом, основой программирования.
Блок-схема — графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и т.д.).
Существует несколько основных видов блоков, которые нетрудно запомнить:
Сегодняшний урок я решила посвятить не только изучению блок-схем, но также и изучению линейных алгоритмов. Как Вы помните, линейный алгоритм — наипростейший вид алгоритма. Его главная особенность в том, что он не содержит никаких особенностей. Как раз это и делает работу с ним простой и приятной.
Задача №1: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».
Данная задача не должна представлять особой трудности, так как построена она на хорошо известных всем нам формулах расчета площади и периметра прямоугольника, поэтому зацикливаться на выведении этих формул мы не будем.
Составим алгоритм решения подобных задач:
1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано». (В задаче №1 к известным переменным относятся стороны: a, b ;к неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b))
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.
Запишем условие в более кратком виде.
Дано: a, b
Найти: S, P
Блок-схема:
Структура программы, решающей данную задачу, тоже проста:
- 1) Описание переменных;
- 2) Ввод значений сторон прямоугольника;
- 3) Расчет площади прямоугольника;
- 4) Расчет периметра прямоугольника;
- 5) Вывод значений площади и периметра;
- 6) Конец.
А вот и решение:
Program Rectangle; Var a, b, S, P: integer; Begin write('Введите стороны прямоугольника!'); readln(a, b); S:=a*b; P:=2*(a+b); writeln('Площадь прямоугольника: ', S); write('Периметр прямоугольника: ', P); End.
Задача №2: Скорость первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2, T и S задаются с клавиатуры.
Решение осуществляем, опять же, следуя алгоритму. Прочитав текст, мы переходим к следующему пункту. Как и во всех физических или математических задачах, это запись условий задачи:
Дано: V1, V2, S, Т
Найти: S1
Далее идет самая главная и в то же время самая интересная часть нашего решения – составление нужных нам формул. Как правило, на начальных стадиях обучения все необходимые формулы хорошо нам известны и взяты из других технических дисциплин (например, на нахождение площади различных фигур, на нахождение скорости, расстояния и т.п.).
Формула, используемая для решения нашей задачи, выглядит следующим образом:
S1=(V1+V2)*T+S
Следующий пункт алгоритма – блок-схема:
А также решение, записанное в Pascal :
Program Rasstoyanie; Var V1, V2, S, T, S1: integer; {Ввод } begin write('Введите скорость первого автомобиля: '); readln(V1); write('Введите скорость второго автомобиля: '); readln(V2); write('Введите время: '); readln(T); write('Введите расстояние между автомобилями: '); readln(S); S1:=(V1+V2)*T+S; writeln('Через ', t,'ч. расстояние ', S1,' км.'); End.
Вам может показаться, что две эти программы правильны, но это не так. Ведь сторона треугольника может быть 4.5, а не 4, а скорость машины не обязательно круглое число! А Integer — это только целые числа. Поэтому при попытке написать во второй программе другие числа выскакивает ошибка:
Чтобы решить эту проблему вам надо вспомнить какой тип в Pascal отвечает за нецелые числа. В этом уроке мы рассматривали основные типы. Итак, это вещественный тип — Real. Вот, как выглядит исправленная программа:
Как видите, эта статья полезна для прочтения как новичкам, так и уже более опытными пользователям Pascal, так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие.
Как построить блок-схему
В настоящее время программисты при написании программ обычно не чертят для них блок-схем. Но в школьном курсе информатики преподаватели нередко до сих пор требуют от учеников сопровождение программ такими схемами. Составлять их совсем несложно.
Вам понадобится
- – трафарет для черчения блок-схем;
- – механический карандаш;
- – ластик;
- – бумага;
- – компьютер с доступом в интернет.
Инструкция
Начало и конец алгоритма обозначаются овалами. Внутри них помещают, соответственно, слова «Начало» и «Конец». От овала, символизирующего начало алгоритма, исходит одна стрелка вниз, к овалу, символизирующему конец алгоритма, приходит стрелка сверху.
Шаги, соответствующие действиям, не связанным с вводом-выводом, обозначаются при помощи прямоугольников. Пример такого действия – вычисление по формуле и присвоение результата той или иной переменной. Стрелка от предыдущего шага приходит к прямоугольнику сверху, а снизу от него исходит стрелка к следующему шагу.
Для обозначения шагов, соответствующих операциям ввода-вывода, используются параллелограммы. Такие операции бывают двух видов: присвоение поступивших откуда-либо данных переменной и вывод данных из переменной в файл, порт, на экран, принтер и т.п.
Ветвления обозначаются ромбами. В верхний угол ромба приходит стрелка от предыдущего шага, а из его боковых углов исходят стрелки, помеченные как «Нет» и «Да». Они приходят, соответственно, к шагам, выполняемым при несоблюдении и соблюдении условия. Нижний угол ромба оставляется свободным. Само условие (например, равенство, строгое или нестрогое) записывается внутри ромба.
Прямоугольник, боковые стенки которого двойные, олицетворяет переход к подпрограмме. После того как в подпрограмме встретился оператор возврата, продолжается выполнение основной программы. Внутри прямоугольника указывается название подпрограммы. Блок-схемы всех подпрограмм помещаются под блок-схемой основной программы либо на отдельных страницах.
Чертить блок-схемы удобнее всего через специальные трафареты, пользуясь механическим карандашом. Его можно стирать ластиком, аналогично обычному карандашу, но не требуется точить.
Если вы желаете составлять блок-схемы в электронном виде, воспользуйтесь онлайн-приложением под названием Flowchart. При желании можно также освоить особые языки программирования, в которых сам процесс программирования заключается в составлении блок-схемы. Таких языков два: Дракон и HiAsm.
Источники:
- как начертить блок схему
Войти на сайт
или
Забыли пароль?
Еще не зарегистрированы?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Любому студенту, который учится на программиста или на другую ИТ-специальность, приходится рисовать блок-схемы алгоритмов. Для решения этой задачи есть специальные программы, которые позволяют создавать такие блок-схемы быстро и максимально правильно. Но, они далеко не всегда есть под рукой. Иногда программы нет, а блок-схему нужно нарисовать уже сейчас.
В таких ситуациях может выручить текстовый редактор Word, который обычно доступен на любом компьютере. В этой статье мы покажем, как сделать простую блок-схему алгоритма программы прямо в текстовом редакторе Word.
Как нарисовать блок схему в Word
Для рисования блок-схем в Word нужно использовать кнопку «Фигуры», которая находится на вкладке «Вставка». После нажатия на данную кнопку открывается больше меню со списком всех графических элементов, которые можно вставить в документ Word.
Для рисования блок-схем алгоритмов нужны определённые фигуры. В данном списке эти фигуры находятся в блоках «Линии», «Прямоугольники» и «Блок-схема».
Здесь вы найдете практически все фигуры, которые могут вам надобится для рисования блок-схемы алгоритма. А те фигуры, которые отсутствуют в списке, можно получить путем комбинации и изменения других элементов.
Как создать элемент блок-схемы
Для того создать элемент блок-схемы в Word нажмите на кнопку «Фигуры» и нарисуйте элемент на странице документа. При рисовании вы можете выровнять элемент по центру листа. В этом поможет зеленая линия, которая появится при приближении фигуры к центру.
Изначально, созданный элемент будет иметь заливку определенным цветом. Чтобы это исправить выделите элемент мышкой, перейдите на вкладку «Формат фигуры» и нажмите на кнопку «Заливка фигуры». В открывшемся меню можно убрать заливку выбрав пункт «Нет заливки».
Также рядом доступна кнопка «Контур фигуры» с помощью которой можно изменить цвет контура для созданного элемента.
После этих манипуляций вы получите один готовый элемент для блок-схемы алгоритма. Остальные элементы создаются аналогичным способом с помощью меню «Вставка – Фигуры» и настраиваются на вкладке «Формат фигуры».
Как добавить текст к элементу
Для большинства элементов блок-схемы нужно добавить текст, который будет пояснять выбранную часть алгоритма программа. Для этого кликните по фигуре правой кнопкой мыши и выберите пункт «Добавить текст».
После этого можно будет ввести поясняющий текст. Обратите внимание, если текст не отображается, то скорее всего вы пишите белым по белому, поменяйте цвет текста на вкладке «Главная».
Как добавить линии к блок-схеме
Для добавления линий и стрелок в Word также нужно использовать элементы из списка «Фигуры». Здесь есть как простые линии, так и сложные, с изменением направления. Для рисования прямых линий по горизонтали или вертикали нужно удерживать клавишу Shift.
Если линии нужной формы нет в списке, то ее можно создать самостоятельно, составив из нескольких простых прямых линий.
Используя линии и элементы из списка «Фигуры» можно составить вот такую блок-схему (скриншот выше).
Как сгруппировать блок-схему
После создания блок-схемы в Word ее желательно сгруппировать. Для этого нужно выделить все элементы схемы (удерживая клавишу Shift), кликнуть по ним правой кнопкой мышки и выбрать пункт «Группировать».
Сгруппировав блок-схему, вы сможете перемещать ее по документу Word как один элемент. Также вы сможете увеличивать или уменьшать ее размер, не нарушая связей между фигурами.
Основные фигуры для блок-схем
Ниже приведен список основных фигур, которые используются для построения блок-схем алгоритмов. Данные фигуры должны соединяться спрошной линией, которая может дополняться стрелкой. Входные линии должны располагаться сверху или слева от фигуры, а выходные снизу или справа.
Обозначение начала и конца программы или функции. Тип значения, которое возвращается функцией, обозначается в комментариях к фигуре. | |
Операции ввода или вывода данных. Подробное описание ввода/вывода можно указать в комментариях. | |
Блок для обозначения одной или нескольких операций над данными, которые не требуют вызова внешних функций. | |
Ветвление алгоритма программы. В фигуре записывается условие, а рядом с выводами возможные результаты. | |
Вызов внешней процедуры или функции. | |
Начало и конец цикла в алгоритме. Внутри фигуры указывается условие, которое должно выполняться во время работы цикла. | |
Подготовка данных, установка входных значений. Обычно используется для обозначения циклов со счетчиком. | |
Соединитель. Используется для отражения перехода блок-схемы на другую страницу. | |
Комментарий. Используется для добавления комментариев к блокам или группам блоков. Для соединения комметария и блока используется пунктирная линия. |
Посмотрите также:
- Как перевернуть страницу в Word
- Как построить график в Excel
- Как сделать альбомную страницу в Word
- Как сделать вертикальный текст в Word
- Как закрепить область в Экселе
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
gaard9n 0 / 0 / 1 Регистрация: 09.01.2018 Сообщений: 30 |
||||
1 |
||||
Блок-схема для готовой программы11.01.2018, 11:56. Показов 4894. Ответов 61 Метки блок-схема, с (Все метки)
Здравствуйте! В данной теме я хотел бы попросить вас указать на мои ошибки в составлении блок-схемы по уже готовому коду программы с циклом while. Задание для программы:
Мой вариант блок-схемы в миниатюре. Миниатюры
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
11.01.2018, 11:56 |
Ответы с готовыми решениями: Блок-схема для программы Блок схема для программы Блок схема для программы #include <iostream> Блок схема для программы Код С++… 61 |
0 / 0 / 1 Регистрация: 09.01.2018 Сообщений: 30 |
|
11.01.2018, 12:20 [ТС] |
2 |
Также на ошибки программы, если такие имеются.
0 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 14:25 |
3 |
Сообщение было отмечено gaard9n как решение Решениеgaard9n, Кликните здесь для просмотра всего текста
1 |
322 / 170 / 24 Регистрация: 25.03.2012 Сообщений: 712 |
|
11.01.2018, 14:33 |
4 |
Мой вариант блок-схемы в миниатюре. Рисовать блок-схемы к программам – это а). дремучий устаревший раритет, из 70-х годов ХХ века, б). бессмысленное занятие и трата времени, в). ограничивает в уме пространство поиска возможных решений … г). очень любимое занятие ВУЗ-овскими “пЫдагогами” … но только потому, что сами эти “пЫдагоги” никогда не занимались разработкой кода реальных проектов. Лучше с малых лет от этой гадости отвыкать!
1 |
0 / 0 / 1 Регистрация: 09.01.2018 Сообщений: 30 |
|
11.01.2018, 14:35 [ТС] |
5 |
Olej, так, для пыдагога и делается… Сессия.
0 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 14:36 |
6 |
Olej, Вы не правы. Блок схема эта моделирование процесса (дибаг) на листочках + развивает, тем более это часть UML
0 |
322 / 170 / 24 Регистрация: 25.03.2012 Сообщений: 712 |
|
11.01.2018, 14:37 |
7 |
Вы не правы. Блок схема эта моделирование процесса (дибаг) на листочках + развивает, тем более это часть UML О!
0 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 14:43 |
8 |
О! что за бред..
1 |
322 / 170 / 24 Регистрация: 25.03.2012 Сообщений: 712 |
|
11.01.2018, 14:56 |
9 |
Это один из способов изобразить алгоритм, имея в наличии только карандаш и бумагу.. Изобразите, пожалуйста, “имея в наличии только карандаш и бумагу” … – алгоритм рекурсивного обхода маркированного дерева … например при построении суффиксного дерева методом Укконена… Добавлено через 8 минут
0 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 15:00 |
10 |
Olej, Вас че в яндаксе забанили ? Кликните здесь для просмотра всего текста
0 |
322 / 170 / 24 Регистрация: 25.03.2012 Сообщений: 712 |
|
11.01.2018, 15:05 |
11 |
Вас че в яндаксе забанили ? Я сказал рекурсивное вычисление. Или вам это прилагательное ничего не подсказывает? Код unsigned long fib( int n ) { return n < 2 ? 1 : fib( n - 1 ) + fib( n - 2 ); } Можете поупражняться в рисовании задачи Ханойская Башня … увлекательнейшее получится занятие!
0 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 15:13 |
12 |
Olej, Я понимаю весна, хочется поспорить, доказать свою правоту.. Но вот вы логически подумайте (если есть там логика в голове) Положим нужно написать материал для всех ЯП , или объяснить что то НЕ ПРОГРАММИСТУ (начальнику) как это сделать?? Еще раз повторяю! Блок схема это лишь часть UML. А UML это утвержденный единый стандарт, на нём составляется ТЗ или изображают потерны и многое многое другое..
0 |
1550 / 875 / 179 Регистрация: 05.12.2015 Сообщений: 2,555 |
|
11.01.2018, 18:59 |
13 |
А UML это утвержденный единый стандарт, на нём составляется ТЗ или изображают потерны и многое многое другое. И что с того, что это утвержденный стандарт? В промышленной автоматизации тоже стандартом утверждены несколько языков, и все они – г*вно. Если бы вы разрабатывали хоть что-нибудь серьезное на одном из графических языков – вы бы поняли, что это не просто неудобно, это п*здец, как неудобно (например, чтобы вставить одну операцию иногда придется ручками подвинуть пол схемы). Я уж молчу, что понять, что какая-то линия идет не туда, когда их много, т.е. найти ошибку – та еще задача. И вполне нормальный алгоритм превращается в спагетти код в прямом смысле слова. Не надо путать теплое с мягким. Диаграмма классов – это удобно, поэтому их используют, в отличии от блок-схем.
3 |
1642 / 1091 / 487 Регистрация: 17.07.2012 Сообщений: 5,345 |
|
11.01.2018, 19:05 |
14 |
worldown, в сложных алгоритмах БС никуда не годятся. Почему-то в книгах по алгоритмам чаще всего используют либо псевдокод(имхо лучший способ описать алгоритм) либо код на конкретном ЯП.
1 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 19:10 |
15 |
avgoor, удобно, не удбно.. Но он есть стандарт, так же как html xml и тд. Например не давно читал книгу о процессе реализации алгоритма, там применялись блок схемы. Для более ясной картины бизнесс процесса. Дела ужобства вещь субъективное, кому то на кортах ко му то в кустах кому то на золотом унитазе Добавлено через 1 минуту
0 |
1550 / 875 / 179 Регистрация: 05.12.2015 Сообщений: 2,555 |
|
11.01.2018, 19:16 |
16 |
Но он есть стандарт, так же как html xml Есть и стандарт RFC 1149. Что ж вы его не используете-то?
1 |
21 / 21 / 20 Регистрация: 05.12.2017 Сообщений: 124 |
|
11.01.2018, 19:33 |
17 |
Представлять сложный процесс в виде схем – неудобно. Удобным это кажется людям, далеким от разработки ПО. К сожалению, таких много среди преподов, по понятным причинам. Да уж. Я за первый семестр второго курса (на первом такого не было) потратил по меньшей мере 10 часов на блок-схемы для лабораторок, и это при том, что приходилось основательно адаптировать схему из code2flow.
0 |
322 / 170 / 24 Регистрация: 25.03.2012 Сообщений: 712 |
|
11.01.2018, 19:37 |
18 |
Дела ужобства вещь субъективное, Так вы Ханойской Башни блок-схему уже нарисовали? … или всё ещё только бла-бла-бла?
0 |
73 / 86 / 40 Регистрация: 02.11.2017 Сообщений: 379 |
|
11.01.2018, 19:59 |
19 |
1 |
189 / 177 / 111 Регистрация: 22.06.2009 Сообщений: 533 |
|
11.01.2018, 20:11 |
20 |
Удобным это кажется людям, далеким от разработки ПО. К сожалению, таких много среди преподов, по понятным причинам Начнем с того что блок схемы (далее диаграмма деятельности) являются частью uml uml огромен включает в себя множество других разновидностей диаграмм. Унифицирован так же он применим не только для программистов. Согласен на диаграмме деятельности довольно сложно отразить большие программы, но мелкие алгоритмы из этих больших программ вполне можно… Кликните здесь для просмотра всего текста
Мне кстати удобнее разобрать диаграмму деятельности. Хорошая аналогия – ноты, они унифицированы, но на гитаре большинству удобнее играть по табам Добавлено через 7 минут
1 |