Спецификации в виде графических схем. Инженерная графика Что такое графическая схема

Программы

Задание алгоритмов с помощью блок-схем оказалось очень удобным средством изображения алгоритмов и получило широкое распространение.

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

В таблице приведены наиболее часто употребляемые символы.

Символы блок-схемы
Название символа Обозначение и пример заполнения Пояснение
Процесс Вычислительное действие или последовательность действий
Решение Проверка условий
Модификация Начало цикла
Предопределенный процесс Вычисления по подпрограмме, стандартной подпрограмме
Ввод-вывод Ввод-вывод в общем виде
Пуск-остановка Начало, конец алгоритма, вход и выход в подпрограмму
Документ Вывод результатов

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

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

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

Блок «» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.

Для примера приведем блок-схемы алгоритма нахождения максимального из двух значений:

Введение

Составление блок-схемы, соответствующей всем требованиям ГОСТов, – небыстрый и кропотливый процесс. Если у вас возникли проблемы с проектированием блок-схемы или вы запутались в том, какой элемент блок-схемы нужно использовать в конкретном месте, то записывайтесь ко мне на репетиторский урок. На частном занятии вы сможете задать мне абсолютно любой вопрос, касающийся визуализации блок-схемы.

Ключевые элементы блок-схемы

Основные элементы, использующиеся при проектировании блок-схем

Название элемента

Графическое отображение

Функция

Терминатор или блок начало-конец

Обозначает начало или конец программы. Данный блок отделяет границы программы от внешней среды. Как правило, в данный элемент вписывают фразы «Начало», «Старт» или «Конец», «Финиш».

Блок команды, процесса, действия

Данный блок отвечает за выполнение одной или нескольких операций. Как правило, в данный элемент блок-схемы вписывают команды, которые меняют данные, значения переменных. Например, арифметическая операция над двумя переменными будет записана в данном блоке.

Блок логического условия

Напомню, что результатом логического условия всегда является одно из двух предопределенных значения: истина или ложь. Внутри данного элемента-ромба записывается логическое условие, а из вершин ромба выходят альтернативные ветви решения. Обязательно следует подписывать ветви словами «Да», «Нет», чтобы не вводить в заблуждение читателя блок-схемы.

Предопределенный процесс

Если ваша программа предусматривает наличие подпрограмм: процедур или функций, то вызов подпрограммы записывается внутри данного элемента.

Блок ввода-вывода данных

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

Блок цикла со счетчиком

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

Парный блок для циклов с пред- и постусловием

Данный блок состоит из двух частей. Операции тела цикла размещаются между ними. Заголовок цикла и изменения счетчика цикла записываются внутри верхнего или нижнего блока – в зависимости от архитектуры цикла.

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

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

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

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

Элементы графической схемы

Для создания графической схемы может быть использовано довольно большое количество разнообразных элементов, которые можно разделить на три большие группы:

  • элементы, обозначающие точки карты маршрута бизнес-процесса;
  • декорации;
  • декоративные линии.

Элементы, обозначающие точки карты маршрута бизнес-процесса

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

Декорации

Отдельную группу элементов представляют декорации, которые могут иметь несколько различных форм: блок, папка, файл, документ, эллипс, различные виды стрелок и скобок:

Декоративные линии

Декоративные линии могут использоваться как для соединения декораций, так и самостоятельно. Поддерживается несколько типов декоративных линий и несколько видов стрелок:

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

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

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

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

Рис. 3.1. Граф-диаграмма системы сопровождения данных.

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

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

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

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

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

Рис. 3.3. Функциональная схема корректировки главного файла

Рис. 3.4. Диаграмма Варнье-Орра для системы

сопрождения данных

Рис. 3.5. ПЕРТ-диаграмма интерактивной системы сопровождения файлов.

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

Схемы HIPO . Использование схем HIPO характерно для той стадии проектирования, когда системные аналитики уже могут приступать к разработке программ и данных. Эти схемы, определяя основные функции каждой программы и перечень основных элементов данных, не конкретизируют способы организации данных, иерархическую структуру подпрограмм и выбор алгоритмов обработки. На этапе разработки программ схемы HIPO могут применяться в качестве средства описания функций, реализуемых программой, и циркулирующих внутри нее потоков данных. На рисунке 3.7 представлена схема HIPO для программы корректировки файла.

Рис. 3.6. Сеть Петри для интерактивной системы сопровождения файлов

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

На рисунке 3.8 показаны стандартные и нестандартные символы для изображения структурных схем. Их можно использовать для представления организации программы так же, как и для передач управления. Прокомментируем представленные символы.

