Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_Программирование.doc
Скачиваний:
37
Добавлен:
12.03.2015
Размер:
1.59 Mб
Скачать

* * *

Контрольные вопросы:

  1. _______________________________

Алгоритм

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

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

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

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

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

3. Информационныемодели - класс знаковых моделей, описывающих информационные процессы (возникновение, передачу, преобразование и использование информации) в системах самой разнообразной природы.

Основные понятия информационного моделирования

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

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

  • реальные объекты;

  • роли;

  • события;

  • взаимодействия;

  • спецификации.

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

Роль- абстракция цели или назначения человека, части оборудования или учреждения (организации). Например, в университете как в учебном заведении это студент, преподаватель, декан; в университете как в учреждении это приемная комиссия, отдел кадров, бухгалтерия, деканат.

Событие- абстракция чего-то случившегося. Например, поступление заявления от абитуриента в приемную комиссию Университета, сдача (или несдача) экзамена.

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

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

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

Исследование операций включает в себя следующие разделы:

1) математическое программирование(обоснование планов, программ хозяйственной деятельности); оно включает в себя относительно самостоятельные разделы:линейное программирование, нелинейное программирование, динамическое программирование(во всех этих названиях термин «программирование» возник исторически и не имеет отношения к программированию ЭВМ);

2) теорию массового обслуживания,опирающуюся на теорию случайных процессов;

3) теорию игр,позволяющую обосновывать решения, принимаемые в условиях неполноты информации.

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

Интеллектуальный интерфейс информационной системы

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

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

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

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

• обеспечение для пользователя возможности постановки задачи для ЭВМ путем сообщения только ее условия (без задания программы решения);

• обеспечение для пользователя возможности формирования сред решения задачи с использованием только терминов и понятий из области профессиональной деятельности пользователя, естественных форм представления информации;

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

Структура системы (рис. 1.48), удовлетворяющей требованиям новой технологии решения задач, состоит из трех компонент:

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

базы знаний, содержащей систему знаний о проблемной среде;

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

Основные функции и компоненты

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

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

• трансляторы с языков высокого уровня;

• средства редактирования, компоновки и загрузки программ;

• макроассемблеры (машинно-ориентированные языки);

• отладчики машинных программ.

Системы программирования, как правило, включают в себя

• текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;

•загрузчик программ (Load), позволяющий выбрать из директория нужный текстовый файл программы;

• запускатель программ (Run), осуществляющий процесс выполнения программы;

• компилятор (Compile),предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;

• отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;

• диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами:сохранение, поиск, уничтожение и т.п.

Ядро системы программирования составляет язык. Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные, рис. 2.9.

Процедурные (или алгоритмические) программы представляют из себя систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.

Процедурные языки разделяют на языки низкого и высокого уровня.

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

Рис. 2.9.Общая классификация языков программирования

Программы на языках высокого уровня близки к естественному (английскому)

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

Перечислим наиболее известные системы программирования.

1. Фортран (FORmulaTRANslatingsystem- система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык.

2. Бейсик (Beginner'sAll-purposeSymbolicInstructionCode- универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий - самый популярный по числу пользователей.

3. Алгол (ALGOrithmicLanguage- алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.

4. ПЛ/1 (PL/IProgrammingLanguage- язык программирования первый). Многоцелевой язык; сейчас почти не используется.

5. Си (С - «си»); широко используется при создании системного программного обеспечения.

6. Паскаль (Pascal- назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. На его базе созданы несколько более мощных языков (Модула, Ада, Дельфи).

7. Кобол (COmmonBusinessOrientedLanguage- язык, ориентированный на общий бизнес); в значительной мере вышел из употребления.

8. Дельфи (Delphi) - язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен.

9. Джава (Java) - платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц.

Среди непроцедурных языков наиболее известны

1. Лисп (Lisp);

2. Пролог (PROgramminginLOGic);

3. Оккам (назван в честь философа У. Оккама).

Классификация прикладного программного обеспечения

СУБД выделяют несколько последовательных этапов:

• проектирование базы данных;

• создание структуры базы данных;

• заполнение базы данных;

• просмотр и редактирование базы данных;

• сортировку базы данных;

• поиск необходимой записи;

• выборку информации;

• создание отчетов.

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

Кроме того, эти системы должны уметь объяснять свое поведение и свое решение.

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

Принято выделять в экспертных системах три основных модуля:

• модуль базы знаний;

• модуль логического вывода;

• интерфейс с пользователем.

Экспертные системы создаются для решения разного рода проблем, но они имеют схожую структуру (рис. 2.27); основные типы их деятельности можно сгруппировать в категории, приведенные в табл. 2.5.

Схема обобщенной экспертной системы

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

Категория

Решаемая проблема

Интерпретация

Прогноз

Диагностика

Проектирование

Планирование

Наблюдение

Отладка

Ремонт

Обучение

Управление

Описание ситуации по информации, поступающей от датчиков

Определение вероятных последствий заданных ситуаций

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

Построение конфигурации объектов при заданных ограничениях

Определение последовательности действий

Сравнение результатов наблюдений с ожидаемыми результатами

Составление рецептов исправления неправильного функционирования системы

Выполнение последовательности предписанных исправлений

Диагностика и исправление поведения обучаемого

Управление поведением системы как целого

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]