Блок схемы онлайн: как структурно представить информацию?

Программы для работы с блок-схемами

LibreOffice Draw

LibreOffice — это бесплатный офисный пакет, своего рода аналог MS Office (неоднократно мной рекомендуем, кстати). В его арсенале есть спец. программа Draw, позволяющая буквально 2-3 кликами мышки рисовать простенькие блок-схемы (см. скрин ниже).

Типовая блок-схема // Draw

С помощью левой панельки можно быстро добавить различные фигуры: ромбы, прямоугольники, линии, стрелки и т.д. К тому же в отличие от многих других продуктов — Draw поддерживает русский язык в полном объеме.

В общем, однозначно рекомендую!

Dia

Это добротный и бесплатный редактор диаграмм, блок-схем и пр. подобных «штук»

По сравнению с предыдущей программой, Dia обладает куда большим функционалом — да просто хотя бы обратите внимание на панель задач: там есть практически любые фигуры и значки!

DIA — скрин главного окна

Особенности:

  1. простой и лаконичный интерфейс: разобраться с ним не составит труда любому начинающему пользователю;
  2. есть коллекция стандартных блок-схем (не обязательно всегда создавать что-то новое);
  3. есть возможность добавлять в коллекцию свои фигуры и значки;
  4. любую фигуру на схеме можно перекрасить в нужный вам цвет (см. скрин выше);
  5. ПО можно использовать как в ОС Windows и Linux.

Pencil Project

Отличное ПО для построения практически любых схем, форм и диаграмм. Отличается от остальных наличием просто огромного количества блоков и фигур (см. скрин ниже — я спец. сделал скрин всего многообразия инструментов (и это еще не все…)).

Скрин блоков из Pencil Project

Особенности:

  1. возможность импортировать рисунки и вставлять их в свои схемы;
  2. возможность создавать собственные фигуры и блоки;
  3. огромная коллекция готовых графиков, схем, шаблонов и т.д.;
  4. есть опция для сохранения блоков в такие популярные форматы, как HTML, PNG, PDF и пр.

Diagram Designer

Добротный векторный графический редактор для создания графиков, блок-схем, диаграмм. Программа выгодно отличается от других продуктов своей «простотой» — посмотрите на ее интерфейс, он выполнен в стиле тотального минимализма!

Чтобы создать свою схему — достаточно 2-х кликов мышки (и это не преувеличение).

Diagram Designer — главное окно программы

Особенности:

  1. простой интерфейс: нет ничего лишнего (только инструменты для создания схем);
  2. импорт/экспорт файлов в формате: WMF, EMF, BMP, JPEG, PNG, MNG, ICO, GIF и PCX;
  3. встроенная функция для просмотра слайд-шоу;
  4. возможность сжимать файлы блок-схем (архиватор);
  5. есть опция по объединению нескольких схем в одну (весьма удобно, если вам нужно скомпоновать что-то одно из разных «кусков»).

yEd Graph Editor

Весьма современный редактор для быстрого построения «древовидных» диаграмм и блок-схем (даже для неподготовленного пользователя). Отмечу, что программа достаточно мощная и универсальная (правда с несколько «причудливым» интерфейсом).

yEd Graph Editor — пример построенной блок-схемы

Особенности:

  1. легкое и быстрое построение схем любой сложности (и с любым количеством условий и ответвлений);
  2. поддержка комментариев, аннотаций;
  3. возможность работать параллельно сразу с несколькими документами;
  4. есть спец. «сворачивающиеся» блоки (подобные инструменты редко встречаются в др. аналогичных продуктах);
  5. наличие алгоритмов для автоматической компоновки (выручает при работе с большими диаграммами и схемами);
  6. возможность сохранения созданных графиков в HTML, PNG, JPG и PDF файлы.

по теме — приветствуются!

Удачи!

Основные элементы схем алгоритма