Блок ограничения/прерывания. Этот символ предназначен для обозначения входов в структурную схему, а также для указания всех выходов из нее. Каждая структурная схема должна начинаться и заканчиваться символом ограничения.

Блок решения. Этот символ используется для обозначения переходов управления по условию. Для каждого блока решения должны быть указаны: вопрос, решение, условия или сравнение, которые он определяет. Стрелки, выходящие из этого блока, должны быть помечены соответствующими ответами так, чтобы были учтены все возможные ответы.

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

Рис. 3.7. Схема HIPO для программы корректиров-

ки файла GUSTOMER.

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

Блок ввода/вывода. Этот символ используется для обозначения операций ввода/вывода информации. Отдельным логическим устройствам или отдельным функциям обмена должны соответствовать отдельные блоки. В каждом блоке указывается тип устройства или файла, тип информации, участвующий в обмене, а также вид операции обмена.

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

Блок комментария. Этот символ позволяет включать в структурные схемы пояснения к функциональным блокам. Частое использование комментариев нежелательно: оно усложняет структурную схему.

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

Схемы Насси-Шнейдермана . Способ изображения модуля с помощью схем Насси-Шнейдермана представляет собой попытку использования требований структурного программирования (см. ниже) в структурных схемах модулей. Он позволяет изображать схему передач управления не с помощью явного указания линий переходов по управлению, а с помощью представления вложенности структур. Некоторые из используемых в этом способе символов соответствуют символам структурных схем. Эти символы показаны на рисунке 3.10. Каждый блок имеет форму прямоугольника и может быть вписан в любой внутренний прямоугольник любого другого блока. Блоки помечаются тем же способом, что и блоки структурных схем, т.е. с использованием предложений на естественном языке или с помощью математических нотаций. Если использовать символы схем Насси-Шнейдермана одновременно с дополнительными символами структурных схем для изображения множественных выходов и обработки прерываний, то представление рассматриваемого модуля может быть упрощенно.

Синтаксические диаграммы . Так как грамматические правила просты и их немного, то для описания грамматических правил используют синтаксические диаграммы. Идея синтаксической диаграммы состоит в том, что надо войти в нее слева и пройти по ней до правого края. Синтаксические диаграммы, как правило, используются для описания синтаксиса операторов языков программирования при их представлении. На рис. 3.11 представлена синтаксическая диаграмма для оператора - цикла с заданными границами PASCAL ("FOR").

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


1: КРАСНЫЙ 1 1 0 0 иначе

2: ЖЕЛТЫЙ 0 1 1 0

3: ЗЕЛЕНЫЙ 0 0 1 1


Действия

2: ПРОПУСТИ С X

ДВИГАЙСЯ

3: ДВИГАЙСЯ X

4: ПОДГОТОВКА X

К ДВИЖЕНИЮ

Рис. 3.12. Таблица решений для формализации

задачи светового регулирования.

Вопросы, на которые следует ответить в структуре управления, перечислены в столбце условий. Действия, выполняемые в зависимости от ответов, указаны в столбце действий. Затем рассматриваются все возможные комбинации ответов "да" и "нет". Если какая-либо комбинация невозможна, она может быть опущена. Крестами отмечены действия, необходимые для каждого набора условий. Порядок расположения условий не должен влиять на порядок их проверки. Однако действия могут быть записаны в порядке их выполнения.

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

3.3. СТРУКТУРНЫЕ ПРЕОБРАЗОВАНИЯ СХЕМ ПЕРЕДАЧ УПРАВЛЕНИЯ.

Простые преобразования . Простые преобразования схем передач управления связаны со сверсткой и разверткой: а - линейных участков; б - условий; в, г -циклов (рис. 3.13).

Дублирование элементов . Данное преобразование позволяет привести схему передачи управления к структурированному виду введением в нее по определенным правилам дополнительных элементов, эквивалентных уже имеющимся. Пусть имеется структура, представленная на рисунке 3.14.

В целом эта схема имеет один вход и один выход. Однако стремление использовать блоки 7,9,10 и 12 в ветвях, начинающихся в блоках 4 и 5, привело к запутанным связям по управлению. Дублируя соответствующим образом блоки 7,9,10,11 можно привести исходную схему к структурированному виду. При дублировании, строя очередной путь после разветвления, каждый раз вводят необходимые блоки, не обращая внимания на то, что они уже введены на альтернативных участках других путей. Каждый дублированный элемент, по существу, имеет собственное имя, однако в функциональном отношении эквивалентен исходному. На рис. 3.14,б изображена преобразованная исходная схема.

