В экономике категория выполняет функцию разреза показателя или его уровня, а категория на диаграмме – имени колонок или строк таблицы на одной из осей, которые соответствуют числам на другой оси. Некоторые диаграммы не имеют осей категорий,например круговая, кольцевая, лепестковая. Объемная гистограмма обладает двумя осями категорий.
   Легенда – это система обозначений элементов диаграммы.
   В некоторых диаграммах можно использовать специальные осизначений для представления рядов в разных масштабах или единицах измерения. Например, курсы и объемы продаж ценных бумаг, цены и объемы продаж в натуральных единицах. При наличии большого диапазона значений наиболее удобна более компактная логарифмическая ось.
   Все диаграммы показывают процессы изменения рядов показателей и их соотношение.
    Трендыобнаруживаются сглаживанием случайных колебаний рядов показателей. Они применяются для изучения механизмов, явлений и прогноза их развития. Выделяют два способа сглаживания: графический и графоаналитический. В первом случае можно получить график тренда, во втором – график и статистические оценки тренда. Различают три графоаналитических метода: 1) уравнения тренда, 2) скользящее среднее, 3) экспоненциальное среднее.

8.9. Общая характеристика технологии создания прикладных программных средств

   Решение задачи на ЭВМ является процессом получения результатной информации на основе обработки исходной информации посредством применения программы, составленной из команд системы управления вычислительной машины. Программапредставляет собой нормализованное описание последовательности действий определенных устройств ЭВМ в зависимости от конкретного характера условий задачи.
   Технологии разработки программ решения задачи зависят от двух факторов:
   1) производится ли разработка программы решения задачи как составного элемента единой системы автоматизированной обработки информации. В противном случае – как относительно независимой, локальной компоненты общего программного комплекса, обеспечивающего решение на ЭВМ задач управления;
   2) какие программно-инструментальные средства применяются для разработки и реализации задач на ЭВМ.
    Программно-инструментальные средствапредставляют собой компоненты программного обеспечения, позволяющие программировать решение задач управления. Они включают в себя:
   1) алгоритмические языки и соответствующие им трансляторы;
   2) системы управления базами данных (СУБД) с языковыми средствами программирования в их среде;
   3) электронные таблицы, содержащие средства их настройки.
   Процесс решения прикладных задач состоит из нескольких основных этапов. Первым этапом является постановка задачи.На данном этапе раскрывается организационно-экономическая сущность задачи, т. е. формулируется цель ее решения; определяется взаимосвязь с другими, ранее изученными задачами; приводится периодичность ее решения; устанавливаются состав и формы представления входной, промежуточной и результатной информации; описываются формы и методы контроля достоверности информации на основных этапах решения задачи; специфицируются формы взаимодействия пользователя с ЭВМ при решении задачи и т. п.
   Особое значение имеет детальное описание входной, выходной и промежуточной информации, характеризующей следующие факторы:
    вид представления отдельных реквизитов;
    число знаков, которые выделяются для записи реквизитов исходя из их максимальной значимости;
    вид реквизита в зависимости от его роли в процессе решения задачи;
    источник возникновения реквизита.
   Вторым этапом является экономико-математическое описание задачи и выбор метода ее решения.Экономико-математическое описание задачи позволяет сделать задачу однозначной в понимании разработчика программы. В процессе ее подготовки пользователь может применять различные разделы математики. Для формализованного описания постановок экономических задач используют следующие классы моделей:
   1) аналитические – вычислительные;
   2) матричные – балансовые;
   3) графические, частным видом которых являются сетевые.
   Путем выбора класса модели можно не только облегчить и ускорить процесс решения задачи, но и повысить точность получаемых результатов.
   При выборе метода решения задач необходимо, чтобы выбранный метод:
   1) гарантировал необходимую точность получаемых результатов и отсутствие свойства вырождения (бесконечного зацикливания);
   2) позволял применять готовые стандартные программы для решения задачи или ее отдельных фрагментов;
   3) ориентировался на минимальный объем исходной информации;
   4) обеспечивал наиболее быстрое получение искомых результатов.
   Третьим этапом является алгоритмизация решения задачи,т. е. разработка оригинального или адаптация уже известного алгоритма.
    Алгоритмизацияпредставляет собой сложный творческий процесс, основанный на фундаментальных понятиях математики и программирования.
   Процесс алгоритмизации решения задачи чаще всего реализуется по следующей схеме:
   1) выделение автономных этапов процесса решения задачи;
   2) формализованное описание содержания работ, выполняемых на каждом выделенном этапе;
   3) проверка правильности использования выбранного алгоритма на различных примерах решения задачи.