Наименование Обозначение Функция
Терминатор
(пуск-останов)
Элемент отображает вход из внешней среды или выход из нее (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие.
Процесс Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания : a = 10*b + c
.
Решение Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >
, , =
); в программировании − условные операторы if
(два выхода: true
, false
) и case
(множество выходов).
Предопределенный процесс Символ отображает выполнение процесса, состоящего из одной или нескольких операций, который определен в другом месте программы (в подпрограмме, модуле). Внутри символа записывается название процесса и передаваемые в него данные. Например, в программировании − вызов процедуры или функции.
Данные
(ввод-вывод)
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы).
Граница цикла Символ состоит из двух частей − соответственно, начало и конец цикла − операции, выполняемые внутри цикла, размещаются между ними. Условия цикла и приращения записываются внутри символа начала или конца цикла − в зависимости от типа организации цикла. Часто для изображения на блок-схеме цикла вместо данного символа используют символ решения, указывая в нем условие, а одну из линий выхода замыкают выше в блок-схеме (перед операциями цикла).
Соединитель Символ отображает выход в часть схемы и вход из другой части этой схемы. Используется для обрыва линии и продолжения ее в другом месте (пример: разделение блок-схемы, не помещяющейся на листе). Соответствующие соединительные символы должны иметь одно (при том уникальное) обозначение.
Комментарий Используется для более подробного описания шага, процесса или группы процессов. Описание помещается со стороны квадратной скобки и охватывается ей по всей высоте. Пунктирная линия идет к описываемому элементу, либо группе элементов (при этом группа выделяется замкнутой пунктирной линией). Также символ комментария следует использовать в тех случаях, когда объем текста в каком-либо другом символе (например, символ процесса, символ данных и др.) превышает его объем.

Описание других элементов схем можно найти в соответствующих ГОСТ (указаны выше).

Порядок выполнения действий задается путем соединения вершин дугами, что позволяет рассматривать блок-схемы не только как наглядную интерпретацию алгоритма, удобную для восприятия человеком, но и как взвешенный ориентированный граф . Однако не любой ориентированный граф, составленный из вершин указанных выше типов, является корректным алгоритмом . Например, из операторной вершины не может выходить более одной дуги. Поэтому на практике обычно ограничиваются рассмотрением подкласса граф-схем алгоритмов, удовлетворяющих свойствам безопасности, живости и устойчивости.

Lucidchart

Для тех, кого по каким-то причинам не устраивает Visio, есть вариант, являющийся полноценной его заменой в области создания диаграмм и флоучартов. В приложении есть множество элементов, шаблоны для создания блок-схем и диаграмм (впрочем, можно обойтись без них и создать схему с нуля), в платной версии их ещё больше. Интерфейс приложения интуитивно понятен и прост, с ним разберётся даже начинающий пользователь. Для работы необходим только выход в интернет, есть возможность командной работы (хотя и с ограничениями для бесплатных аккаунтов). Сервис поддерживает импорт файлов Visio (VSDX), Amazon Web Service (AWS) и Omnigraffle, а сохраняет результаты в JPG,PNG, SVG, PDF и Visio. Кроме того, есть приятная возможность сохранять промежуточные версии на облачном сервере.

Бесплатная версия Lucidchart функциональна, но если не хватает расширений – можно оплатить подписку. В их числе: больший объём виртуального хранилища, возможность создания неограниченного количества проектов, добавления ссылок на данные. Стоит платная версия от $5,95 до $20 в месяц.

Нужны ли блок-схемы? Альтернативы

Частные конторы никакие блок-схемы не используют, в книжках по алгоритмам вместо них применяют словесное описание (псевдокод) как более краткую форму. Возможно блок-схемы применяют на государственных предприятиях, которые должны оформлять документацию согласно требованиям ЕСПД, но есть сомнения — даже для регистрации программы в Государственном реестре программ для ЭВМ никаких блок-схем не требуется.

Тем не менее, рисовать блок-схемы заставляют школьников (примеры из учебников ГОСТ не соответствуют) — выносят вопросы на государственные экзамены (ГИА и ЕГЭ), студентов — перед защитой диплом сдается на нормоконтроль, где проверяется соответствие схем стандартам.

Разработка блок-схем выполняется на этапах проектирования и документирования, согласно каскадной модели разработки ПО, которая сейчас почти не применяется, т.к. сопровождается большими рисками, связанными с ошибками на этапах проектирования.