Введение переменной состояния . Второй подход преобразования управляющей структуры основывается на введении переменной состояния.

Процесс преобразования состоит из пяти шагов:

1. Каждому блоку схемы приписывается номер. Причем 0 - последний исполняемый элемент.

2. Вводится новая переменная, принимающая значение в диапазоне 0..n, где n - число блоков в схеме передачи управления.

3. Вводятся n операций присвоения значений введенной переменной состояния. С каждым блоком связывается одна (для логического блока по количеству выходов) операция, в которой значение переменной становится равным номеру очередного исполняемого блока.

4. Вводятся n операций анализа переменной состояния, причем, если значение переменной состояния равно m (m

5. Строится новая управляющая структура в виде цикла с вложенными в него операциями анализа пере-

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

Пример на рис. 3.16 иллюстрирует преобразование схемы передачи управления с циклами и метками к структурированному виду на основе введения переменной состояния.


5.1. НЕЗАВИСИМОСТЬ МОДУЛЕЙ.

Чтобы уменьшить сложность ПС, нужно разбить ее на множество небольших, в высокой степени независимых модулей. Довольно высокой степени независимости можно достичь с помощью двух методов оптимизации: усилением внутренних связей в каждом модуле и ослаблением взаимосвязи между модулями. Если рассматривать ПС как набор предложений, связанных между собой некоторыми отношениями (как по выполняемым функциям так и по обрабатываемым данным), то основное, что требуется, это догадаться, как распределить предложения по отдельным "ящикам" (модулям) так, чтобы предложения внутри каждого модуля были тесно связаны, а связь между любой парой предложений в разных модулях была минимальной.

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

5.2. ПРОЧНОСТЬ МОДУЛЕЙ.

Модульность, которая облегчает внесение изменений в систему, можно охарактеризовать как гибкость. Этот тип модульности имеет место в тех случаях, когда система спроектирована так, что изменение одного из требований приводит к необходимости корректировки лишь небольшого числа модулей (желательно только одного). Если модульная структура системы такова, что ее отдельные модули могут быть реализованы различными разработчиками практически независимо друг от друга, то имеет место конструктивная модульность. Модульность, при которой в системе локализуется влияние различных событий, происходящих в реальном масштабе времени, называется событийной модульностью. Если внесение изменений в аппаратуру не требует модификации программного обеспечения, то это свойство называется прозрачностью. И наконец, упомянем о функциональной модульности, обеспечивающей обозримость системы. В этом случае система разбивается на легко обозримые части с четко определенным набором функций. Необходимость в разбиении системы на модули по этому принципу может появляться даже тогда, когда другие критерии этого не требуют.

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

Связность модулей . Связность модуля опpеделяется как меpа независимости его частей. Чем выше связность модуля, тем лучше pезультат пpоектиpования. Для обозначения связности используется также понятие силы связности модуля. Типы связности модулей приведены в таблице 5.1.

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

Таблица 5.1.


Функциональная 10 (сильная связность)

Последовательная 9

Коммуникативная 7

Процедурная 5

Временная 3

Логическая 1

По совпадению 0

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

5.3. СЦЕПЛЕНИЕ МОДУЛЕЙ.

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

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

Таблица 5.2.


Независимое 0 (слабое сцепление)

По данным 1

По образцу 3

По общей области 4

По кодам 9 (сильное сцепление)

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

Модули сцеплены по общей области, если они разделяют одну и ту же глобальную структуру данных.

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

Говорят, что модуль предсказуем, если его работа обусловлена только одними параметрами.

Модули имеют сцепление по кодам, если коды их команд перемежаются друг с другом.


Основы языка SQL

SQL (ˈɛsˈkjuˈɛl; англ. Structured Query Language - «язык структурированных запросов») - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей. Язык манипулирования данными SQL включает следующие операторы:

1) Операторы определения данных (Data Definition Language, DDL )

  • CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.)
CREATE TABLE Student (Code INTEGER NOT NULL, Name CHAR (30) NOT NULL , Address CHAR (50), Mark DECIMAL);
  • ALTER изменяет объект (добавление, удаление, изменение колонки таблицы)

Для добавления колонки в таблицу, используйте следующий синтаксис:

ALTER TABLE table_name ADD column_name datatype

Для удаления колонки в таблице:

ALTER TABLE table_name DROP COLUMN column_name

Для изменения типа данных колонки, используйте следующий синтаксис:

