Принципы разработки алгоритмов и программ
Человеку в жизни и практической деятельности приходится решать множество различных задач. Решение каждой из них описывается своим алгоритмом, и разнообразие этих алгоритмов очень велико. Тем не менее можно выделить лишь три основных вида алгоритмов (для краткости далее будем называть их просто: линейные, разветвляющиеся и циклические алгоритмы):
линейной структуры,
разветвляющейся структуры,
циклической структуры.
Линейный алгоритм – алгоритм, в котором порядок действий фиксирован и каждое действие выполняется только один раз. Разветвляющийся алгоритм–алгоритм, порядок действий в котором зависит от некоторых условий. Разнообразие же алгоритмов определяется тем, что любой алгоритм распадается на части, фрагменты и каждый фрагмент представляет собой алгоритм одного из трех указанных видов. Поэтому важно знать структуру каждого из алгоритмов и принципы их составления.
Отметим, что алгоритм заварки чая, приведенный выше, является по своей структуре линейным, алгоритм задачи 4.1. — разветвляющимся. Примером циклического алгоритма может служить алгоритм начисления зарплаты согласно правилу задачи 4.1, но не для одного сотрудника, а для группы, например, из 20 человек, т. е. алгоритм, в котором многократно выполняются одни и те же операции.
Рассмотрим суть упомянутых принципов на конкретной задаче.
Задача 4.2.
Даны длины двух катетов прямоугольного треугольника. Определить периметр этого треугольника. Требуется составить алгоритм решения задачи.
Решение:
1. Выделяем исходные данные и результаты (это первое, что должен содержать алгоритм, согласно правилам его записи). Исходные данные: А, В — длины катетов. Результат: Р — периметр треугольника.
2. Согласно определению: «Алгоритм — это метод решения задачи...». Следовательно, далее нужно выбрать метод решения задачи — и это самое главное! («нельзя сварить бульон из курицы, не имея курицы»). А зная метод, надо изложить его в соответствии с правилами записи алгоритмов, т. е. сначала разбить его на этапы. В нашем случае метод решения задачи на ЭВМ такой:
1. Ввод данных.
2. Вычисление .
3. Вычисление .
4. Вывод Р.
Решение задачи, как видим, состоит из IV этапов.
Далее изображаем каждый из указанных этапов в виде определенной геометрической фигуры (блока) и соединяем их стрелками. В результате получаем схему алгоритма задачи (см. рис. 4.2).
Можно сформулировать общие правила построения схемы алгоритма задачи (иногда их называют «Основные принципы алгоритмизации»):
1. Выявить исходные данные, результаты, дать им имена.
2. Выбрать метод (порядок) решения задачи.
3. Разбить метод решения задачи на этапы (с учетом возможностей ЭВМ).
4. Изобразить каждый этап в виде соответствующего блока схемы алгоритма и указать стрелками порядок их выполнения.
5. В полученной схеме при любом варианте вычислений:
- предусмотреть выдачу результатов или сообщений об их отсутствии;
- обеспечить возможность после выполнения любой операции так или иначе перейти к блоку Останов (к выходу схемы).
Рис. 4.2 Схема алгоритма задачи
Введение в вычислительные сети
1.1. Сети: основные понятия
Телематика – это новая научно-техническая дисциплина, предметом которой являются методы и средства передачи информации на расстояния, существенно превышающие линейные размеры площади, занимаемой участниками связи. Название дисциплины произошло из частей слов “телекоммуникации” и “информатика”.
Коммуникационная сеть – система, состоящая из объектов, осуществляющих функции генерации, преобразования, хранения и потребления продукта, называемых пунктами (узлами) сети, и линий передачи (связей, коммуникаций, соединений), осуществляющих передачу продукта между пунктами.
Отличительная особенность коммуникационной сети – большие расстояния между пунктами по сравнению с геометрическими размерами участков пространства, занимаемых пунктами. В качестве продукта могут фигурировать информация, энергия, масса, и соответственно различают группы сетей информационных, энергетических, вещественных. В группах сетей возможно разделение на подгруппы. Так, среди вещественных сетей могут быть выделены сети транспортные, водопроводные, производственные и др. При функциональном проектировании сетей решаются задачи синтеза топологии, распределения продукта по узлам сети, а при конструкторском проектировании выполняются размещение пунктов в пространстве и проведение (трассировка) соединений.
Информационная сеть – коммуникационная сеть, в которой продуктом генерирования, переработки, хранения и использования является информация.
Вычислительная сеть – информационная сеть, в состав кoторой входит вычислительное оборудование. Компонентами вычислительной сети могут быть ЭВМ и периферийные устройства, являющиеся источниками и приемниками данных, передаваемых по сети. Эти компоненты составляют оконечное оборудование данных (ООД, или DTE – Data Terminal Equipment). В качестве ООД могут выступать ЭВМ, принтеры, плоттеры и другое вычислительное, измерительное и исполнительное оборудование автоматических и автоматизированных систем.
Терминал – устройство, предназначенное для взаимодействия пользователя с вычислительной системой или сетью ЭВМ. Состоит из устройства ввода (чаще всего это клавиатура) и одного или нескольких устройств вывода (дисплей, принтер и т.д.).
Под узлом будем понимать компоненты вычислительной сети, являющиеся источниками и приемниками данных, передаваемых по сети.
Собственно пересылка данных происходит с помощью сред и средств, объединяемых под названием среда передачи данных. Объединение в сеть ЭВМ осуществляется с помощью кабелей различного типа. Кабели подсоединяются к компьютеру через специальное устройство, называемое сетевой картой (сетевым адаптером), которая вставляется в слот расширения на материнской плате компьютера. Для построения сети используются и другие сетевые устройства различной сложности.
Подготовка данных, передаваемых или получаемых ООД от среды передачи данных, осуществляется функциональным блоком, называемым аппаратурой окончания канала данных (АКД, или DCE – Data Circuit-Terminating Equipment). АКД может быть конструктивно отдельным или встроенным в ООД блоком. ООД и АКД вместе представляют собой станцию данных, которую часто называют узлом сети. Примером АКД может служить модем.
Классификация сетей
Вычислительные сети классифицируются по ряду признаков. В зависимости от расстояний между связываемыми узлами различают вычислительные сети:
территориальные – охватывающие значительное географическое пространство; среди территориальных сетей можно выделить сети региональные и глобальные, имеющие соответственно региональные или глобальные масштабы; региональные сети иногда называют сетями MAN (Metropolitan Area Network), а общее англоязычное название для территориальных сетей – WAN (Wide Area Network);
локальные (ЛВС) – охватывающие ограниченную территорию (обычно в пределах удаленности станций не более чем на несколько десятков или сотен метров друг от друга, реже на 1...2 км); локальные сети обозначают LAN (Local Area Network);
корпоративные (масштаба предприятия) – совокупность связанных между собой ЛВС, охватывающих территорию, на которой размещено одно предприятие или учреждение в одном или нескольких близко расположенных зданиях.
Особо выделяют единственную в своем роде глобальную сеть Internet. Это всемирная компьютерная сеть, сеть сетей, объединяющая посредством межсетевых интерфейсов многие сети. Internet охватывает американский континент, Европу, Азию. Некоторые сети, входящие в состав Internet, сами по себе велики, другие имеют свои подсети. В настоящее время сеть Internet объединяет более 2,5 млн. компьютеров многих стран мира и доступна нескольким десяткам миллионов пользователей.
С технической точки зрения Internet – объединение транснациональных компьютерных сетей, работающих по самым разнообразным протоколам, связывающим всевозможные типы компьютеров, физически передающих данные по телефонным проводам и оптоволокну, через спутники и радиомодемы. Координацию сети осуществляет Центр информационных сетей при Стенфордском исследовательском институте в Менло Парк, Калифорния.
На российском рынке глобальных вычислительных сетей наиболее активно и эффективно функционируют следующие сетевые структуры: РОСПАК, GLASNET, РЕЛКОМ, ИНФОТЕЛ.
Различают интегрированные сети, неинтегрированные сети и подсети. Интегрированная вычислительная сеть (интерсеть) представляет собой взаимосвязанную совокупность многих вычислительных сетей, которые в интерсети называются подсетями.
В автоматизированных системах крупных предприятий подсети включают вычислительные средства отдельных проектных подразделений. Интерсети нужны для объединения таких подсетей, а также для объединения технических средств автоматизированных систем проектирования и производства в единую систему комплексной автоматизации. Обычно интерсети приспособлены для различных видов связи: телефонии, электронной почты, передачи видеоинформации, цифровых данных и т.п., и в этом случае они называются сетями интегрального обслуживания.
Развитие интерсетей заключается в разработке средств сопряжения разнородных подсетей и стандартов для построения подсетей, изначально приспособленных к сопряжению.
Подсети в интерсетях объединяются в соответствии с выбранной топологией с помощью блоков взаимодействия. Топология – геометрическое отображение отношений в сети. В зависимости от топологии соединений узлов различают сети шинной (магистральной), кольцевой, звездной, иерархической, произвольной структуры. Топологии сетей будут рассмотрены ниже.
В зависимости от способа управления различают сети:
“клиент/сервер” – в них выделяется один или несколько узлов (серверы), выполняющих в сети управляющие или специальные обслуживающие функции, а остальные узлы (клиенты) являются терминальными, в них работают пользователи;
одноранговые – в них все узлы равноправны; поскольку в общем случае под клиентом понимается объект (устройство или программа), запрашивающий некоторые услуги, а под сервером – объект, предоставляющий эти услуги, то каждый узел в одноранговых сетях может выполнять функции и клиента, и сервера.
Наконец появилась сетецентрическая концепция, в соответствии с которой пользователь имеет лишь дешевое оборудование для обращения к удаленным компьютерам, а сеть обслуживает заказы на выполнение вычислений и получение информации, т.е. пользователю не нужно приобретать программное обеспечение для решения прикладных задач, ему нужно лишь платить за выполненные заказы. Подобные компьютеры называют тонкими клиентами или сетевыми компьютерами.
В зависимости от того, одинаковые или неодинаковые ЭВМ применяют в сети, различают сети однотипных ЭВМ, называемые однородными, и разнотипных ЭВМ – неоднородные (гетерогенные). В крупных автоматизированных системах, как правило, сети оказываются неоднородными.
В зависимости от прав собственности на сети последние могут быть сетями общего пользования (public) или частными (private). Среди сетей общего пользования выделяют телефонные сети ТфОП (PSTN – Public Switched Telephone Network) и сети передачи данных (PSDN – Public Switched Data Network).
Сети также различают в зависимости от используемых в них протоколов и по способам коммутации.
Способы коммутации