Появляются подозрения, что система образования прогнила и отстала лет на 20, однако аналогичная проблема наблюдается и за рубежом. Международный стандарт ISO 5807:1985 мало чем отличается от ГОСТ 19.701-90, более нового стандарта за рубежом нет. Там же производится множество программ для выполнения этих самых схем — Dia, MS Visio, yEd, …, а значит списывать их не собираются. Вместо блок-схем иногда применяют диаграммы деятельности UML , однако удобнее они оказываются, разве что при изображении параллельных алгоритмов.

Периодически поднимается вопрос о том, что ни блок-схемы, ни UML не нужны, да и документация тоже не нужна. Об этом твердят программисты, придерживающиеся методологии экстремального программирования (XP) , ходя даже в их кругу нет единого мнения.

В ряде случаев, программирование невозможно без рисования блок-схем, т.к. это один процесс — существуют визуальные языки программирования, такие как ДРАКОН , кроме того, блок-схемы используются для верификации алгоритмов (формального доказательства их корректности) методом индуктивных утверждений Флойда .

В общем, единого мнения нет. Очевидно, есть области, в которых без чего-то типа блок-схем обойтись нельзя, но более гибкой альтернативы нет. Для формальной верификации необходимо рисовать подробные блок-схемы, но для проектирования и документирования такие схемы не нужны — я считаю разумным утверждение экстремальных программистов о том, что нужно рисовать лишь те схемы, которые помогают в работе и не требуют больших усилий для поддержания в актуальном состоянии .

Список использованных источников:

  1. ГОСТ 19.701–90 (ИСО 5807–85) «Единая система программной документа­ции».
  2. Алгоритм. Свойства алгоритма \ https://pro-prof.com/archives/578
  3. Алгоритмы сортировки слиянием и быстрой сортировки \ https://pro-prof.com/archives/813
  4. yEd Graph Editor \ https://www.yworks.com/products/yed
  5. Книги: алгоритмы \ https://pro-prof.com/books-algorithms
  6. Рамбо Дж., Якобсон А., Буч Г. UML: специальный справочник. -СПб.: Питер, 2002. -656 с.
  7. Кент Бек Экстремальное программирование: разработка через тестирование – СПб.: Питер – 2003
  8. Визуальный язык ДРАКОН \ https://drakon.su/
  9. Шилов Н.В. Верификация шаблонов алгоритмов для метода отката и метода ветвей и границ. Моделирование и анализ информационных систем, ISSN 1818 – 1015, т.18, №4, 2011
  10. Брукс Ф., Мифический человеко — месяц или как создаются программные системы. СПб. Символ Плюс, 1999 — 304 с. ил.

Cacoo

Для совместной работы над блок-схемами рекомендуем воспользоваться сервисом Cacoo. Как и Lucidchart, он оснащен приятным для глаз понятным интерфейсом. Сервис предлагает широкий выбор всевозможных шаблонов для блок-схем, каркасов, диаграмм Венна и пр. Что касается блок-схем, то в Cacoo вы найдете различные варианты форм на выбор. Для того чтобы создать блок-схему, достаточно перетянуть нужные формы и стрелки и расположить соответствующим образом.

Лучшая функция в Cacoo – возможность совместной работы в режиме реального времени. Это значит, что множество людей могут работать над блок-схемой одновременно. Для обсуждения вносимых изменений предусмотрен чат. Cacoo также позволяет видеть, кто в настоящее время работает над проектом.

Cacoo изначально разрабатывался как сервис для коллективной работы, о чем свидетельствуют проектные папки и настройки безопасности для членов команды. Тем не менее, он отлично подходит для работы одного человека. В вашем распоряжении 1 тыс. страниц, неограниченные возможности для обмена, импорт и экспорт SVG и многое другое.

Стоит отметить, Cacoo полностью оправдывает свою стоимость. Для отдельных пользователей месячная плата начинается от $4,95 в месяц. Тарифный план Team для командной работы начинается от $18 в месяц (для троих пользователей). Cacoo для корпоративных пользователей (тарифный план Enterprise) позволяет устанавливать приложение на свой частный сервер. Его стоимость начинается от $600 в год для 10 пользователей. Для любой версии предусмотрен пробный период (14 дней), в течение которого сервисом можно пользоваться бесплатно.