ALTER TABLE table_name ALTER COLUMN column_name datatype
  • DROP удаляет объект
DROP TABLE table_name

2) Операторы манипуляции данными (Data Manipulation Language, DML )

  • INSERT добавляет новые данные:

INSERT INTO <название таблицы> ([<Имя столбца>, ... ]) VALUES (<Значение>,...)

  • UPDATE изменяет существующие данные
UPDATE <объект> SET <присваивание1 [, присваивание2, ...]> ;

top(x) - команда выполнится только х раз

<объект> - объект, над которым выполняется действие (таблица или представление)

<присваивание> - присваивание, которое будет выполняться при каждом выполнении условия <условие>, или для каждой записи, если отсутствует раздел where

<условие> - условие выполнения команды

SET - после ключевого слова должен идти список полей таблицы, которые будут обновлены и непосредственно сами новые значения в виде

имя поля="значение"

  • DELETE удаляет данные

DELETE FROM <Имя Таблицы> WHERE <Условие отбора записей>

  • SELECT считывает данные, удовлетворяющие заданным условиям

Общий формат оператора SELECT имеет следующий вид, где в угловых скобках заданы определяемые пользователем слова-параметры:

SELECT [{<таблица>|<псевдоним>}.]{* | <выражение> } [,…]

FROM <таблица> [<псевдоним>] [,…]

]

[,…]]

Обязательными в операторе являются только конструкции SELECT и FROM. Ключевое слово ALL указывает на необходимость включения в результирующую выборку всех записей, удовлетворяющих запросу, в том числе повторяющихся, если они есть. Ключевое слово DISTINCT используется для удаления дублирующих строк, то есть в результирующую выборку не будут включаться записи, совпадающие по значениям всех полей с одной из ранее отобранных. Параметр <таблица> представляет собой имя таблицы БД, из которой осуществляется выборка. <выражение> задает имя столбца таблицы или выражение из нескольких имен, определяющее вычисляемое поле, содержимое которого включается в результирующую выборку. Выражение помимо имен столбцов, арифметических операций сложения, вычитания, умножения и деления, а также круглых скобок, используемых в сложных выражениях, может содержать в зависимости от диалекта языка те или иные функции от значений полей. Звездочка (*) вместо имени столбца указывает на необходимость включения всех полей. Название любого столбца в результирующей таблице может быть изменено с помощью параметра <другое имя столбца>, что обычно используется для именования вычисляемых полей. Если данные извлекаются из нескольких таблиц, которые имеют совпадающие по названию столбцы, то имя каждого поля должно предваряться именем или псевдонимом таблицы. Псевдоним задает сокращенное имя для таблицы, используемое в пределах данного оператора. Параметр <условие отбора записей> описывает фильтр, определяющий какие строки должны быть включены в результат. <группируемый столбец> задает имя поля, по значениям которого производится группировка записей. Параметр <условие отбора групп> представляет фильтр, накладываемый на сформированные группы. Наконец, <сортируемый столбец> указывает название поля, в соответствии со значениями которого должна быть упорядочена формируемая выборка. Результат выполнения оператора представляет собой таблицу, в которой находятся извлеченные из БД сведения.

Обработка элементов оператора SELECT осуществляется в следующей последовательности:

FROM. Определяются имена используемых таблиц и условия их объединения, и формируется исходный набор строк результата.

WHERE. В соответствии с заданным условием выполняется фильтрация полученного набора и исключаются ненужные записи.

GROUP BY. Образуются группы строк, имеющих одни и те же значении в указанных столбцах.

HAVING. Выполняется фильтрация полученных на предыдущем шаге групп в соответствии с заданным условием.

SELECT. Устанавливается, какие столбцы необходимо включить в результирующую таблицу.

ORDER BY. Определяется порядок сортировки и набор столбцов, по значениям которых она выполняется для получения конечного результата.

7) JOIN – внутреннее соединение таблиц.

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

Человек, не знающий графического обозначения элементов радиосхемы, никогда не сможет её «прочесть». Этот материал предназначен для того, чтобы начинающему радиолюбителю было с чего начать. В различных технических изданиях такой материал встречается очень редко. Именно этим он и ценен. В разных изданиях встречаются «отклонения» от государственного стандарта (ГОСТа) в графическом обозначении элементов. Эта разница важна только для органов государственной приёмки, а для радиолюбителя практического значения не имеет, лишь бы был понятен тип, назначение и основные характеристики элементов. Кроме того, в разных странах и обозначение может быть разным. Поэтому, в этой статье приводятся разные варианты графического обозначения элементов на схеме (плате). Вполне может быть, что здесь вы увидите не все варианты обозначения.