8.10. Прикладное программное обеспечение

    Прикладное программное обеспечение(ППО) – это совокупность программных продуктов, которые представляют интерес для пользователей и предназначены для решения повседневных задач обработки информации.
    Пакет прикладных программ(ППП) является комплексом программ, ориентированных на решение некоторого класса задач.
   Все ППО подразделяют на средства проектирования и средства использования.
    Средства проектированиявключают в себя ППО, которые предназначены для создания информационных систем и применяются на рабочих местах специалистов различных профилей:
   1) СУБД – применяются для создания, сопровождения и использования баз данных;
   2) системы автоматизированного проектирования (САПР) – позволяют решать задачи черчения и конструирования различных механизмов с помощью ПК;
   3) системы электронного документооборота – предназначены для обеспечения безбумажного обращения документов на предприятиях;
   4) информационные хранилища (банки данных, банки знаний) – обеспечивают хранение больших объемов накопленной информации;
   5) географические информационные системы – используются для моделирования процессов развития и управления разными природными ресурсами, геологической разведкой и т. д.
    Средства использованияпредставляют собой ППО для обработки различного рода информации:
   1) текстовые процессоры и текстовые редакторы – ввод, редактирование и подготовка к печати любых документов;
   2) табличные процессоры – создание электронных таблиц и выполнение действий над данными, содержащимися в этих таблицах;
   3) графические процессоры – создание и редактирование графических объектов, мультфильмов и другой анимации на экране компьютера;
   4) интегрированные ППП – создание единой в своей основе деловой среды;
   5) ППП методов анализа – решение задач анализа в определенной области;
   6) телекоммуникационные и сетевые программы – обслуживание глобальных и локальных сетей, программы для электронной почты;
   7) совокупность экономических ППП – использование специалистами, работающими в экономической сфере;
   8) обучающие и тестирующие программы – получение новых знаний, тестирование по различным дисциплинам и т. д.;
   9) мультимедийные пакеты программ – создание, редактирование и прослушивание музыки, просмотр и обработка видео, вспомогательные программы (кодеки), игры;
   10) совокупность прикладных программ – запись и диагностика CD-R/RW и DVD-R/RW дисков.