Масштабирование и перемещение


Масштабирование и перемещение поля (.gif)

Для того, чтобы передвигаться по полю вверх и вниз используйте обычную прокрутку мыши. Для горизонтального перемещения используйте ту же прокрутку мыши, но с зажатой клавишей Shift. Также перемещение по полю возможно путём перемещения мыши с зажатыми левой клавишей и клавишей Ctrl.

Для изменения текущего масштаба поля используйте прокрутку колёсика мыши с зажатой клавишей Alt. Также масштабирование возможно с использованием сочетаний клавиш Ctrl+Plus и Ctrl+Minus или иконки лупы в правой нижней части экрана для увеличения и уменьшения масштаба соответственно.

CIRCUIT LAB

Circuit Lab – это многофункциональный онлайн-симулятор схем, но он не бесплатный. Он разработан с простым в использовании редактором и точным аналоговым / цифровым схемным симулятором.

Преимущества Circuit Lab:

  • Эта платформа хорошо выполнена и имеет довольно обширную библиотеку, которая подходит как для начинающих, так и для опытных экспериментаторов
  • Смоделированные графики и выходные результаты можно экспортировать в виде файла CSV для дальнейшего анализа
  • Проектирование цепей выполняется легко, и доступны предварительно разработанные схемы

Недостатки Circuit Lab:

  • Это не бесплатная платформа, но вы можете использовать демонстрационную версию бесплатно
  • Моделирование могло бы быть лучше с интерактивными симуляциями кроме графического представления
  • Больше цифровых микросхем следовало бы добавить в библиотеку

Главное меню программы (Main)

Главное меню состоит из четырех блоков: Project, Output, Edit, Histori.

Блок Project

-Кнопка «Сохранить» сохраняет текущий проект на сервере Digi-Key.

-Кнопка «Сохранить как» сохраняет ваш проект с новым именем на сервере Digi-Key.

-Кнопка «Новый» создает новый проект. Если у вас открыт проект с несохраненными изменениями, приложение предложит вам сохранить изменения, прежде создать новый проект.

— Кнопка «Открыть» показывает диалоговое окно, содержащее ранее сохраненных проектов. Диалоговое окно также содержит кнопку удаление, которая позволяет удалить проект. Выделите проект, который вы хотите удалить, и затем нажмите на кнопку Удалить.

Все вышеизложенные функции будут доступны вам после регистрации на сайте программы.

Блок Output.

— Кнопка «Экспорт» позволяет экспортировать текущий проект в виде файла изображения *.png или в виде pdf–документа.

— Кнопка «Share» позволяет создавать и публиковать веб-ссылку вашей схемы. Веб-ссылка содержит файл изображения схемы внутри веб-страницы и доступна для просмотра в стандартном веб-браузере. Ссылка является открытой.

-Кнопка «Print» открывает схему в новом окне, которую можно распечатать используя стандартное меню браузера.

Блок Edit.

— Кнопка «Вырезать» вырезает выделенный элемент схемы в буфер обмена.

— Кнопка «Копировать» — помещает выделенный элемент в буфер обмена.

— Кнопка «Вставить» извлекает из буфера обмена скопированный ранее элемент.

— Кнопка «Удалить» удаляет выделенный элемент из схемы.

Блок History

— Кнопка «Назад» возвращает на одно действие назад.

— Кнопка «Вперед» переход на ранее выполненную операцию.

Onshape позволяет работать с файлами .dwg

Англоязычный онлайн-сервис Onshape предлагает профессиональные решения для проектирования и создания чертежей в системе 3D-cad. К сожалению, бесплатный функционал сайта ограничен 21 днём бесплатного пользования, далее же за возможность создавать чертежи онлайн с помощью Onshape необходимо будет платить «живые» деньги.