Любой элемент на схеме имеет графическое изображение и его буквенно-цифровое обозначение. Форма и размеры графического обозначения определены ГОСТом, но как я писал ранее, не имеют практического значения для радиолюбителя. Ведь если на схеме, изображение резистора будет по размеру меньше чем по ГОСТам, радиолюбитель не перепутает его с другим элементом. Любой элемент обозначается на схеме одной, или двумя буквами (первая обязательно — прописная), и порядковым номером на конкретной схеме. Например R25 обозначает, что это резистор (R), и на изображённой схеме – 25-й по счёту. Порядковые номера, как правило, присваиваются сверху вниз и слева направо. Бывает, когда элементов не больше двух десятков, их просто не нумеруют. Встречается, что при доработках схем, некоторые элементы с «большим» порядковым номером могут стоять не в том месте схемы, по ГОСТу – это нарушение. Явно, заводскую приёмку подкупили взяткой в виде банальной шоколадки, или бутылкой необычной формы дешёвого коньяка. Если схема большая, то найти элемент, стоящий не по порядку бывает затруднительно. При модульном (блочном) построении аппаратуры, элементы каждого блока имеют свои порядковые номера. Ниже вы можете ознакомиться с таблицей, содержащей обозначения и описания основных радиоэлементов, для удобства в конце статьи есть ссылка для скачивания таблицы в формате WORD.

Таблица графических обозначений радиоэлементов на схеме

