Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Порядок использования задач и комплексов в практике работы органа управления
Применение ИРЗ и их комплексов организуется и осуществляется на основании указаний руководителя организации, распоряжений вышестоящих органов управления и других руководящих документов. Документы, регламентирующие применение ИРЗ и их комплексов, должны включать: • цели и сроки применения каждой задачи; • порядок проведения расчетов (моделирования) в разных условиях обстановки, подготовки исходных данных, анализа промежуточных и конечных результатов, их выдачи в соответствующие органы управления и использования результатов решения в процессе управления организациями; • порядок обобщения опыта применения задач и их комплексов, разработки и реализации предложений по совершенствованию методов работы с использованием результатов расчетов; • список сотрудников, выделенных для оперативного сопровождения задач и их комплексов; 69 • перечень мероприятий по исключению утечки информации в процессе проведения расчетов и анализа их результатов; • порядок подготовки и допуска личного состава органов управления к работе с задачей и результатами расчетов, а также порядок проведения необходимых периодических тренировок с лицами, допущенными к работе с задачей; • перечень мероприятий по поддержанию в работоспособном состоянии средств программного, технического и других видов обеспечения. Ответственность за внедрение, освоение персоналом, применение, совершенствование задач и их комплексов, а также обеспечение безопасности информации в процессе ее обработки возлагается на руководителя организации или должностное лицо по его поручению. Ответственность за поддержание задач и их комплексов в работоспособном состоянии возлагается на начальника вычислительного центра. Оперативное сопровождение задач и их комплексов осуществляется выделенными для этой цели сотрудниками и включает: • поддержание программ и средств их информационного обеспечения в работоспособном состоянии; • подготовку предложений по совершенствованию оперативных постановок, алгоритмов и инструкций по использованию задач и их комплексов в связи с изменением взглядов руководства на развитие организации, появлением новых методов, технических и программных средств, изменениями организационной структуры и т.п.; • подготовку рекомендаций по совершенствованию методики работы органа управления с использованием имеющихся (принятых в эксплуатацию) ИРЗ и их комплексов. В процессе эксплуатации задач и их комплексов разработчик осуществляет научно-техническое сопровождение (авторский надзор), которое включает совершенствование математических методов, алгоритмов, программ и информационного обеспечения в целях повышения оперативно-технических характеристик ИРЗ и их комплексов. ГЛАВА 6. ОСНОВЫ АЛГОРИТМИЗАЦИИ ЗАДАЧ Л. Алгоритм Этап алгоритмизации является важным этапом создания ИРЗ, сущность которого состоит в разработке обобщенных и детальных алгоритмов создаваемой задачи. Как уже отмечалось ранее, при традиционном (классическом) подходе к созданию элементов ПО данный этап занимает промежуточное положение между этапами постановки задачи и программированием (кодированием). Разработанные алгоритмы задачи входят в состав документов, которые должны представляться разработчиком задачи заказчику. Алгоритмы задачи используются должностными лицами, работающими с задачей, для ее изучения и оценки качества получаемых результатов при практическом использовании. Решение многих вопросов практики связано с выполнением некоторой последовательности отдельных действий (элементарных операций). Если общее количество таких операций не является малым, а последовательность их выполнения может быть переменной в зависимости от исходного состояния и промежуточных результатов, то варианты объединения этих элементарных операций в единые совокупности, нацеленные на решение определенных задач практики, могут представлять самостоятельный интерес. Под алгоритмом понимается совокупность предписаний и правил, которые однозначно определяют содержание и последовательность действий исполнителя, выполняя которые за конечное число шагов, он достигнет требуемого результата [5]. Элементарные операции, которые выполняет исполнитель, реализуя алгоритм, называются пунктами или шагами алгоритма. Процесс составления алгоритма называется алгоритмизацией. В понятии «алгоритм» существенным является ряд особенностей. 1. В понятии алгоритма не конкретизируется исполнитель, поэтому им может являться как техническое (кибернетическое) устройство, так и человек или коллектив. 2. Понятие алгоритма требует однозначного восприятия исполнителем составляющих алгоритма (при выполнении алгоритма в 71 одних и тех же исходных условиях разными исполнителями должен получаться один и тот же результат). 3. Алгоритм перестает быть алгоритмом, если предписываемая им последовательность действий является (или может являться при определенных условиях) бесконечной. Алгоритм всегда конечен. Понятие алгоритма не детализирует характер выполняемых в его рамках операций (действий). Эти операции могут проводиться как над материальными объектами, так и над данными (информацией). Алгоритмы последнего типа составляют основу информационных технологий и являются предметом последующего рассмотрения. В качестве первого примера представим алгоритм действий пешехода при переходе улицы. Данный алгоритм ориентирован на выполнение человеком и предусматривает осуществление как информационных операций, так и действий материальных объектов. 1. Определяют, является ли переход управляемым (т. е. установлен ли на нем светофор). Если светофор имеется, переходят к п. 3, если отсутствует — к п. 2. 2. Если переход является неуправляемым, следует посмотреть налево и, если отсутствуют движущиеся по данной полосе (полосам) машины, выйти на середину дороги. Если движущиеся машины мешают переходу, их пропускают. Смотрят направо и, если отсутствуют движущиеся по данной полосе (полосам) машины, завершают переход улицы. Если движущиеся машины мешают переходу, их пропускают и после этого завершают переход. После этого переходят к п. 4. 3. Если переход является управляемым, следует убедиться, горит ли зеленый сигнал светофора. Если он горит, переходят улицу. Если нет, ждут его появления, после чего переходят улицу. После этого переходят к п. 4. 4. После перехода продолжают запланированные действия (алгоритм завершен). Заметим, что приведенный алгоритм пригоден лишь при выполнении нескольких условий: 1) при использовании «в районе операции по переходу» правостороннего дорожного движения (см. п. 2); 2) при наличии такой регулировки светофора, которая позволяет пешеходу (успеть) перейти улицу до изменения цвета сигнала—в противном случае следует в п. 3 предусмотреть остановку на середине улицы («островке безопасности»); 3) наконец, при выполнении всеми участниками движения (прежде всего — водителями) правил дорожного движения. Таким образом, следует признать, что практически всегда алгоритмы представляют собой модели действий в некоторых усло- 72
Рис. 6.1. Алгоритм вычисления функции Рис. 6.2. Алгоритм упорядочения массива чисел 73 виях, которые могут отражать субъективные предпочтения своих авторов и которые следует четко определить. Так, например, родители вправе потребовать от детей переходить улицы только в тех местах, где установлены светофоры, что упрощает алгоритм действий. На рис. 6.1 представлен второй пример — алгоритм для проведения расчетов, которые реализуют следующую математическую зависимость: На рис. 6.2 представлен третий пример — алгоритм, который позволяет упорядочить по убыванию значений К чисел в массиве данных С(1: К). Алгоритмы, представленные на рис. 6.1 и 6.2, могут быть реализованы как человеком, так и техническим средством. Необходимо обратить внимание на то, что алгоритм, представленный на рис. 6.2, является не единственно возможным. Существует много вариантов алгоритмов упорядочения чисел в массиве. Таким образом, при разработке алгоритма возникает проблема выбора лучшего по какому-либо критерию (правилу) алгоритма из множества возможных. Формы записи алгоритмов К настоящему времени сформировались и нашли широкое распространение шесть различных форм записи алгоритмов [5]: 1) табличная; 2) словесная; 3) в виде блок-схемы; 4) операторная; 5) использующая псевдокоды; 6) языки программирования. Табличная форма записи алгоритма часто используется для ведения учетной документации. При разработке программ на ЭВМ такая форма практического применения не находит. Однако табличная форма представления алгоритма часто выступает в виде исходной информации о механизме выполнения действий на практике. Кроме того, такая форма записи алгоритмов получила новую жизнь с появлением и широким распространением табличных процессоров (Excel; Lotus 1 — 2 — 3). Примеры табличной формы записи алгоритма представлены в табл. 6.1 и 6.2. 74 Та б л и ц а 6.1 Табличная форма записи алгоритма в учетной документации (учет поступления моторного масла на склад)
Таблица 6.2 Табличная форма записи алгоритма вычисления арифметического выражения Словесная форма записи алгоритма предполагает его описание с помощью слов и предложений. Именно в словесной форме записан приведенный в подразд. 6.1 алгоритм перехода улицы. Данная форма является наиболее простой и естественной для самого широкого круга людей. Наибольшее распространение эта форма находит на начальном этапе разработки программных систем при формировании основных элементов их замысла, а также при описании динамики взаимодействия основных блоков (модулей). Необходимо иметь в виду, что словесная форма записи допускает запись любого, сколь угодно сложного алгоритма. Недостатками словесной формы записи алгоритма являются ее громоздкость и отсутствие наглядности для сложных алгоритмов. Блок-схемы алгоритмов получили большое распространение благодаря наглядному и компактному представлению алгоритмов в графической форме. Каждому пункту (шагу) алгоритма в блок-схеме соответствует отдельный блок. Блоки между собой соединяются стрелками, которые определяют порядок реализации действий, предусмотренных в каждом блоке. Приняты определенные стандарты графического изображения блоков при описании информационных алгоритмов. Основными из них являются такие геометрические фигуры, как прямоугольник, ромб, параллелограмм, трапеция, овал и др. В прямоугольнике помещаются действия по безусловной переработке информации. Блоки в виде ромбов описывают проверку различных условий, связанных с текущим значением перерабатываемой информации. Овалы обозначают начало и окончание работы алгоритма. 75 Для записи действий внутри блоков используется естественный язык или математическая символика. Операторная форма — это запись алгоритма в виде условных буквенно-цифровых символов-операторов, графических знаков-стрелок и знаков препинания. Операторы подразделяются на основные — арифметические, логические и вспомогательные — ввода-вывода, останова и др. Для операторов определенных типов принимаются одинаковые обозначения в пределах всего алгоритма, например А — арифметический оператор, Р — логический оператор, П — оператор ввода-вывода, Я — оператор останова и т. д. Операторы в общем случае могут состоять из сочетания нескольких букв. Алгоритм в операторной форме записывается с соблюдением следующих правил: • все операторы записываются в одну строку; • каждый из операторов снабжается индексом, указывающим порядковый номер оператора (нумерация операторов сквозная); • если символы операторов стоят рядом, это значит, что оператор, стоящий справа, получает управление от оператора, стоящего слева; • если оператор, стоящий справа, не получает управление от стоящего слева оператора, то между ними ставится точка с запятой; • передача управления оператору, не стоящему справа, обозначается стрелкой. Рассмотрим пример записи в операторной форме алгоритма определения корней квадратного уравнения: Т 6 4.4 П,П2АзР4А5; А6П7Я8>, П Т 5 где 111 — оператор ввода исходных данных (а, Ь, с); П2 — оператор печати исходных данных; А3 — оператор расчета величины D= b2- 4ас; Р4 — оператор проверки условия D > 0; А5 — оператор расчета действительных корней; А$ — оператор расчета мнимых корней; П7 — оператор вывода на печать значений корней; Я8 — оператор останова. Операторная форма записи алгоритмов является самой компактной. Однако в силу малой наглядности содержания действий, выполняемых каждым оператором, при разработке программных систем рассматриваемая форма применяется редко. Псевдокод представляет собой систему обозначений и правил, предназначенных для единообразной записи различных алгоритмов. Псевдокоды занимают промежуточное положение между естественным и формальным языком. В псевдокоде не приняты стро- 76 гие синтаксические правила для записи команд в отличие от формальных языков (языков программирования). Это облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи на том или ином языке программирования. В частности, псевдокод так же, как и язык программирования, имеет ключевые слова с четким смыслом, определяющим некоторую последовательность действий. Рассмотрим пример записи с использованием псевдокода алгоритма, реализующего подсчет числа символов в кодограмме: Начало алгоритма Записать в счетчик слов нуль; установить указатель на первую запись текста; ПОКА символ не есть «.» ПОВТОРЯТЬ Начало повторения ЕСЛИ символ есть пробел, ТО счетчик слов увеличить на единицу; перевести указатель на следующий символ Конец повторения Взять число в счетчике слов в качестве результата; Конец алгоритма В настоящее время для записи сравнительно несложных алгоритмов довольно часто используют языки программирования (как правило, высокого уровня). Очевидны по крайней мере два недостатка такой формы записи: исключительно низкая наглядность (кроме тривиально простых алгоритмов) и необходимость знания используемого языка программирования. Приведем простейший пример фрагмента программы перевода долларов в рубли, созданной в среде программирования Borland C++ Builder (язык C++): /* Программа перевода долларов в рубли */ { int DollarsNum; RateValue; // Исходные данные int Result; // Результат DollarsNum = StrToInt (Dollars->Text); RateValue = StrToInt (Rate->Text); Result = DollarsNum * RateValue; Label l->Caption = IntToStr(Result); } В результате выполнения такой программы в поле надписи Label! появится сумма в рублях — результат перевода значения поля ввода Editl Dollars (суммы в долларах) по курсу, заданному в поле ввода Edit2 Rate. 77 Структуры алгоритмов Рассмотренные примеры записи алгоритмов указывают на то, что каждый из них, в какой бы форме он ни был записан, представляет собой некоторую структуру, состоящую из отдельных базовых команд. Данные команды в зависимости от своей сложности делятся на простые и составные. Простая команда соответствует одному элементарному шагу алгоритма. Применительно к алгоритму на рис. 6.1 такими элементарными командами являются команды Y = А + В и Y = А - В. Простые команды в блок-схемах изображаются в виде блока, имеющего один вход и один выход. Из совокупности простых команд образуются составные коман ды, которые имеют сложную структуру. Из всех сложных команд целесообразно выделить три основных типа: 1) команда следования; 2) команда ветвления; 3) команда повторения (цикла). Команда следования образуется из простых команд, следующих строго одна за другой. На рис. 6.3 представлена блок-схема команды следования. С помощью команды ветвления осуществляется выбор одного из нескольких возможных вариантов действий в зависимости от выполнения некоторых условий. Команда ветвления может использоваться в сокращенной форме, когда при выполнении условия выполняется одно действие, а при невыполнении условия вообще никаких действий не выполняется. На рис. 6.4 представлена блок-схема команд ветвления в полной и сокращенной формах. Команда повторения (цикла) реализует возможность многократного выполнения одной и той же совокупности определенных действий. Имеются два типа команд повторения: 1) с предусловием; 2) постусловием. Рис. 6.3. Блок-схема команды следования 78 Рис. 6.4. Команды ветвления: а — в полной форме; б — сокращенной форме Исполнение команд повторения с предусловием состоит в том, что сначала проверяется условие, контролирующее необходимость повторения действий, а затем выполняются соответствующие действия. Основной особенностью команды повторения с предусловием является то, что действия могут не выполниться ни разу, если при обращении к команде повторения проверка условия дает отрицательный результат. При выполнении команды повторения с постусловием контроль необходимости очередного повторения проводится после выполнения действий. В отличие от предыдущей команды команда повторения с постусловием предусматривает выполнение действий хотя бы один раз. Блок-схемы команд повторения с предусловием и постусловием представлены на рис. 6.5.
Этап технического проектирования программных систем завершается созданием алгоритмов. Затем следует этап рабочего проектирования; предназначенный для написания и отладки программ на ЭВМ в соответствии с разработанными алгоритмами. 75 В заключение отметим три важных обстоятельства. Во-первых, при создании информационных и расчетных задач, как правило, сначала разрабатываются обобщенные, а затем детальные алгоритмы, по которым и осуществляется собственно программирование (кодирование). При этом для записи обобщенных и детальных алгоритмов могут использоваться разные формы. Во-вторых, перечисленные ранее типовые конструкции алгоритмов легли в основу одной из довольно широко применяемых технологий создания программ —- структурного программирования, позволяющего разрабатывать весьма наглядные древовидные архитектуры программ, которые легко читаются и при необходимости модифицируются. Наконец, в-третьих, существуют более современные средства алгоритмизации задач (CASE-средства), в которых для записи алгоритмов используются специальные диаграммы различного вида (см. гл. 7). |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 173; Нарушение авторского права страницы