Для работы с Onshape перейдите на данный ресурс, нажмите на кнопку «I WANT TO TRY ONSHAPE» (если такой кнопки нет, просто перезагрузите главную страницу сайта).

  1. Пройдите расширенную регистрацию для работы с AutoCAD онлайн, и вы окажетесь в окне создания и редактирования чертежей.
  2. Для создания нового чертежа нажмите на «Create» (создать), укажите имя документа.
  3. Выберите уровень доступа к нему («Private» — личный, «Public» — общедоступный) и нажмите на «Ок».
  4. Для сохранения вашего чертежа кликните правой клавишей мыши на закладке вашего файла внизу.

  5. Выберите «Export», определитесь с форматом исходящего файла, укажите «Download» и нажмите на «Ок».

Упрощённые сервисы для работы с AutoCAD

Также для осуществления черчения онлайн могут помочь такие сервисы как drawisland.com и sketch.io. Функционал указанных сервисов довольно прост, и может пригодиться, скорее, для развлекательных и бытовых целей, нежели для профессионального черчения.

Рабочее окно сервиса Drawisland

Примеры блок-схем

В качестве примеров, построены блок-схемы очень простых алгоритмов сортировки, при этом акцент сделан на различные реализации циклов, т.к. у студенты делают наибольшее число ошибок именно в этой части.

Сортировка вставками

Массив в алгоритме сортировки вставками разделяется на отсортированную и еще не обработанную части. Изначально отсортированная часть состоит из одного элемента, и постепенно увеличивается.

На каждом шаге алгоритма выбирается первый элемент необработанной части массива и вставляется в отсортированную так, чтобы в ней сохранялся требуемый порядок следования элементов. Вставка может выполняться как в конец массива, так и в середину. При вставке в середину необходимо сдвинуть все элементы, расположенные «правее» позиции вставки на один элемент вправо. В алгоритме используется два цикла — в первом выбираются элементы необработанной части, а во втором осуществляется вставка.

Блок-схема алгоритма сортировки вставками

В приведенной блок-схеме для организации цикла используется символ ветвления. В главном цикле (i < n) перебираются элементы необработанной части массива. Если все элементы обработаны — алгоритм завершает работу, в противном случае выполняется поиск позиции для вставки i-того элемента. Искомая позиция будет сохранена в переменной j в результате выполнения внутреннего цикла, осуществляющем сдвиг элементов до тех пор, пока не будет найден элемент, значение которого меньше i-того.

На блок-схеме показано каким образом может использоваться символ перехода — его можно использовать не только для соединения частей схем, размещенных на разных листах, но и для сокращения количества линий. В ряде случаев это позволяет избежать пересечения линий и упрощает восприятие алгоритма.

Сортировка пузырьком

Сортировка пузырьком, как и сортировка вставками, использует два цикла. Во вложенном цикле выполняется попарное сравнение элементов и, в случае нарушения порядка их следования, перестановка. В результате выполнения одной итерации внутреннего цикла, максимальный элемент гарантированно будет смещен в конец массива. Внешний цикл выполняется до тех пор, пока весь массив не будет отсортирован.

Блок-схема алгоритма сортировки пузырьком

На блок-схеме показано использование символов начала и конца цикла. Условие внешнего цикла (А) проверяется в конце (с постусловием), он работает до тех пор, пока переменная hasSwapped имеет значение true. Внутренний цикл использует предусловие для перебора пар сравниваемых элементов. В случае, если элементы расположены в неправильном порядке, выполняется их перестановка посредством вызова внешней процедуры (swap). Для того, чтобы было понятно назначение внешней процедуры и порядок следования ее аргументов, необходимо писать комментарии. В случае, если функция возвращает значение, комментарий может быть написан к символу терминатору конца.

Сортировка выбором

В сортировке выбором массив разделяется на отсортированную и необработанную части. Изначально отсортированная часть пустая, но постепенно она увеличивается. Алгоритм производит поиск минимального элемента необработанной части и меняет его местами с первым элементом той же части, после чего считается, что первый элемент обработан (отсортированная часть увеличивается).

Блок-схема сортировки выбором