Графическое обозначение (варианты) Наименование элемента Краткое описание элемента
Элемент питания Одиночный источник электрического тока, в том числе: часовые батарейки; пальчиковые солевые батарейки; сухие аккумуляторные батарейки; батареи сотовых телефонов
Батарея элементов питания Набор одиночных элементов, предназначенный для питания аппаратуры повышенным общим напряжением (отличным от напряжения одиночного элемента), в том числе: батареи сухих гальванических элементов питания; аккумуляторные батареи сухих, кислотных и щелочных элементов
Узел Соединение проводников. Отсутствие точки (кружочка) говорит о том, что проводники на схеме пересекаются, но не соединяются друг с другом – это разные проводники. Не имеет буквенно-цифрового обозначения
Контакт Вывод радиосхемы, предназначенный для «жёсткого» (как правило — винтового) подсоединения к нему проводников. Чаще используется в больших системах управления и контроля электропитанием сложных многоблочных электросхем
Гнездо Соединительный легкоразъёмный контакт типа «разъём» (на радиолюбительском сленге — «мама»). Применяется преимущественно для кратковременного, легко разъединяемого подключения внешних приборов, перемычек и других элементов цепи, например в качестве контрольного гнезда
Розетка Панель, состоящая из нескольких (не менее 2-х) контактов «гнездо». Предназначена для многоконтактного соединения радиоаппаратуры. Типичный пример – бытовая электророзетка «220В»
Штекер Контактный легкоразъёмный штыревой контакт (на сленге радиолюбителей — «папа»), предназначенный для кратковременного подключения к участку электрорадиоцепи
Вилка Многоштеккерный разъем, с числом контактов не менее двух предназначенный для многоконтактного соединения радиоаппаратуры. Типичный пример — сетевая вилка бытового прибора «220В»
Выключатель Двухконтактный прибор, предназначенный для замыкания (размыкания) электрической цепи. Типичный пример – выключатель света «220В» в помещении
Переключатель Трёхконтактный прибор, предназначенный для переключения электрических цепей. Один контакт имеет два возможных положения
Тумблер Два «спаренных» переключателя — переключаемых одновременно одной общей рукояткой. Отдельные группы контактов могут изображаться в разных частях схемы, тогда они могут обозначаться как группа S1.1 и группа S1.2. Кроме того, при большом расстоянии на схеме они могут соединяться одной пунктирной линией
Галетный переключатель Переключатель, в котором один контакт «ползункового» типа, может переключаться в несколько разных положений. Бывают спаренные галетные переключатели, в которых имеется несколько групп контактов
Кнопка Двухконтактный прибор, предназначенный для кратковременного замыкания (размыкания) электрической цепи путём нажатия на него. Типичный пример – кнопка дверного звонка квартиры
Общий провод (GND) Контакт радиосхемы, имеющий условный «нулевой» потенциал относительно остальных участков и соединений схемы. Обычно, это вывод схемы, потенциал которого либо самый отрицательный относительно остальных участков схемы (минус питания схемы), либо самый положительный (плюс питания схемы). Не имеет буквенно-цифрового обозначения
Заземление Вывод схемы, подлежащий подключению к Земле. Позволяет исключить возможное появление вредоносного статического электричества, а также предотвращает поражение от электрического тока в случае возможного попадания опасного напряжения на поверхности радиоприборов и блоков, которых касается человек, стоящий на мокром грунте. Не имеет буквенно-цифрового обозначения
Лампа накаливания Электрический прибор, применяемый для освещения. Под действием электрического тока происходит свечение вольфрамовой нити накала (её горение). Не сгорает нить потому, что внутри колбы лампы нет химического окислителя – кислорода
Сигнальная лампа Лампа, предназначенная для контроля (сигнализирования) состояния различных цепей устаревшей аппаратуры. В настоящее время, вместо сигнальных ламп используют светодиоды, потребляющие более слабый ток и более надёжные
Неоновая лампа Газоразрядная лампа, наполненная инертным газом. Цвет свечения зависит от вида газа-наполнителя: неон – красно-оранжевое, гелий – синее, аргон – сиреневое, криптон – сине-белое. Применяют и другие способы придать определённый цвет лампе наполненной неоном – использование люминесцентных покрытий (зелёного и красного свечения)
Лампа дневного света (ЛДС) Газоразрядная лампа, в том числе колба миниатюрной энергосберегающей лампы, использующая люминесцентное покрытие – химический состав с послесвечением. Применяется для освещения. При одинаковой потребляемой мощности, обладает более ярким светом, чем лампа накаливания
Электромагнитное реле Электрический прибор, предназначенный для переключения электрических цепей, путём подачи напряжения на электрическую обмотку (соленоид) реле. В реле может быть несколько групп контактов, тогда эти группы нумеруются (например Р1.1, Р1.2)
Электрический прибор, предназначенный для измерения силы электрического тока. В своём составе имеет неподвижный постоянный магнит и подвижную магнитную рамку (катушку), на которой крепится стрелка. Чем больше ток, протекающий через обмотку рамки, тем на больший угол стрелка отклоняется. Амперметры подразделяются по номинальному току полного отклонения стрелки, по классу точности и по области применения
Электрический прибор, предназначенный для измерения напряжения электрического тока. Фактически ничем не отличается от амперметра, так как делается из амперметра, путём последовательного включения в электрическую цепь через добавочный резистор. Вольтметры подразделяются по номинальному напряжению полного отклонения стрелки, по классу точности и по области применения
Резистор Радиоприбор, предназначенный для уменьшения тока, протекающего по электрической цепи. На схеме указывается значение сопротивления резистора. Рассеиваемая мощность резистора изображается специальными полосками, или римскими символами на графическом изображении корпуса в зависимости от мощности (0,125Вт – две косых линии «//», 0,25 – одна косая линия «/», 0,5 – одна линия вдоль резистора «-«, 1Вт – одна поперечная линия «I», 2Вт – две поперечных линии «II», 5Вт – галочка «V», 7Вт – галочка и две поперечных линии «VII», 10Вт – перекрестие «Х», и т.д.). У Американцев обозначение резистора – зигзагообразное, как показано на рисунке
Переменный резистор Резистор, сопротивление которого на его центральном выводе регулируется с помощью «ручки-регулятора». Номинальное сопротивление, указанное на схеме – это полное сопротивление резистора между его крайними выводами, которое не регулируется. Переменные резисторы бывают спаренные (2 на одном регуляторе)
Подстроечный резистор Резистор, сопротивление которого на его центральном выводе регулируется с помощью «шлица-регулятора» — отверстия под отвёртку. Как и у переменного резистора, номинальное сопротивление, указанное на схеме – это полное сопротивление резистора между его крайними выводами, которое не регулируется
Терморезистор Полупроводниковый резистор, сопротивление которого изменяется в зависимости от окружающей температуры. При увеличении температуры, сопротивление терморезистора уменьшается, а при уменьшении температуры наоборот, увеличивается. Применяется для измерения температуры в качестве термодатчика, в цепях термостабилизации различных каскадов аппаратуры и т.д.
Фоторезистор Резистор, сопротивление которого изменяется в зависимости от освещённости. При увеличении освещённости, сопротивление терморезистора уменьшается, а при уменьшении освещённости наоборот – увеличивается. Применяется для измерения освещенности, регистрации колебаний света и т.д. Типичный пример – «световой барьер» турникета. В последнее время вместо фоторезисторов чаще используются фотодиоды и фототранзисторы
Варистор Полупроводниковый резистор, резко уменьшающий своё сопротивление при достижении приложенного к нему напряжения определённого порога. Варистор предназначен для защиты электрических цепей и радиоприборов от случайных «скачков» напряжения
Конденсатор Элемент радиосхемы, обладающий электрической ёмкостью, способный накапливать электрический заряд на своих обкладках. Применение в зависимости от величины ёмкости разнообразно, самый распространённый радиоэлемент после резистора
Конденсатор, при изготовлении которого применяется электролит, за счет этого при сравнительно малых размерах обладает намного большей ёмкостью, чем обыкновенный «неполярный» конденсатор. При его применении необходимо соблюдать полярность, в противном случае электролитический конденсатор теряет свои накопительные свойства. Используется в фильтрах питания, в качестве проходных и накопительных конденсаторов низкочастотной и импульсной аппаратуры. Обычный электролитический конденсатор саморазряжается за время не более минуты, обладает свойством «терять» ёмкость вследствие высыхания электролита, для исключения эффектов саморазряда и потери ёмкости используют более дорогие конденсаторы – танталовые
Конденсатор, у которого ёмкость регулируется с помощью «шлица-регулятора» — отверстия под отвёртку. Используется в высокочастотных контурах радиоаппаратуры
Конденсатор, ёмкость которого регулируется с помощью выведенной наружу радиоприёмного устройства рукоятки (штурвала). Используется в высокочастотных контурах радиоаппаратуры в качестве элемента селективного контура, изменяющего частоту настройки радиопередатчика, или радиоприемника
Высокочастотный прибор, обладающий резонансными свойствами подобно колебательному контуру, но на определённой фиксированной частоте. Может применяться на «гармониках» — частотах, кратных резонансной частоте, указанной на корпусе прибора. Часто, в качестве резонирующего элемента используется кварцевое стекло, поэтому резонатор называют «кварцевый резонатор», или просто «кварц». Применяется в генераторах гармонических (синусоидальных) сигналов, тактовых генераторах, узкополосных частотных фильтрах и др.
Обмотка (катушка) из медного провода. Может быть бескаркасной, на каркасе, а может исполняться с использованием магнитопровода (сердечника из магнитного материала). Обладает свойством накопления энергии за счёт магнитного поля. Применяется в качестве элемента высокочастотных контуров, частотных фильтров и даже антенны приёмного устройства
Катушка с регулируемой индуктивностью, у которой имеется подвижный сердечник из магнитного (ферромагнитного) материала. Как правило, мотается на цилиндрическом каркасе. При помощи немагнитной отвёртки регулируется глубина погружения сердечника в центр катушки, тем самым изменяется её индуктивность
Катушка индуктивности, содержащая большое количество витков, которая исполняется с использованием магнитопровода (сердечника). Как и высокочастотная катушка индуктивности, дроссель обладает свойством накопления энергии. Применяется в качестве элементов низкочастотных фильтров звуковой частоты, схем фильтров питания и импульсного накопления
Индуктивный элемент, состоящий из двух и более обмоток. Переменный (изменяющийся) электрический ток, прикладываемый к первичной обмотке, вызывает возникновение магнитного поля в сердечнике трансформатора, а оно в свою очередь наводит магнитную индукцию во вторичной обмотке. В результате на выходе вторичной обмотки появляется электрический ток. Точки на графическом обозначении у краёв обмоток трансформатора обозначают начала этих обмоток, римские цифры – номера обмоток (первичная, вторичная)
Полупроводниковый прибор, способный пропускать ток в одну сторону, а в другую нет. Направление тока можно определить по схематическому изображению – сходящиеся линии, подобно стрелке указывают направление тока. Выводы анода и катода буквами на схеме не обозначаются
Специальный полупроводниковый диод, предназначенный для стабилизации приложенного к его выводам напряжения обратной полярности (у стабистора – прямой полярности)
Специальный полупроводниковый диод, обладающий внутренней ёмкостью и изменяющий её значение в зависимости от амплитуды приложенного к его выводам напряжения обратной полярности. Применяется для формирования частотно-модулированного радиосигнала, в схемах электронного регулирования частотными характеристиками радиоприемников
Специальный полупроводниковый диод, кристалл которого светится под действием приложенного прямого тока. Используется как сигнальный элемент наличия электрического тока в определённой цепи. Бывает различных цветов свечения

Специальный полупроводниковый диод, при освещении которого на выводах появляется слабый электрический ток. Применяется для измерения освещенности, регистрации колебаний света и т.д., подобно фоторезистору
Полупроводниковый прибор, предназначенный для коммутации электрической цепи. При подаче небольшого положительного напряжения на управляющий электрод относительно катода, тиристор открывается и проводит ток в одном направлении (как диод). Закрывается тиристор только после пропадания протекающего от анода к катоду тока, или смены полярности этого тока. Выводы анода, катода и управляющего электрода буквами на схеме не обозначаются
Составной тиристор, способный коммутировать токи как положительной полярности (от анода к катоду), так и отрицательной (от катода к аноду). Как и тиристор, симистор закрывается только после пропадания протекающего от анода к катоду тока, или смены полярности этого тока
Вид тиристора, который открывается (начинает пропускать ток) только при достижении определённого напряжения между его анодом и катодом, и запирается (прекращает пропускать ток) только при уменьшении тока до нуля, или смены полярности тока. Используется в схемах импульсного управления
Биполярный транзистор, который управляется положительным потенциалом на базе относительно эмиттера (стрелка у эмиттера показывает условное направление тока). При этом при повышении входного напряжения база-эмиттер от нуля до 0,5 вольта, транзистор находится в закрытом состоянии. После дальнейшего повышения напряжения от 0,5 до 0,8 вольта транзистор работает как усилительный прибор. На конечном участке «линейной характеристики» (около 0,8 вольта) транзистор насыщается (полностью открывается). Дальнейшее повышение напряжения на базе транзистора опасно, транзистор может выйти из строя (происходит резкий рост тока базы). В соответствии с «учебниками», биполярный транзистор управляется током база-эмиттер. Направление коммутируемого тока в n-p-n транзисторе – от коллектора к эмиттеру. Выводы базы, эмиттера и коллектора буквами на схеме не обозначаются
Биполярный транзистор, который управляется отрицательным потенциалом на базе относительно эмиттера (стрелка у эмиттера показывает условное направление тока). В соответствии с «учебниками», биполярный транзистор управляется током база-эмиттер. Направление коммутируемого тока в p-n-р транзисторе – от эмиттера к коллектору. Выводы базы, эмиттера и коллектора буквами на схеме не обозначаются
Транзистор (как правило — n-p-n), сопротивление перехода «коллектор-эмиттер» которого уменьшается при его освещении. Чем выше освещённость, тем меньше сопротивление перехода. Применяется для измерения освещенности, регистрации колебаний света (световых импульсов) и т.д., подобно фоторезистору
Транзистор, сопротивление перехода «сток-исток» которого уменьшается при подаче напряжения на его затвор относительно истока. Обладает большим входным сопротивлением, что повышает чувствительность транзистора к малым входным токам. Имеет электроды: Затвор, Исток, Сток и Подложку (бывает не всегда). По принципу работы, можно сравнить с водопроводным краном. Чем больше напряжение на затворе (на больший угол повёрнута рукоятка вентиля), тем больший ток (больше воды) течёт между истоком и стоком. По сравнению с биполярным транзистором имеет больший диапазон регулирующего напряжения – от нуля, до десятков вольт. Выводы затвора, истока, стока и подложки буквами на схеме не обозначаются
Полевой транзистор, управляемый положительным потенциалом на затворе, относительно истока. Имеет изолированный затвор. Обладает большим входным сопротивлением, и очень малым выходным сопротивлением, что позволяет малыми входными токами управлять большими выходными токами. Чаще всего, технологически подложка соединена с истоком
Полевой транзистор, управляемый отрицательным потенциалом на затворе, относительно истока (для запоминания р-канал — позитив). Имеет изолированный затвор. Обладает большим входным сопротивлением, и очень малым выходным сопротивлением, что позволяет малыми входными токами управлять большими выходными токами. Чаще всего, технологически подложка соединена с истоком
Полевой транзистор, обладающий теми же свойствами, что и «со встроенным n-каналом» с той разницей, что имеет ещё большее входное сопротивление. Чаще всего, технологически подложка соединена с истоком. По технологии изолированного затвора исполняются MOSFET транзисторы, управляемые входным напряжением от 3 до 12 вольт (в зависимости от типа), имеющие сопротивление открытого перехода сток-исток от 0,1 до 0,001 Ом (в зависимости от типа)
Полевой транзистор, обладающий теми же свойствами, что и «со встроенным p-каналом» с той разницей, что имеет ещё большее входное сопротивление. Чаще всего, технологически подложка соединена с истоком