8.11. Технология системного проектирования программных средств

   Потребность создания систем автоматизированной обработки информации обусловила концепцию баз данных как единого, централизованного хранилища всей информации, необходимой для решения задач управления. Концепция баз данных теоретически корректна. Однако в реальности она приводит к значительному проигрышу во времени, которое требуется на поиск и выборку из базы данных информации, необходимой для решения той или иной конкретной задачи. В настоящее время концепция баз данных предусматривает разумный компромисс между сокращением до минимума необходимого дублирования информации и эффективностью процесса выборки и обновления данных. В действительности обеспечение такого решения имеет место только тогда, когда системный анализ всего комплекса задач, подлежащих автоматизации, уже находится на этапе описания системы. В этом случае имеются в виду ее цели и функции, состав и специфика информационных потоков, информационного состава задач и даже отдельных программных модулей. Основой системного подхода являются положения общей теории систем. Он наиболее эффективен при решении сложных задач анализа и синтеза, требующих одновременного использования нескольких научных дисциплин.
   Еще одним важным фактором, который обусловливает необходимость системного подхода (начиная с этапа формулирования требования и постановки задач), является то, что на этот этап приходится до 80 % всех затрат на разработку ППО. При этом он имеет особое значение в обеспечении соответствия результатов разработки потребностям конечных пользователей.
   Появление потребности системного подхода к разработке программных средств решения задач при автоматизации систем организационно-экономического управления привело к необходимости дифференциации специалистов-разработчиков. Данный факт послужил проявлению в выделении в их составе системных аналитиков, системотехников, прикладных и системных программистов.
    Системный аналитикформулирует общие формальные требования к программному обеспечению системы. Обязанности специалиста-системотехниказаключаются в преобразовании общих формальных требований в детальные спецификации на отдельные программы, участии в разработке логической структуры базы данных.
   Обязанности прикладного программистасостоят в совершенствовании спецификации в логическую структуру программных модулей, а затем в программный код.
    Системный программистдолжен обеспечивать взаимодействие программных модулей с программной средой, в рамках которой предстоит работать прикладным программам.
   Еще одной чертой системной разработки проектов прикладных программ является их ориентация на использование интегрированных и распределенных баз данных. В данном случае в качестве инструментальных средств разработки компонентов программного обеспечения вместе с языками программирования стали применяться языковые средства СУБД.
   Появляются и широко используются в сфере управления ПК и более качественные программно-инструментальные средства, которые ориентированы на специалистов управления – непрограммистов. Данный факт кардинально изменил характер технологии подготовки и решения экономических задач.
   С ростом производства новых микропроцессоров резко изменились приоритеты и актуальность проблем, которые присущи традиционным технологиям разработки прикладных программ. Возможность исключения из технологической цепочки программистов-профессионалов позволяет ускорить процесс разработки прикладных программных средств.

8.12. Современные методы и средства разработки прикладных программных средств

   Понятие «модульное проектирование» тесно связано с реализацией метода нисходящего проектирования.Последовательность логически взаимосвязанных фрагментов, оформленных как отдельная часть программы, именуется модулем.Выделяют следующие свойства программных модулей:
    ссылка на модуль может осуществляться по имени, в том числе и из других модулей;
    при окончании работы модуль должен возвращать управление модулю, вызвавшему его;
    модуль должен иметь один вход и выход;
    модуль должен обладать небольшим размером, обеспечивающий его обозримость.
   При разработке сложных программ отделяют головной управляющий модуль и подчиненные ему модули, обеспечивающие реализацию отдельных функций управления, функциональную обработку, и вспомогательные модули, которые гарантируют сервисное обслуживание пакета.
   Модульный принцип разработки программ имеет целый ряд преимуществ:
   1) емкая программа может разрабатываться одновременно несколькими исполнителям, что позволяет сократить сроки ее разработки;
   2) существует возможность создания библиотеки наиболее употребляемых программ и использования их;
   3) при необходимости сегментации процедура загрузки больших программ в ОП становится намного проще;
   4) возникает много естественных контрольных точек, призванных осуществлять наблюдение за ходом разработки программ и контроль исполнения программ;
   5) обеспечивается эффективное тестирование программ, значительно проще происходят проектирование и последующая отладка.
   Структурное программирование применяется для того, чтобы облегчить процесс разработки и отладки программных модулей, а также процесс их последующего сопровождения и модификации.
   Развитие программно-инструментальных средств программирования экономических задач основано на системах автоматизации программирования, или системах программирования, обеспечивающих возможность решения множества задач непосредственно в среде ОС ЭВМ.
   Задачи экономического управления обладают рядом особенностей, отличающих их от других типов задач:
   1) доминирование задач с относительно несложными вычислительными алгоритмами и необходимостью формирования накопительных итогов;
   2) работа с большими массивами исходной информации;
   3) требование предоставления большинства результатной информации в форме документов табличной формы.
   Технология CASE является совокупностью средств системного анализа, проектирования, разработки и сопровождения сложных программных систем и позволяет разработчикам использовать обширные возможности для различного рода моделирования. Согласованность взаимодействия всех специалистов, занятых в разработке программного обеспечения, гарантирует централизованное хранение всей необходимой для проектирования информации и контроль за целостностью данных.
   Проект ISDOS состоит из модулей, обеспечивающих:
    ввод, контроль и кодирование спецификаций проектируемой системы;
    анализ правильности постановки задач и их согласованности;
    выявление ошибок и выдачу сообщений пользователям, а также устранение дублирования в исходной информации;
    преобразование постановок задач после проверки исходных данных в машинные программы;
    выделение основных элементов информационной системы.
   Перечисленные модули являются взаимодействующими между собой. При этом их разделение является достаточно условным.

Тема 9
Основы алгоритмизации и программирования

9.1. Понятие алгоритма

    Алгоритмомназывается строго определенное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
   Термин «алгоритм» происходит от латинской формы имени среднеазиатского математика Аль-Хорезми – Algorithmi.Алгоритм является одним из основных понятий информатики и математики.
   Исполнителем алгоритма предстает некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, которая способна выполнить действия, предписываемые алгоритмом.
   Для характеристики исполнителя используют несколько понятий:
    среда;
    система команд;
    элементарные действия;
    отказы.
    Среда(или обстановка) представляет собой «место обитания» исполнителя.
   Любой из исполнителей может выполнять команды только из некоторого строго заданного списка, который является системой командисполнителя. Для каждой команды задаются условия применимости (в каких состояниях среды может быть выполнена команда) и приводятся результаты выполнения команды.
   После вызова команды исполнитель производит соответствующее элементарное действие.
   Может возникнуть и отказисполнителя в случае, если команда вызывается при недопустимом для нее состоянии среды. Чаще всего исполнитель ничего не знает о цели алгоритма. Он выполняет все предложенные ему действия, не задавая вопросов «почему» и «зачем».
   В информатике универсальным исполнителем алгоритмов является компьютер.
   К основным свойствам алгоритмов относятся:
   1) понятность для исполнителя – исполнитель алгоритма должен знать, как его выполнять;
   2) дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное исполнение простых (или ранее определенных) шагов (этапов);
   3) определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Это свойство обеспечивает выполнение алгоритма механически, не требуя никаких дополнительных указаний или сведений о решаемой задаче;
   4) результативность (или конечность) – алгоритм должен приводить к решению задачи за конечное число шагов;
   5) массовость – алгоритм решения задачи производится в общем виде, т. е. его можно будет применять для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из определенной области, которая называется областью применимости алгоритма.
   На практике чаще всего встречаются следующие формы представления алгоритмов:
    словесная – записывается на естественном языке;
    графическая – с помощью изображения из графических символов;
    псевдокоды – полуформализованные описания алгоритмов на некотором условном алгоритмическом языке, которые включают в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.;
    программная – тексты на языках программирования.
    Словесный способзаписи алгоритмов является описанием последовательных этапов обработки данных. Алгоритм может быть задан в произвольном изложении на естественном языке. Например, алгоритм нахождения наибольшего общего делителя двух натуральных чисел можно представить как следующую последовательность действий:
   1) задание двух чисел;
   2) если числа равны, то выбор любого из них в качестве ответа и остановка, в противном случае – продолжение выполнения алгоритма;
   3) определение большего из чисел;
   4) замена большего из чисел разностью большего и меньшего из чисел;
   5) повтор алгоритма с шага 2.
   Приведенный алгоритм используется для любых натуральных чисел и должен приводить к решению поставленной задачи.
   Словесный способ не имеет широкого распространения, так как обладает некоторыми недостатками:
    данные описания строго не формализуемы;
    отличаются многословностью записей;
    допускают неоднозначность толкования отдельных предписаний.
    Графический способпредставления алгоритмов оказывается более компактным и наглядным по сравнению со словесным. При данном виде представления алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению некоторого числа действий.
   Для графического представления алгоритм использует изображение в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Это графическое представление называется схемой алгоритма,или блок-схемой.
   В блок-схеме каждый из типов действий (ввод исходных данных, вычисление значений выражений, проверка условий, управление повторением действий, окончание обработки и т. п.) соответствует геометрической фигуре, представленной в виде блочного символа. Блочные символы соединены линиями переходов, которые определяют очередность выполнения действий.
    Псевдокодявляется системой обозначений и правил, которая предназначена для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками. С одной стороны, псевдокод похож на обычный естественный язык, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, благодаря чему запись алгоритма приближается к общепринятой математической записи.
   В псевдокоде не применяются строгие синтаксические правила для записи команд, которые присущи формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде чаще всего имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. Например, в псевдокоде, также каки в формальных языках, существуют служебные слова, смысл которых определен раз и навсегда. Их выделяют в печатном тексте жирным шрифтом, а в рукописном тексте подчеркивают. Единый или формальный подход к определению псевдокода не существует, поэтому используются различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
    Программная форма представления алгоритмовиногда характеризуется некоторыми структурами, состоящими из отдельных базовых (основных) элементов. При данном подходе к алгоритмам изучение основных принципов их конструирования следует начинать с этих базовых элементов. Их описание осуществляется с использованием языка схем алгоритмов и алгоритмического языка.

9.2. Системы программирования

   Машинно-ориентированные языки относятся к машинно-зависимымязыкам программирования. Основные конструктивные средства таких языков позволяют учитывать особенности архитектуры и принципов работы определенной ЭВМ, т. е. они имеют те же возможности и требования к программистам, что и машинные языки. Однако в отличие от последних они требуют предварительной трансляции на машинный язык составленных с их помощью программ.
   Данными видами языков программирования могут быть: автокоды, языки символического кодирования и ассемблеры.
   Для машинно-независимых языковне требуется полного знания специфики компьютеров. С их помощью можно записывать программу в виде, допускающем ее реализацию на ЭВМ с различными типами машинных операций, привязка к которым возлагается на соответствующий транслятор.
   Причина бурного развития и применения высокоуровневых языков программирования заключается в быстром росте производительности ЭВМ и хронической нехватке программистских кадров.
   Промежуточное место между машинно-независимыми и машинно-зависимыми языками отводится языку Си.Он создавался при попытке объединения достоинств, присущих языкам обоих классов. Данный язык обладает рядом особенностей:
    максимально использует возможности конкретной вычислительной архитектуры; из-за этого программы на языке Си компактны и работают эффективно;
    позволяет налучшим образом использовать огромные выразительные средства современных языков высокого уровня.
   Языки разделяют на процедурно-ориентированные и проблемно-ориентированные.
    Процедурно-ориентированныеязыки, например Фортран, Кобол, Бейсик, Паскаль, наиболее часто используются для описания алгоритмов решения широкого класса задач.
    Проблемно-ориентированныеязыки, в частности РПГ, Лисп, АПЛ, GPSS, применяются для описания процессов обработки информации в более узкой, специфической области.
    Объектно-ориентированныеязыки программирования позволяют разрабатывать программные приложения для большого круга разнообразных задач, имеющих общность в реализуемых компонентах.
   Рассмотрим методы использования языков программирования.
    Интерпретацияпредставляет собой пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. Существует два основных недостатка метода интерпретации:
   1) интерпретирующая программа должна располагаться в памяти ЭВМ на протяжении всего процесса выполнения исходной программы. Другими словами, она должна занимать некоторый установленный объем памяти;
   2) процесс трансляции одного и того же оператора повторяется такое число раз, которое должна исполнять эта команда в программе. Это приводит к резкому снижению производительности работы программы.
    Трансляторы-интерпретаторыявляются достаточно распространенными, так как они поддерживают диалоговый режим.