На блок-схеме приведен пример использования блока «подготовка», а также показано, что в ряде случаев можно описывать алгоритм более «укрупнённо» (не вдаваясь в детали). К сортировке выбором не имеют отношения детали реализации поиска индекса минимального элемента массива, поэтому они могут быть описаны символом вызова внешней процедуры. Если блок-схема алгоритма внешней процедуры отсутствует, не помешает написать к символу вызова комментарий, исключением могут быть функции с говорящими названиями типа swap, sort, … .

На блоге можно найти другие примеры блок-схем:

  • блок-схема проверки правильности расстановки скобок арифметического выражения ;
  • блок-схемы алгоритмов быстрой сортировки и сортировки слиянием .

Часть студентов традиционно пытается рисовать блок-схемы в Microsoft Word, но это оказывается сложно и не удобно. Например, в MS Word нет стандартного блока для терминатора начала и конца алгоритма (прямоугольник со скругленными краями, а не овал). Наиболее удобными, на мой взгляд, являются утилиты MS Visio и yEd , обе они позволяют гораздо больше, чем строить блок-схемы (например рисовать диаграммы UML), но первая является платной и работает только под Windows, вторая бесплатная и кроссплатфомренная. Все блок-схемы в этой статье выполнены с использованием yEd.

Перечень элементов (BOM менеджер)

Сервис для черчения схем он-лайн Scheme-it имеет инструмент — перечень элементов (спецификацию), в который автоматически добавляются все элементы схемы с их свойствами: обозначение, имя, номинал, номер детали, , описание и др.

При добавлении нового элемента в схему программа автоматически добавляет его в перечень элементов.

Для просмотра свойства элемента схемы и его атрибутов необходимо дважды щелкнуть на выбранном элементе, после этого откроется окно свойств элемента.

В этом окне можно менять любые атрибуты элемента схемы.

В правой части программы для рисования схем Scheme-it имеется панель, с помощью которой вы сможете осуществлять поиск по каталогу Digi-Key.

Это функция полезна для просмотра справочных данных по конкретному электрорадиоэлементу.

Достоинства сервиса:

  • достаточно простой интерфейс программы (не смотря на английский язык);
  • сервис-хорошая возможность для рисования схем на чужем компьютере без установки специальных программ (достаточно иметь интернет);
  • возможность сохранения схем на сервере;
  • публикация открытых ссылок на ваши схемы, находящиеся на сервере;
  • экспорт в рисунок PNG или документ PDF;

Недостатки:

  • отсутствие русского языка интерфейса и справки (однако можно воспользоваться встройннй в браузер переводчик!);
  • библиотека компонентов выполнена не по отечественным стандартам;
  • необходимость иметь постоянный интернет для работы сервиса.

Итак, поработав в программе я могу сделать следующие выводы:

Достаточно интересный сервис, хотя библиотека элементов схем выполнена не по ГОСТ, имеются интересные обозначения и значки. Рекомендую использовать для черчения не больших электрических схем, в том случае если нет возможности поработать с специальными программами для черчения схем (например чужой компьютер и т. д.). Имеющаяся библиотека достаточна для черчения базовых схем электроники.

P.S: Вариант использования сервиса для черчения электрических схем Scheme-it с помощью встроенного в браузер переводчика

Предлагаю посмотреть подробное видео о том как пользоватся онлайн сервисом для черчения электрических схем:

Редактирование текста и форматирование блоков


Редактирование текста и форматирование блоков (.gif)

Для ввода блока в режим редактирования достаточно дважды кликнуть по блоку или же нажать клавишу F2 при имеющемся активном блоке. Блоки поддерживают как обычное добавление символов, так и основные сочетания клавиш, свойственные обычному текстовому полю:

  • Перемещение курсора: стрелки, Home, End
  • Перемещение курсора на очередное слово: Ctrl+Left, Ctrl+Right
  • Удаление до очередного слова: Ctrl+Delete, Ctrl+Backspace
  • Выделение текста: Shift+Arrows, Shift+Home, Shift+End, Ctrl+A
  • Вставка из буфера обмена: Ctrl+V
  • Копирование в буфер обмена: Ctrl+C
  • Жирный и курсивный шрифт: Ctrl+B и Ctrl+I соответственно
  • Изменение размера шрифта: Ctrl+Plus и Ctrl+Minus соответственно
Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий