Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика-08.doc
Скачиваний:
50
Добавлен:
06.12.2018
Размер:
2.22 Mб
Скачать

4. Алгоритмы. Роль алгоритмизации в решении задач и формализации знаний. Информационные ресурсы

Решение задач на ЭВМ реализуется программным способом – путем выполнения последовательности операций, предусмотренных алгоритмом решения задачи. Алгоритм – это точная запись конечного числа действий, приводящих к решению задачи. Алгоритм определяет процесс преобразования информации от исходных данных к результатам. Рассмотрим пример простой задачи. Пусть поезд вышел из пункта A в момент времени t1 и прибыл в пункт B в момент tn. Во время следования поезда в моменты времени t1, t2, … ti, …, tn измерены значения скорости его движения v1, v2, … vi, …, vn. Требуется найти расстояние S от пункта A до пункта B.

Решение этой задачи, как и всякой другой, начато с построения модели явления (объекта). Как уже отмечалось в разделе 3, построение модели состоит в учете только существенных для рассматриваемых задач характеристик, описываемых ограниченным набором параметров. В нашем примере такими параметрами являются S, n и числовые массивы значений ti и vi , где i = 1, 2, …, n. Если мы хотим получить точное решение задачи, то требуется детальная модель, в рамках которой значения времени и скорости чаще регистрируются на тех участках пути, где скорость быстро изменяется.

Вторым этапом решения станет построение математической модели, в которой неизвестные параметры модели объекта (явления) связываются математическими выражениями с известными параметрами. В нашем простейшем примере только один параметр S не известен – построим математическую модель в виде равенства:

Символы * и / при описании алгоритмов означают умножение и деление. Следовательно, для вычисления расстояния от точки i до точки i+1 время движения на этом интервале умножается на среднюю скорость.

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

В блоке 1 выполняются начальные присваивания: в начальный момент, когда поезд еще в точке A, i=1, а S=0. Операция присваивания очень важна для понимания компьютерной реализации алгоритмов. Дело в том, что при разработке программы для ЭВМ считается, что i и S – это не только обозначения математических переменных, но и обозначения ячеек памяти компьютера. Операция присваивания – это занесение нового значения в соответствующую ячейку. Присваивание отображает изменение значения соответствующей переменной в процессе реализации алгоритма. Чтобы отличать присваивание от обычного математического равенства, в некоторых языках программирования, например, в Паскале, операция присваивания обозначается не знаком равно (=), а двумя значками – двоеточием и равно (:=). В этом, вообще говоря, нет необходимости, т.к. знак равенства в математическом смысле при записи алгоритмов применяется только для проверки условий.

Рис. 4.1. Изображение алгоритма в виде блок-схемы

На блок-схемах проверка условий помещается в особые – логические блоки, обозначаемые не прямоугольником, а ромбом (см. блок 4 на рис. 4.1), а в программах инструкции по проверке условий начинаются со слова IF (если).

В блоке 2 (см. рис. 4.1) пройденный путь получает приращение: в ячейку S помещается новое значение, равное прежнему, плюс значение пути за время от ti до ti+1. В блоке 3 наращивается значение i, т.к. мы собираемся повторить вычисления в блоке 2 для следующего интервала – при новом значении индекса i, увеличенном на 1. Но ведь последнее значение i, при котором надо вычислять приращение пути, равно n-1. Вот поэтому и проверяется условие ( i < n? ) в логическом блоке 4. До тех пор, пока это условие выполняется, повторно будут работать блоки 2, 3. Как только условие не выполнится, алгоритм завершит работу – к этому моменту в ячейке S накопится значение пройденного пути.

В рассмотренном алгоритме блоки 2-4 работают n-1 раз, т.е. выполняются циклически, и при каждом исполнении цикла переменные (содержимое ячеек) i и S обновляются. Именно циклы позволяют кратко записывать алгоритмы, в которых многие операции повторяются сотни, тысячи и даже миллионы раз.

Алгоритм решения задачи имеет ряд обязательных свойств [5]:

  • дискретность - разбиение процесса обработки на более простые шаги,

  • определенность – однозначность выполнения каждого шага,

  • выполнимость - возможность получения результата за конечное число шагов,

  • массовость – пригодность алгоритма для решения некоторого класса задач.

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

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

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

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

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

Контрольные вопросы к разделу 4: что такое модель объекта (явления); что такое математическая модель; что такое алгоритм; изображение алгоритма в виде блок-схемы; роль циклов в алгоритмах; свойства алгоритмов; алгоритмизация и создание программных продуктов как метод формализации знаний; определение базы данных; информационные ресурсы; национальные информационные ресурсы.