20 программ для ускорения компьютера

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

Содержание:

Разобьём по основным профессиям.

  • Writer – Программа для редактирования создания и редактирования текстовых документов. С помощью нее можно открывать и редактировать документы в формате .odt, .odf, .docx, .doc, .dot, .txt, .xml, .pdf, .rtf и др. Если вам кто-то пришлет документ в формате Microsoft Word, то вы спокойно сможете открыть и редактировать этот текст и сохранить в том-же самом формате.
  • Calc – Программа для создания и редактирования таблиц. С её помощью можно открывать и редактировать файлы Microsoft Excel. Поддерживает распространенные форматы .ods, .xls, .xml, .xlsx, .csv, .xlt .xlsm. Очень большой функционал, напоминающий Excel – использование функций, форматирование по цвету, фильтры, и очень много другого. Если вы умеете пользоваться MS Excel то этой программой вы легко сможете его заменить.
  • Impress – Используется для создания и редактирования презентаций. С ее помощью можно открыть и редактировать файлы Microsoft PowerPoint. Работает с форматами .ppt, .pptx, .odp, .otp, .otp, .ppsx, .potm, .pps, .ppsx, .pptm. Если вам надо открыть файл одного из этих форматов, то устанавливайте Open Office.

С помощью 7-zip можно открыть любые архивы, которые вам пришлют. В работе его часто используют, когда надо отправить много каких-то файлов по электронной почте. Например фотографии, большую кучу отчетов или проектную документацию. Если это огромное количество файлов прикрепить к письму, то получателю придется скачивать каждый по-отдельности. Или же вам необходимо отправить несколько папок, а папку вообще невозможно прикрепить к письму. Так что вы создаете архив и отправляете его по e-mail.

В дополнение, с помощью этой программы, архив можно зашифровать паролем.

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

Но я бы рекомендовал купить ESET Small Office Pack. который можно установить на 3-5 компьютеров, и стоит он 2000 до 2600 р. в год. Если надо больше 5ти компьютеров, то можно купить несколько пакетов.

Как это сделать:

  1. Купить домен на сайте он стоит около 200р. в год, и вы в дальнейшем сможете на нем сделать свой сайт. Если у вас уже есть домен, то этот шаг можно пропустить.
  2. Переходим в сервис Яндекса и нажимаем подключить. У вас должна быть личная почта Яндекса именно под логином этой почты вы сможете создавать новые ящики с вашим доменом и управлять доступами к ним. Или вы регистрируете себе новую почту Яндекса под эти цели.
  3. Нажимаем кнопку «Подключить», далее вводите имя своего домена и нажимаем «Подключить». Теперь нам надо подтвердить, что домен наш. Подтверждаем его способом «DNS-запись».
  4. Для подтверждения домена в новой вкладке открываем сайт, где вы купили домен и переходим в разделе редактирования DNS записей нашего домена. Если у вас домен куплен на том сайте что я рекомендовал это делается в разделе Домены -> Мои Домены и в настройках вашего домена выбираем DNS.
  5. Настройка DNS на хостинге

  6. Нажимаем «Добавить запись» заполняем все поля как указал Яндекс.
  7. Жмем подтвердить домен и переходим в раздел пользователи. Там создаем пользователей.
    При создании пользователя указанный логин это будет левая часть адреса почты. К примеру, ваш домен ros-it.biz и в качестве логина вы укажите sg, тогда e-mail адрес у нас будет sg@ros-it.biz. Не забудьте где-то отдельно сохранить файл с названиями почтовых ящиков и паролями к ним.
  8. Переходим на сайт . в правом верхнем углу указан логин к вашему e-mail, нажимаем на него. Появляется меню, в нем нажимаем кнопку «Добавить аккаунт».

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

    Вбиваем тот e-mail который вы создали (в нашем примере это sg@msconfig.ru) и пароль от него. Теперь у вас есть корпоративная почта которой вы пользуетесь через сайт

Почему лучше пользоваться сервисом Яндекс почта чем программами на компьютере:

  • Доступ к почте с любого устройства в любой точке мира. Главное не забыть пароль.
  • Очень крутой спам фильтр, который постоянно совершенствуется и использует опыт все базы e-mail адресов Яндекса.
  • Очень удобный интерфейс и возможность настраивать удобный дизайн.
  • Возможность создавать папки, фильтры, правила распределения писем, цвето-текстовые метки.
  • Нет промежуточных точек на вашем хостинге, в которых может что-то затеряться или сбиться.

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

В добавок этот сервис помогает:

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

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

  • Apache OpenOffice – Без работы с текстовыми документами и таблицами никак! Подробнее о программе и ссылка на скачивание тут.
  • Архиватор 7-Zip – Дизайнеры, фотографы, типографии и др. подрядчики пользуются архивами при пересылке данных, она точно нужна! Подробнее о программе тут.
  • Adobe Acrobat Reader DC – Большинство подрядчиков присылают счета в формате PDF. Детально тут.
  • Comodo Antivirus – Бесплатный антивирус. Детально тут.
  • Google Chrome – Без комментариев.
  • Яндекс почта для бизнеса – Очень удобная система управления корпоративной почтой, детали по настройке и созданию корпоративной почты тут.
  • GIMP – Одна из самых важных программ для маркетолога. Помогает отредактировать фотографии для сайта, социальных сетей, и рекламы. Подробная информация и ссылка на скачивание тут
  • Битрикс24 – Важное приложение. Если у вас есть менеджеры по продажам, и они работают с клиентами в этой программе то маркетолог сможет решить очень много своих вопросов:
    • Довольно дешево покупать отдельные телефонные номера для отслеживания отдельных источников рекламы.
    • Отслеживание эффективности рекламы. Имея разные телефоны под разные, программа сама будет помечать из какой рекламы какой человек пришел. Можно будет отслеживать эффективность рекламы вплоть до сделок, и формировать отчеты показывающие результаты рекламы.
    • Группировать клиентскую базу по разным показателям для использования в таргетинговой рекламе.
    • Настраивать действия с клиентской базой по событиям. Например, смс или e-mail поздравления клиентов с днем рождения.
    • Групповые или индивидуальные чаты. Можно уведомлять сразу всех менеджеров об акции или каком-то изменении.
    • Быстро сделать одностраничный сайт для какого-то рекламного предложения.
    • Разместить на сайт очень удобный и бесплатный онлайн чат, с удобными настройками и автоматическим подключением к менеджерам.

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

Программы для чтения pdf

Работа с файлами и папками в программе «проводник» — киберпедия

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

Окно программы Проводник представлено на рис. 7.9. Как видно из рисунка, по элементам управления это окно очень похоже на окна папок. Основное отличие в том, что окно Проводника имеет не одну рабочую область, а две: левую панель, называемую панелью папок, и правую панель, называемую панелью содержимого.

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

Нижняя строка окна − строка состояния − содержит информацию о выделенном объекте.

Каталоги и папки.До появления операционной системы
Windows 95
при описании иерархической файловой структуры использовался введенный выше термин каталог. С появлением этой системы был введен новый термин – папка. В том, что касается обслуживания файловой структуры носителя данных, эти термины равнозначны: каждому каталогу файлов на диске соответствует одноименная папка операционной системы. Основное отличие понятий папка и каталог проявляется не в организации хранения файлов, а в организации хранения объектов иной природы. Так, например, в операционных системах семейства Windows существуют специальные папки, представляющие собой удобные логические структуры, которым не соответствует ни один каталог диска.

20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера

Рис. 7.9. Окно программы Проводник

Операции с файловой структурой. Работая в Windows XP с файлами, вы можете осуществлять с ними самые разнообразные операции, основные из которых:

· навигация по файловой структуре;

· запуск программ и открытие документов;

· создание папок и файлов;

· копирование файлов и папок;

· перемещение файлов и папок;

· удаление файлов и папок;

· переименование файлов и папок;

· создание ярлыков;

· изменение атрибутов и др.

Навигация по файловой структуре – имеет целью обеспечение доступа к нужной папке и ее содержимому.

Навигацию по файловой структуре выполняют на левой панели Проводника, на которой показана структура папок. Папки могут быть развернуты или свернуты, а также раскрыты или закрыты. Если папка имеет вложенные папки, то на левой панели рядом с папкой отображается узел, отмеченный знаком « ». Щелчок на узле разворачивает папку, при этом значок узла меняется на «-».

Для того чтобы раскрыть папку, надо щелкнуть на ее значке. Содержимое раскрытой папки отображается на правой панели. Одна из папок на левой панели раскрыта всегда.

Кнопки Назад, Вперед и Вверх. Чтобы открыть папку, из которой вы перешли в текущую папку, вам необходимо нажать кнопку Назад или воспользоваться комбинацией клавиш Alt .

Для возврата к прежней папке вам достаточно нажать кнопку Вперед на панели инструментов или воспользоваться комбинацией клавиш
Alt
®.

Чтобы открыть в окне программы «Проводник»папку, которая расположена в дереве папок и устройств на один уровень выше текущей, необходимо нажать клавишу Backspace или выполнить щелчок мышью на кнопке Вверх на панели инструментов.

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

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

Если же вы хотите создать папку в уже существующей папке, откройте нужную папку в окне программы «Проводник» и выберите в меню Файл подменю Создать, а в нем команду Папку. Врезультате будет создана папка с именем Новая папка. При необходимости вы можете изменить имя. Для этого достаточно выделить требуемую папку, щелкнуть один раз по ее имени и указать новое имя, после нажать клавишу Enter. Для создания папки также можно воспользоваться контекстным меню, щелкнув правой кнопкой мыши по свободному месту рабочей области окна Проводника и выбрать в нем команду СоздатьПапку. Другой способ заключается в использовании раздела Задачи для файлов и папокСоздать новую папку.

Создание текстовых файлов аналогично созданию папок, с одним лишь отличием, после выбора меню ФайлСоздать, следует выбрать команду Текстовый документ.

Управление файлами. Используя программу «Проводник»,можно выполнять копирование, перемещение и переименование файлов. Кроме того, с помощью этой программы можно запустить требуемое приложение или открыть нужный документ.

Чтобы открыть тот или иной текстовый документ, необходимо дважды щелкнуть по значку документа (для web-интерфейса – один щелчок) или выполнить щелчок правой кнопкой мыши на пиктограмме этого документа и выбрать в контекстном меню команду Открыть.Команда Открытьприсутствует и в меню Файл.

Отображение файлов и папок в окне программы Проводник. Когда вы запускаете программу «Проводник»,в правой части ее окна Windows демонстрирует список имен и значков папок и файлов. Для изменения варианта отображения файлов и папок в окне можно воспользоваться командами меню Вид иликнопкой Видпанели инструментов 20  программ для ускорения компьютера .

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

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

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

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

1. Маркируйте первый необходимый объект.

2. Нажмите клавишу Shift и, удерживая ее, маркируйте последний из группы файлов, которые необходимо отметить.

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

Выделение всех файлов и папок. Чтобы отметить все файлы и папки текущего каталога, необходимо выбрать команду Выделить все в меню Правка окна любой папки.

Копирование и перемещение объектов. Чтобы скопировать какой-либо объект (файл, папку, ярлык) в Windows XP, необходимо выполнить следующие действия:

• открыть папку, содержащую объект-оригинал – папку источник, а затем папку, в которую должна быть помещена копия объекта – папка приемник;

• расположить оба окна таким образом, чтобы они были видны на экране одновременно;

• отметить нужный объект (объекты) и переместить его, удерживая нажатой клавишу Ctrl и левую кнопку мыши в целевую папку;

• как только кнопка мыши будет отпущена, Windows создаст копию объекта.

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

Если вы выберете в контекстном меню команду Переместить, то объект будет не скопирован, а перенесен в целевую папку.

Использование буфера обмена для работы с объектами. Система Windows создает и обслуживает на компьютере невидимую для пользователя область памяти, называемую буфером обмена.

Принцип работы с буфером обмена очень прост:

1. Открываем папку-источник. Выделяем щелчком нужный объект.

2.Копируем или забираем объект в буфер. В первом случае объект остается в папке-источнике и может быть размножен. Во втором случае он удаляется из папки-источника, но может некоторое время храниться в буфере. Последняя операция называется вырезанием объекта.

3. Открываем папку-приемник и помещаем в нее объект из буфера обмена. Три указанные операции (Копировать, Вырезать и Вставить) можно выполнять разными способами. Классический прием состоит в использовании пункта Правка в строке меню, но более удобно пользоваться командными кнопками панели инструментов:

20  программ для ускорения компьютера – копировать;

20  программ для ускорения компьютера – вырезать;

20  программ для ускорения компьютера – вставить.

Другой способ: использовать контекстное меню (вызывается нажатием право кнопки мыши по выделенному файлу или паке), а в нем соответствующую команду Копировать, Вырезать и Вставить.

Самый же эффективный способ работы с буфером обмена состоит в использовании комбинаций клавиш клавиатуры:

CTRL С – копировать в буфер;

CTRL X – вырезать в буфер;

CTRL V – вставить из буфера.

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

Удаление файлов. Если определенные файлы становятся ненужными, их можно удалить с соответствующего носителя информации. Это позволит сэкономить память на жестком диске. Удалять файлы в Windows XP рекомендуется следующим образом:

1. Отметить значки файлов, которые необходимо удалить.

2. Выполнить щелчок правой кнопкой мыши на одном из отмеченных значков и выбрать в появившемся контекстном меню команду Удалить.

3. В диалоговом окне нажать кнопку Да, после чего Windows поместит отмеченные файлы в папку Корзина.

Ненужный файл или файлы можно удалить и с помощью мыши. Для этого достаточно перетащить значок удаляемого файла на значок Корзина, удерживая нажатой левую кнопку мыши.

Подобную операцию можно выполнить, используя меню ФайлУдалить или нажатием клавиши Del на клавиатуре. Также удалить файл можно используя пункт Удалить файл в разделе окна Проводника Задачи для файлов и папок или использовать командную кнопку на панели инструментов 20  программ для ускорения компьютера .

Восстановление удаленных файлов. Если вы случайно удалили какой-либо файл, его можно восстановить, достав из Корзины.

Для этого откройте окно Корзина, выполнив двойной щелчок на одноименном значке либо щелкнув на ней правой кнопкой мыши и выбрав в контекстном меню команду Открыть. Отметьте объект, подлежащий восстановлению, и выберите команду Восстановить меню Файл.

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

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

Отмена выполненного действия. Если какой-либо файл был ошибочно удален, переименован, перемещен или скопирован, выполненную с ним операцию можно отменить с помощью команды Отменить меню Правка или комбинации клавиш Ctrl Z.

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

Второй способ (с использованием мастера) менее нагляден, но во многих случаях более удобен. Мастерами в системе Windows называют специальные программы, работающие в режиме диалога с пользователем. Диалог строится по принципу «запрос – ответ». Если на все запросы от программы даны корректные ответы, программа автоматически выполнит черновую работу.

1. Для того чтобы запустить Мастер создания ярлыка, надо щелкнуть правой кнопкой мыши в окне той папки, в которой создается ярлык объекта.

2. В открывшемся контекстном меню следует выбрать пункт СоздатьЯрлык – произойдет запуск мастера.

3. В диалоговом окне мастера имеется командная строка, в поле которой следует ввести путь доступа к объекту, для которого создается ярлык, например С:WindowsSystem32Calc.exe – путь доступа к стандартной программе Калькулятор. Разумеется, пользователь не может помнить пути доступа ко всем нужным объектам, поэтому ввод адреса автоматизирован. Для этого служит командная кнопка Обзор. При щелчке на кнопке Обзор открывается диалоговое окно Обзор папок. Это стандартное средство для установления пути доступа к объекту. Нужную папку и файл разыскивают примерно так же, как на левой панели программы «Проводник». Выбирают диск, на котором расположен искомый файл (в нашем случае это диск С:), затем разворачивают все вышележащие папки. Список файлов отображается в этом окне ниже имени соответствующей папки. Разыскав нужный объект, его выделяют и щелкают на кнопке ОК. Путь доступа к объекту автоматически заносится в командную строку мастера создания ярлык.

4. Переход к очередному диалоговому окну мастера выполняют щелчком на кома ной кнопке Далее.

5. В очередном окне мастера вводят название ярлыка, например: Калькулятор. Если это последнее окно мастера, то кнопка Далее сменяется кнопкой Готово. Щелчок на этой кнопке приводит к выполнению заданной операции.

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

Упорядочение объектов. Под упорядочением понимают прежде всего сортировку. В системе Windows XP существует четыре метода сортировки: Имя, Тип, Размер, Изменен. Метод упорядочения выбирают с помощью команды строки меню Вид – Упорядочить значки.

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

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

Все методы сортировки работают в восходящем порядке. Файлы сортируются : именам от А до Z или от А до Я; по размерам – от 0 до 9; по датам – от ранних; более поздних. Но если объекты в окне отображаются в виде таблицы, то возможно проведение сортировки в нисходящем порядке. Особенность режима таблиц состоит в том, что каждый столбец имеет заголовок. Этот заголовок обладает свойствами командной кнопки. При первом щелчке на заголовке столбца происходит сортировка объектов по данному столбцу в восходящем порядке, при повторно щелчке – в нисходящем порядке.

Поиск информации в компьютере. В общем случае поиск информации в Windows XP удобно проводить, выбрав команду главного меню «Найти». При этом будет запущен Проводник Windows в режиме поиска файлов и папок. Если вы уже работаете с Проводником, то можете запустить поиск искомого файла, не выходя из этой программы. Чтобы воспользоваться средствами поиска информации, нужно нажать кнопку 20  программ для ускорения компьютера на панели инструментов проводника или клавишу F3 на клавиатуре. При этом кнопка зафиксируется в нажатом состоянии, а в левой части окна программы появится панель с группой элементов управления для настройки поиска (рис. 7.10). С их помощью вы можете задать критерии поиска и дать команду начала процедуры поиска нужного файла.

20  программ для ускорения компьютера

Рис. 7.10 . Поиск файлов и папок в программе «Проводник» Windows XP

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

20  программ для ускорения компьютера Часто бывает, что имя файла известно не полностью. В этом случае при поиске недостающую часть имени или расширения файла заменяют специальными символами подстановки. Символ «*» заменяет любое количество любых символов, например, поиск по шаблону (маске) – *.* задает поиск всех файлов. Часто применяют шаблоны (маски) типа *.htm или *.doc, то есть шаблоны поиска всех файлов заданного типа. Символ «?» в шаблоне (маске) замещает только один, но любой символ! Например, по шаблону Ст?л.txt будут найдены файлы Стол.txt, Стул.txt и т.п.. Если имя файла имеет внутри пробелы, например, состоит из нескольких слов, то при поиске это имя необходимо заключать в кавычки, например “Контрольное задание.doc“.

После того, как Вы ввели критерии поиска, можно начать искать файлы. Поиск начинается после нажатия кнопки <Найти> (рис. 7.10). По мере нахождения нужных файлов и папок, их значки будут появляться в правой части окна проводника. Возможно, поиск займет достаточно много времени. Вы можете в любой момент прервать процедуру поиска, нажав кнопку <Остановить>. По результатам поиска выдается список файлов, соответствующих заданным условиям поиска. Вы можете работать с файлами из списка, но иногда бывает полезно перейти к папке, где расположен нужный файл. Для этого следует выделить один из найденных файлов и щелкнуть по пункту меню «Файл» и в раскрывшемся подменю – по пункту «Открыть содержащую объект папку». Нужная папка будет открыта в новом окне и станет текущей.

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

§

Программа «Norton Commander 5.0» (NC) фирмы «Peter Norton Computing» является одной из наиболее популярных программ-оболочек для работы с операционной системой фирмы «Microsoft»: MS DOS или ей аналогичных: PC DOS, DR DOS и Novell DOS. NC является одной из наиболее удачных программ из класса программ-операционных оболочек.

Программа-оболочка NC предназначена для упрощения взаимодействия пользователя с операционной системой. Она позволяет выполнять следующие операции:

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

· смену текущего диска и каталога;

· просмотр, создание, редактирование и печать файлов;

· запуск программ;

· копирование, переименование/перенос, удаление файлов и каталогов;

· просмотр дерева каталогов;

· поиск файлов по имени и содержанию;

· создание и использование меню пользователя.

NC вызывается на выполнение командой nc, набранной с клавиатуры в командной строке MS DOS, когда текущим является каталог «NC». После загрузки NC на экране высвечиваются две панели, в каждой из которых дается оглавление текущей директории, путь для которой указан в верхней строке в центре каждой панели, командная строка MS DOS и нижняя полоса меню (рис. 7.12).

NC имеет два курсора: маленький курсор в нижней строке для команд MS DOS и большой (в виде прямоугольника) для передвижения по именам файлов и директорий в панелях. Цифры 1, 2, … 10 нижней полосы меню соответствуют функциональным клавишам F1, F2, …, F10. Выполнение команды происходит при нажатии на соответствующую клавишу. Переход из одного окна в другое осуществляется нажатием клавиши Tab или Ctrl-I. Для запуска исполняемого файла необходимо перевести указатель (выделенный другим цветом прямоугольник) на этот файл с помощью клавиш управления курсором и нажать клавишу Enter.

20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера

Рис. 7.12. Общий вид программы Norton Commander 5.0

Список команд и функций NC приведен ниже.

Назначение функциональных клавиш:

«F1» – вызывает на экран справочную информацию по работе с NC.

«F2» – вызывает на экран «меню пользователя». Предоставляет возможность назначать «быстрые» клавиши для определения наиболее часто употребляемых команд, вызова программ пользователя.

«F3» – просмотр файла. При нажатии этой клавиши происходит просмотр (чтение) выбранного файла.

«F4» – редактирование файла. Данный режим предоставляет возможность просмотра и редактирования выбранного файла посредством встроенного или внешнего редактора файлов. Если размер файла больше 32 Кбайт, то файл можно только просмотреть.

«F5» – копирование файлов (группы файлов). Производит копирование файлов или группы файлов, выделенных клавишей Ins или «Серый ».

«F6» – переименование или пересылка файлов и каталогов.

«F7» – создание нового каталога.

«F8» – удаление файлов или каталогов.

«F9» – вызов верхней полосы меню (меню NC).

«F10» – завершение работы NC (выход в MS DOS).

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

1) с помощью клавиши InsertIns»). Для этого необходимо последовательно подвести большой курсор к именам файлов и выделить их, нажав клавишу Insert. Повторное нажатие данной клавиши отменит выделение файла;

2) путем задания шаблонов. Диалоговое окно задания шаблонов вызывается нажатием клавиши [Серый ] малой цифровой клавиатуры.

В шаблонах используются символы «*» и «?». Назначение символа «*» такое же как и в поиске Windows XP обозначает любое число любых символов в имени файла или в расширении имени файла. Символ «?» обозначает один произвольный символов в имени файла или в расширении имени файла. Например,

*.doc – выделяться все файлы с расширением .doc;

?ос1.txt – выделяться все файлы с расширением .txt, имя которых заканчивается на ос1, первый символ – любой;

?.* – выделяться все файлы с любым расширением, имя которых состоит из одного (любого) символа;

*.* – выделяться все файлы (любое имя и расширение).

Главное (управляющее) меню NC вызывается нажатием клавиши «F9». Движение вдоль полосы главного меню производится при помощи клавиш «®» и «», выход в подменю – нажатием клавиши Enter. Символом «Ö» отмечается выбранный режим.

На (рис. 7.13) показан вид экрана после нажатия «F9» (для выхода в главное меню) и клавиши Enter (для входа в подменю левой панели).

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

Меню «Левая» («Правая») служит для настройки внешнего вида одноименной панели NC.

«Краткий формат» («Brief») – высвечивает краткую информацию о файлах и директориях без указания размера, времени и даты;

20  программ для ускорения компьютера

Рис. 7.13. Команды настройки внешнего вида панелей Norton Commander 5.0

«Полный формат» («Full») – высвечивает полную информацию о файлах и директориях с указанием размера, времени и даты;

«Состояние» («Info») – высвечивает информацию о состоянии текущего диска: количество байт свободной и занятой памяти и т.д. («Ctrl L2);

«Дерево каталогов» («Tree») – вызывает в панель «дерево», т.е. список директорий с текущего диска;

«Вкл/Выкл» («On/Off») – производит включение и выключение левой/правой панели («Ctrl F1/F2»);

«Имя» («Name») – устанавливает сортировку файлов панели по имени;

«Тип» («eXtention») – производит сортировку файлов по расширению;

«Время» («time») – производит сортировку файлов по времени создания;

«Размер» («Size») – производит сортировку файлов по размеру;

«Без сортировки» («Unsorted») – отменяет любую сортировку файлов;

«Обновить панель» («Reread») – производит повторное считывание директории с диска (например, после смены дискеты);

«Сменить диск» («Drive») – производит считывание директории с диска при задании нового имени диска, т.е. смена диска в левой/правой панели («Alt F1/F2»).

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

Меню «Файл» повторяет перечень команд нижней полосы меню, а также содержит команды выделения файлов и обработки их атрибутов (рис. 7.14).

20  программ для ускорения компьютера

Рис. 7.14. Команды меню «Файл» Norton Commander 5.0

Меню «Диск» содержит полезные утилиты для работы с жестким диском, дискетами и файлами (рис. 7.15):

«Копировать дискету» («Disk copy») – позволяет сделать точную копию дискеты (исходная дискета копируется на диск, а затем переносится на новую дискету);

«Форматировать дискету» («Disk format») – позволяет отформатировать дискету;

«Метка диска» («Disk label») – просмотр и смена текущей метки диска;

«Сетевые утилиты» («Network utility») – настройка работы в локальной сети;

«Уборка диска» («Disk clear») – удаление ненужных файлов с компьютера;

20  программ для ускорения компьютера

Рис. 7.15. Команды меню «Диск» Norton Commander 5.0

Последнее верхнее меню «Команды» содержит настройки работы программы и некоторые сервисные возможности (рис. 7.16). Пункты в меню «Команды» имеют следующую интерпретацию:

20  программ для ускорения компьютера

Рис. 7.16. Меню «Команды» Norton Commander 5.0

«Дерево каталогов» («NCD tree») – быстрая смена директорий («Alt F10»);

«Поиск файла» («Find file») – поиск заданного файла(ов) по всем директориям на данном диске («Alt F7»);

«Журнал команд» («History») – выводит на экран команды, введенные ранее в процессе работы и дает возможность их повторного выполнения («Alt F8»);

«Число строк на экране» («EGA lines») – переключение в режим 43 строк в панели (только для EGA-мониторов) («Alt F9»);

«Информация о системе» («Information») – вывод сведений о конфигурации компьютера;

«Обмен панелей» («Swap panels») – меняет панели местами («Ctrl U»);

«Вкл/Выкл панелей» («Panels on/off») – показать/убрать панель («Ctrl O»);

«Сравнений каталогов» («Compare directories») – сравнение директорий двух панелей. Несовпадающие имена файлов выделяются другим цветом;

«Синхронизация каталогов» («Synchronize directories») – синхронизация директорий двух панелей. Несовпадающие и отсутствующие файлы выделяются на экране, а команда «Синхронизировать» делает содержание панелей идентичными;

«Терминал» («Terminal») – настройки работы в локальной сети;

«Меню пользователя» («Menu file edit») – редактирование файла меню пользователя;

«Обработка расширений и Редактор по расширению» («eXtension file edit») – редактирование файла расширения. При нажатии на Enter на данном имени файла происходит обработка файла в зависимости от его расширения;

«Конфигурация» («Configuration») – задание параметров и режимов работы программы.

Из перечисленных команд наиболее часто на практике используется команда «Поиск файла», позволяющая найти файл с заданным именем на текущем диске, на оглавлении которого стоит большой курсор. Это удобно использовать если на диске большая разветвленная структура директорий. Можно искать файл с использованием шаблона (назначение символов * и ? см. в § 7.3). Например, для того чтобы найти все файлы начинающиеся на букву «а» с расширением .doc следует набрать шаблон – а*.doc, или файлы содержащие в имени цифру 5 (расширение произвольное) – *5*.doc, или все текстовые файлы, имя которых содержит всего два символа – ??.txt.

Вопросы и задания для самоподготовки

1. Дайте определение операционной системы.

2. Что такое файл, каталог? Из каких частей они состоят? Правила написания их имен.

3. Перечислите команды общесистемного назначения ОС MS DOS.

4. Перечислите команды работы с файлами и каталогами ОС MS DOS.

5. Охарактеризуйте элементы пользовательского интерфейса Windows.

6. Составляющие части окна Windows.

7. Правила написания имен файлов, папок в Windows.

8. Объясните, как управлять размером окна в WINDOWS?

9. Опишите системное (оконное) меню в WINDOWS. Поясните, как активизировать это меню?

10.Назначение диалогового окна. В каких случаях WINDOWS-программа выводит на экран окно диалога? Приведите примеры.

11.Что такое Буфер Обмена? Как в WINDOWS происходит обмен данными между программами с помощью Буфера Обмена.

12.Что представляет собой Рабочий стол?

13.Для чего служат значки Мой компьютер, Сетевое окружение, Корзина, Мои документы?

14.Для чего служат полосы прокрутки?

15.Что представляет собой папка?

16.Как создать, удалить, переименовать папку (файл)?

17.Что представляет собой ярлык и как его создать?

18.Как найти файл (папку) в Windows по заданным критериям?

19.Как скопировать, вырезать файл (папку)?

20.Для чего служит программа «Проводник»?

21.Как запустить программу «Проводник»?

22.Элементы окна программы «Проводник».

23.Как осуществляется движение по иерархии папок левой области окна программы «Проводник»?

24.Для чего служит команда «Найти» главного меню, ее параметры?

25.Какие свойства и атрибуты имеет файл?

26.Назначение и функции программы «Norton Commander».

27.Использование функциональных клавиш в Norton Commander.

28.Охарактеризуйте команды главного меню Norton Commander.

29.Как найти заданный файл (папку) в Norton Commander?

30. В рабочую тетрадь запишите путь к файлу vi_mvd.doc, который находится: на диске С: в папке Мои документы; на диске M: в папке Документы родительской папки VIMVD; в корневом каталоге на дискеA:.

31. В рабочей тетради укажите расширение файлов, созданных в следующих программах Microsoft Word; Microsoft Excel; Microsoft Access; Блокнот; Paint; Turbo Pascal.

32. В рабочей тетради укажите на какой тип файла указывают приведенные ниже расширения:

· *.jpg; *.arj;

· *.dbf; *.exe;

· *.gif; *.bat;

· *.com; *.tif.

33. Имена каких файлов указаны не верно и почему (в ОС MS DOS и Windows XP)

· test1.exe; 53_1.list;

· <west>.doc; w*r.doc;

· zadanie256.doc; otchet.r;

· east.west.txt; second,WT.ast;

· 2@2.ttt; 24?25.xls;

· lpt1.doc; wert2007.bmp;

· t-1.rar1; 2 2.jpg;

· тест.инф.doc; nul.pas.

ЛЕКЦИЯ 8. Основные понятия кибернетики

В настоящей лекции раскрыты понятия «система» и «управление системами», основные свойства (признаки) системы, показано содержание процесса управления кибернетической системы, а также рассмотрены предмет науки кибернетика, типы задач управления и виды обратных связей в системах управления.

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

Предмет кибернетики

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

Современное значение данного термина связано с научной областью, начало которой положила книга американского ученого Норберта Винера «Кибернетика или управление и связь в животном и машине», вышедшая в 1948 г. Вскоре предметом новой науки стали не только биологические и технические системы, но и системы любой природы, способные воспринимать, хранить и перерабатывать информацию и использовать ее для управления и регулирования. В изданной в 1947 г. «Энциклопедии кибернетики» говорится, что это «… наука об общих законах получения, хранения, передачи и преобразования информации в сложных управляющих системах. При этом под управляющими системами здесь понимаются не только технические, а и любые биологические, административные и социальные системы». Таким образом, кибернетика и информатика являются, скорее всего, единой наукой. Сегодня кибернетику все чаще считают частью информатики, ее «высшим» разделом, в какой-то степени аналогичным по положению «высшей математике» по отношению ко всей математике вообще (примерно в таком же положении по отношению к информатике находится и наука «Искусственный интеллект»). Информатика в целом шире кибернетики, так как в информатике имеются аспекты, связанные с архитектурой и программированием ЭВМ, которые непосредственно к кибернетике отнести нельзя.

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

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

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

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

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

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

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

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

Отметим, что эти разделы не связаны непосредственно с ЭВМ и техническими системами. Иным, быстро развивавшимся в 70-х – 80-х годах, разделом кибернетики были системы автоматического (автоматизированного) регулирования. Этот раздел имеет замкнутый, автономный характер, исторически сложившийся самостоятельно. Он тесно связан с разработкой технических систем автоматизированного регулирования и управления технологическими и производственными процессами.

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

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

§

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

:/>  Файл подкачки в Windows 10: как увеличить или отключить

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

Каждый элемент системы обычно качественно обособлен, имеет самостоятельность в рамках целого. Вместе с тем он во многом зависит от других элементов системы и связан с ними, чем и определяются его место в целостном образовании (система), а также его качественные и количественные характеристики. Такие системы называют целостными, а наиболее сложные из них – кибернетическими. Есть ряд определений понятия системы. Так, под целостной системой понимают «совокупность взаимодействующих между собой относительно элементарных структур или процессов, объединенных в единое целое выполнением некоторой общей функции, не сводимой к функции ее компонентов». Или: «Система есть упорядоченная совокупность взаимосвязанных и взаимодействующих элементов, закономерно образующих единое целое, обладающее свойствами, отсутствующими у элементов и отношений, его образующих».

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

Несмотря на некоторые различия этих (и массы других) определений, в них можно выделить главные или наиболее существенные компоненты (свойства), а именно:

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

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

Все объекты материального мира бесконечно структурируемы – в нем не существует неделимых объектов и невозможно найти первооснову строения. Уже первый шаг членения системы может привести к ситуации, когда каждая из частей будет элементом. Например, когда дальнейшее расчленение не требуется для решения конкретной научной или познавательной задачи либо когда этого еще не умеют делать. В этом случае говорят, что такая система обладает элементарной организацией. Примерами таких систем могут служить: простые числа в арифметике; гелиоцентрическая система Коперника в ее первоначальном варианте; механистическая «планетарная» модель атома вещества.

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

2) Целостность исторически выступает родовым признаком системы. Формальное содержание этого признака заключается в следующем. Объект, состоящий из нескольких выделенных частей, обладает целостностью, если: а) в нем в результате взаимодействия частей образуется новое качество (общесистемное свойство), отсутствующее у частей; б) каждая составная часть приобретает иные качества (системные свойства компонентов) по сравнению с качествами, присущими этим же частям вне данного объекта. Таким образом, признак целостности отражает особенности не всякого, а определенного вида целого, такого, где достаточно выражено единство и где обязательно имеются выделенные части, влияющие друг на друга. Простое механическое вычленение какого-либо объекта из такого целого приводит к тому, что исследователь получает другой объект, но не тот, который он намеревался изучать. Еще Аристотель образно указывал по этому поводу, что рука, отделенная физически от тела, – это уже не рука.

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

Итак, целостность – это признак, позволяющий рассматривать одновременно систему как единое целое и в то же время как подсистему для вышестоящих уровней.

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

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

4) Неаддитивность (произв. от лат. additivusполучаемый путем сложения) – система как целое выполняет определенную функцию, которая не может быть сведена к функциям каждого отдельно взятого ее элемента или выведена их них. Этот признак в несколько иной интерпретации можно выразить формулой: если изучаемый объект представляется в данном исследовании как система, то при любом способе разделения такого объекта на части невозможно выявить его целостные свойства.

Неаддитивность является следствием так называемого синергетического эффекта (от греч. synergeiaсодружественное, совместное), физический смысл которого состоит в следующем. В процессе взаимодействия объектов, объединенных в систему, происходит их самосинхронизация: под воздействием либо внешних, либо внутренних факторов они начинают вести себя таким образом, что поведение каждого отдельного компонента приобретает согласованную направленность. Их действия становятся когерентными (от лат. соhaerentiaсцепление, связь), или кооперативными (от лат. соореratioсотрудничество). Результирующий эффект такого когерентно-коллективного действия получается иным, нежели простая сумма эффектов действия каждого компонента в отдельности. Так, если речь идет о синергетическом «сложении» мощностей, то когерентность выражается в том, что система начинает черпать дополнительную энергию из окружающего пространства и концентрировать ее в нужном направлении. В результате суммарная сила действия превышает сумму действий частей.

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

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

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

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

Управление системами

Самое краткое и самое общее определение управления можно сформулировать так: управление системой – это целенаправленное воздействие на нее, переводящее систему из одного состояния в другое.

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

Контролируемые

Управленческие решения параметры

Рис. 8.1. Схема процесса управления кибернетической системой

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

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

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

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

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

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

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

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

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

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

Как первый, так и второй тип управления характеризуются не только степенью автономности (преобладанием самоуправления над управлением), но и степенью автоматизма.

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

В технических и социальных системах понятие автоматизма управления связано только с использованием управляющих технических устройств. При этом важно отличать механизацию деятельности от автоматизации деятельности.

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

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

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

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

Типы задач управления

Кибернетика как наука об управлении изучает не все системы вообще, а только управляемыесистемы. Зато область интересов и приложений кибернетики распространяется на самые разнообразные биологические, экономические, социальные системы.

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

В системах управления решаются четыре основных типа задач управления:

1) регулирование (стабилизация);

2) выполнение программы;

3) слежение;

4) оптимизация.

Задачами регулирования являются задачи поддержания параметров системы – управляемых величин – вблизи некоторых неизменных заданных значений {х} несмотря на действие возмущений М, влияющих на значения {х}. Здесь имеется в виду активная защита от возмущений, принципиально отличающаяся от пассивного способа защиты.Пассивная защита заключается в придании объекту таких свойств, чтобы зависимость интересующих нас параметров от внешних возмущений была мала. Примером пассивной защиты является теплоизоляция для поддержания заданной температуры системы, антикоррозионные покрытия деталей машин. Активная защита предполагает выработку в управляющих системах управляющих воздействий, противодействующих возмущениям. Так, задача поддержания необходимой температуры системы может быть решена с помощью управляемого подогрева или охлаждения.

Задача выполнения программы возникает в случаях, когда заданные значения управляемых величин {х} изменяются во времени известным образом, например, в производстве при выполнении работ согласно заранее намеченному графику. В биологических системах примерами выполнения программы являются развитие организмов из яйцеклеток, сезонные перелеты птиц, метаморфозы насекомых.

Задача слежения – поддержание как можно более точного соответствия некоторого управляемого параметра X(t) текущему состоянию системы, меняющемуся непредвидимым образом. Необходимость в слежении возникает, например, при управлении производством товаров в условиях изменения спроса.

Задачи оптимизации – установления наилучшего в определенном смысле режима работы или состояния управляемого объекта – встречаются весьма часто. Примерами являются: управление технологическими процессами с целью минимизации потерь сырья и т.д.

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

20  программ для ускорения компьютера

Рис. 8.2. Разомкнутая система управления

Напротив, в замкнутых системах управления для формирования управляющих воздействий используется информация о значении управляемых величин. Структура такой системы показана на рис. 8.3.

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

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

На этой схеме символами обозначены: Х(t) – входное воздействие, x(t)отклоняющее воздействие, Y(t)– выход (реакция) системы, F – оператор преобразования входного и отклоняющего воздействий в реакцию, Хос(t) – выход обратной связи, Yос(t) – вход обратной связи, Fос – оператор обратной связи. Для простоты будем считать, что Yос(t) = Y(t), то есть вход обратной связи есть выход системы. Тогда можно записать:
Y(t) = F[Х(t), x(t), Хос(t)], но Хос(t) = Fос[Y(t)], а следовательно,
Y(t) = F{Х(t), x(t), Fос[Y(t)]}, что означает: при наличии обратной связи выход системы (ее реакция) определяется не только входными и отклоняющими воздействиями, но характером действия обратной связи.

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

Вопросы и задания для самопроверки

1. Что изучает кибернетика?

2. Какие разделы включает в себя исследование операций?

3. Дайте определение понятию «решение».

4. Что такое система?

5. Раскройте основные признаки (свойства) системы.

6. Классификация систем.

7. Дайте понятие «управление системы».

8. Типы управления системами.

9. В чем разница между понятиями механизация и автоматизация?

10. Охарактеризуйте типы задач управления.

11. Понятие обратная связь.

12. Как подразделяют обратные связи по характеру своего действия?

ЛЕКЦИЯ 9. Основные понятия моделирования

В настоящей лекции раскрыты понятия «модель» и «моделирование», сущность системного и индуктивного подходов к синтезу модели, показано содержание основных этапах разработки модели, а также рассмотрены виды моделей и моделирования.

Ключевые слова:модель, свойства модели, классификация моделей, моделирование, виды моделирования, экземпляр, объект, атрибут, идентификатор, этапы моделирования, формализация, анализ, синтез, показатели модели, адекватность модели, верификация модели, индуктивный и системный подходы к синтезу модели.

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

С точки зрения информатики, решение любой производственной или научной задачи описывается следующей технологической цепочкой: «реальный объект – модель – алгоритм – программа – результаты – реальный объект». В этой цепочке очень важную роль играет звено «модель», как необходимый, обязательный этап решения этой задачи.

§

Термин «модель»[4] широко распространен как в научном, так и в общеупотребительном языке, причем в разных ситуациях в него вкладывается различный смысл. Рассмотрим как в настоящее время обстоит дело с определением термина «модель» в различных отраслях знания. В кибернетике «модель – это физическая система либо математическое описание, отображающее существенные свойства или характеристики изучаемого объекта, процесса или явления». В математике существует теория моделей, в которой под моделью понимается произвольное множество с заданным на нем набором свойств и отношений[5]. В теории моделирования систем модель представляет собой «… объект-заместитель объекта-оригинала, обеспечивающий изучение некоторых свойств оригинала»[6]. Э.М. Коротков в своем учебнике «Исследование систем управления» пишет, что «модель – это копия реального объекта, обладающая его основными характеристиками и способная имитировать его поведение»[7]. Ю.Н. Тарасов под моделью понимает « … мысленное или материальное замещение наиболее существенных сторон изучаемого объекта»[8].

Этот список можно продолжить, дополняя его все новыми определениями, встречающимися в современной литературе. Однако даже представленный набор свидетельствует о том, что в настоящее время нет единого сложившегося подхода к определению термина модель. Авторы, говоря о моделях, обычно определяют тот смысл, в котором они употребляют этот термин, тем самым, порождая все новые определения. Хотя, на наш взгляд, в них используются лишь различные подходы для определения одной и той же роли модели в научном исследовании. Все их можно свести к одному «общенаучному», которое выдвинул А.И. Уемов. В настоящее время в философском словаре модель определяется так же, как в свое время понимал ее В.А. Штофф. «Модель – это мысленно представляемая или материально реализованная система, которая, отображая или воспроизводя объект исследования, способна замещать его так, что ее изучение дает нам новую информацию об этом объекте»[9].

Модель должна в некотором смысле отражать, повторять основные свойства и особенности объекта-оригинала. Например, в отношении «объект – модель» находятся: дом – план; знания – оценка; микромир – квантовая механика, планета Земля – глобус, местность – карта и т.д.

Выделим четыре основные свойства моделей:

1) упрощенность по сравнению с изучаемым объектом;

2) способность отражать или воспроизводить объект исследования;

3) возможность замещать объект исследования на определенных этапах его познания;

4) возможность получать новую информацию об изучаемом объекте.

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

В зависимости от способа воспроизведения и от тех средств, при помощи которых осуществляется моделирование, модели делятся на два типа – материальные и идеальные (рис. 9.1). Такое деление моделей допускает более подробную классификацию конкретных видов моделей. Как материальные, так и идеальные модели могут быть относительно полными, неполными и приближенными. Такое деление моделей основано на учете степени адекватности соответствия моделей и оригиналов как систем. Полные модели охватывают процесс развития системы во всех наиболее существенных противоречиях, взаимодействиях сторон и отношений. Неполные же модели, естественно, не обладают столь глобальным характером соответствия. Приближенные модели заведомо содержат в себе некоторые оценочные отклонения от подобия изучаемого явления. Также идеальные и материальные модели могут быть либо детерминированными, отражающими детерминированные процессы (т.е. процессы, в которых отсутствуют случайные воздействия) с однозначно определенными причинами и их следствиями, либо стохастическими, отражающими вероятностные события[10].

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

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

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

20  программ для ускорения компьютера

20  программ для ускорения компьютера Рис. 9.1. Классификация моделей

Модель, идентичная оригиналу в субстратном (т.е. идентична материалу, из которого построена система), структурном и функциональном отношении, считается комплексной.

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

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

Итак, можно выделить три типа материальных моделей: геометрически подобные, субстратно подобные и математически подобные. Геометрически подобные модели характеризуются тем, что между моделью и оригиналом существует геометрическое подобие, примером могут быть пространственные модели молекул, кристаллов в химии, макеты городов, различных сооружений и т.д. Субстратно подобные модели характеризуются своими особенностями. Они должны воспроизводить процесс, закономерности и взаимосвязи, которые имеют место в оригинале, сущность оригинала. Примерами субстратно подобных моделей могут служить уменьшенные действующие модели самолета, ракеты и т.п. Между рассматриваемой субстратно подобной моделью и оригиналом прослеживается также геометрическое подобие, которое должно отражать общность физической природы оригинала и модели. Достоинством субстратного моделирования является возможность установления сложных зависимостей изучаемого объекта, нахождения фактов подобия, использование уравнений в общей форме и т.д. Вместе у этого метода имеется и свои недостатки, заключающиеся, например, в необходимости построения субстрантой модели, связанной с трудностями как технического, так и материального порядка. Кроме этого, методы измерения часто неточны и искажают представления об изучаемых явлениях.

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

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

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

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

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

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

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

Для аналитической модели характерно то, что процессы функционирования элементов системы записываются в виде некоторых функциональных соотношений:

· алгебраических уравнений. Примером может служить модель полета снаряда выпущенного из орудия со скоростью v под углом к горизонту a. Если принять снаряд за материальную точку, сопротивлением воздуха, скоростью ветра и параметрами орудия пренебречь, а ускорение свободного падения принять постоянным g=9,81 м/с2, то получим следующие уравнения для расчета координат полета снаряда:

X=v*cos(a)*t,

Y=v*sin(a)*t20  программ для ускорения компьютера .

· системы дифференциальных уравнений. Например, модель изменения скорости падения v тела массой m . Будем считать, что кроме силы тяжести на тело действует и тормозящая сила сопротивления воздуха, пропорциональная скорости (с коэффициентом пропорциональности k). По второму закону Ньютона имеем:

20  программ для ускорения компьютера

где 20  программ для ускорения компьютера есть ускорение движущегося тела, а F – сила действующая на тело в направлении движения (сила тяжести 20  программ для ускорения компьютера и сила сопротивления воздуха 20  программ для ускорения компьютера ). Итак,

20  программ для ускорения компьютера

· конечно-разностных уравнений и т.п.

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

· логических условий и т.д.

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

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

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

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

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

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

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

Моделирование и его виды

Моделирование представляет собой процесс замещения объекта исследования некоторой его моделью и проведение исследований на модели с целью получения необходимой информации об объекте.

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

· концептуальное моделирование, при котором совокупность уже известных фактов или представлений относительно исследуемого объекта или системы истолковывается с помощью некоторых специальных знаков, символов, операций над ними или с помощью естественного или искусственного языков;

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

· структурно-функциональное моделирование, при котором моделями являются схемы (блок-схемы), графики, чертежи, диаграммы, таблицы, рисунки, дополненные специальными правилами их объединения и преобразования;

· математическое (логико-математическое) моделирование, при котором происходит установление соответствия данному реальному объекту некоторого математического объекта (математической модели) средствами математики и логики и исследование этой модели, позволяющее получать характеристики рассматриваемого реального объекта;

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

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

Остановимся на информационных моделях более подробнее. Начнем с определения простейших понятий информационного моделирования.

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

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

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

Предметы реального мира имеют характеристики (такие, например, как имя, название, регистрационный номер, дата изготовления, вес и т.д.). Каждая отдельная характеристика, общая для всех возможных экземпляров объекта, называется атрибутом. Для каждого экземпляра атрибут принимает определенное значение. Так, объект Книга имеет атрибуты Автор, Название, Год издания, Число страниц.

20  программ для ускорения компьютера

Рис. 9.2. Пример абстрагирования при построении информационной модели

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

Объект может быть представлен вместе со своими атрибутами несколькими различными способами. Графически объект может быть изображен в виде рамки, содержащей имя объекта и имена атрибутов
(рис. 9.3). Атрибуты, которые составляют привилегированный идентификатор объекта, могут быть выделены (например, символом * слева от имени атрибута):

20  программ для ускорения компьютера

Рис. 9.3. Пример графического описания информационной модели

В эквивалентном текстовом представлении это может иметь следующий вид: Книга (Автор; Название; Год издания; Издательство; Количество страниц). Привилегированный идентификатор подчеркивается.

Еще одним способом представления объекта информационной модели является таблица, которая состоит из строк и столбцов. В этой интерпретации каждый экземпляр объекта является строкой в таблице, а значения атрибутов, соответствующих каждому экземпляру, – клетками строки, табл. 9.1.

Таблица 9.1

Автор Название книги Год издания Изд-во Кол-во страниц
Симонович С.В. Информатика Питер
Советов Б.Я. Моделирование систем Высшая школа

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

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

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

20  программ для ускорения компьютера

Рис. 9.4. Информационные модели

типа «очередь» (а), «цикл» (б), «дерево» (в)

Еще более общей информационной моделью является, так называемая, графовая структура, рис. 9.5. Графовые (сетевые) структуры являются основой решения огромного количества задач информационного моделирования.

20  программ для ускорения компьютера

Рис. 9.5. Информационная модель типа «граф»

§

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

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

а) б)

Рис. 9.7. Процесс синтеза модели на основе классического (а) и

системного (б) подходов

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

· наблюдается движение от частного к общему;

· создаваемая модель (система) образуется путем суммирования отдельных ее компонент и не учитывается возникновение нового системного эффекта.

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

Системный подход позволяет решить проблему построения сложной системы с учетом всех факторов и возможностей, пропорциональных их значимости, на всех этапах исследования системы S и построения модели М. Системный подход означает, что каждая система S является интегрированным целым даже тогда, когда она состоит из отдельных разобщенных подсистем. Таким образом, в основе системного подхода лежит рассмотрение системы как интегрированного целого, причем это рассмотрение при разработке начинается с главного – формулировки цели функционирования. Процесс синтеза модели М на базе системного подхода условно представлен на рис. 9.7, б. На основе исходных данных Д, которые известны из анализа внешней системы, тех ограничений, которые накладываются на систему сверху, либо исходя из возможностей ее реализации, и на основе цели функционирования формулируются исходные требования Т к модели системы S. На базе этих требований формируются ориентировочно некоторые подсистемы П, элементы Э и осуществляется наиболее сложный этап синтеза – выбор В составляющих системы, для чего используются специальные критерии выбора КВ.

Вопросы и задания для самопроверки

1. Дайте определение модели.

2. Какие основные черты включает в себя модель?

3. Какие виды моделей бывают?

4. Дайте определение понятию «моделирование».

5. Какие выделяют виды моделирования?

6. Какие существуют способы представления объекта информационной модели?

7. Опишите типовую схему этапов моделирования.

8. Что представляет собой таблица моделирования? Приведите пример.

9. Охарактеризуйте основные показатели модели.

10. Дайте определение адекватности и верификации модели.

11. В чем заключается индуктивный и системный подходы к синтезу модели объекта?

12. Установите правильный порядок соответствия в таблице моделирования:

:/>  Настройка автоматического обновления компьютеров в рабочих группах

1 Моделируемый процесс А Человек

2 Моделируемый объект В Разработка метода лечения

3 Цель моделирования С Температура и давление

4 Моделируемые характеристики D Влияние лекарства на состояние больного организма

§

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

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

Слово алгоритм происходит от algoritmi, являющегося латинской транслитерацией арабского имени хорезмийского математика IX века
аль-Хорезми. Благодаря латинскому переводу трактата аль-Хорезми европейцы в XII веке познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.

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

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

Исполнителя (компьютер) характеризуют: среда, элементарные действия, система команд, отказы.

Среда (или обстановка) – это «место обитания» исполнителя, определяемое пространственные, временные и другие условия существования объекта и ограничения.

Система команд – исполнитель выполняет команды только из некоторого строго заданного списка (системы команд исполнителя). Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды.

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

Для алгоритма характерны следующие основные свойства:

1. Дискретность (прерывность, раздельность) – алгоритм должен быть представлен как последовательное выполнение простых шагов. Шагом называется каждое действие алгоритма. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, т.е. преобразование исходных данных в результат осуществляется во времени дискретно.

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

3. Результативность (или конечность) – алгоритм должен приводить к решению задачи за определенное число шагов.

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

5. Понятность – исполнитель алгоритма должен знать, как его выполнять.

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

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

Алгоритм разветвленной структуры – алгоритм, содержащий хотя бы одно условие, в результате которого обеспечивается переход на один из нескольких возможных шагов (ветвей). В основе организации разветвления лежит проверка логического условия, которое может быть истинно или ложно. Частный вид логического условия – это операции типа =, 20  программ для ускорения компьютера , 20  программ для ускорения компьютера , >, 20  программ для ускорения компьютера , <.

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

Способы описания алгоритмов

Для задания алгоритма необходимо описать следующие его элементы:

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

· правило начала;

· правило непосредственной переработки информации (описание последовательности действий);

· правило окончания;

· правило извлечения результатов.

Для записи алгоритмов, а именно для описания последовательности действий, используют самые разнообразные средства. Выбор средства определяется типом исполняемого алгоритма. Выделяют следующие основные способы записи алгоритмов:

· вербальный (словесный), когда алгоритм описывается на естественном (человеческом) языке;

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

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

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

Входные параметры алгоритма: x=10.

Выходные параметры алгоритма: z(10).

Словесным (вербальным) способом алгоритм решения этой задачи может быть записан в следующем виде:

Алгоритм 1. Вычисление значения функции z(x)

Шаг 1. Ввести значение х=10.

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

Шаг 3. Разделить полученное во 2-ом шаге значение (x2-2x 4) на сумму (x 5)

Шаг 4. Возвести х в куб.

Шаг 5. Сложить х3 со значением, полученным в 3-ем шаге.

Шаг 6. Вывести полученное на 5-ом шаге значение z(10) на экран монитора как результат вычисления значения функции z(x) в точке x=10.

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

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

Написание алгоритмов с помощью схем регламентируется: ГОСТ 19.701-90 – «ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения». Внешний вид основных символов, применяемых при написании схем алгоритмов, приведен в таблице 10.1.

Таблица 10.1

Название Символ (рисунок) Выполняемая функция (пояснение)
1. Процесс20  программ для ускорения компьютера Символ отображает функцию обработки данных любого вида (выполнение определенной операции или группы операций, приводящее к изменению значения, формы или размещения информации или к определению, по которому из нескольких направлений потока следует двигаться).
2. Решение20  программ для ускорения компьютера Символ отображает решение или функцию переключательного типа, имеющую один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа.
3. Данные20  программ для ускорения компьютера Символ отображает данные, носитель данных не определен.
4. Документ20  программ для ускорения компьютера Символ отображает данные, представленные на носителе в удобочитаемой форме (машинограмма, документ для оптического или магнитного считывания, микрофильм, рулон ленты с итоговыми данными, бланки ввода данных).
5. Граница цикла
Условие завершения, Имя цикла

20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера20  программ для ускорения компьютера

 
Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т.д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.
 
 
6. Предопределенный процесс20  программ для ускорения компьютера Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле).
7. Соединитель20  программ для ускорения компьютера Символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения ее в другом месте.
 
8. Терминатор20  программ для ускорения компьютера Символ отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы программы, внешнее использование и источник или пункт назначения данных).
 
9. Ручной ввод20  программ для ускорения компьютера Символ отображает данные, вводимые вручную во время обработки с устройств любого типа (клавиатура, переключатели, кнопки, световое перо, полоски со штриховым кодом).
 
10. Дисплей20  программ для ускорения компьютера Символ отображает данные, пред-ставленные в человекочитаемой форме на носителе в виде отображающего устройства (экран для визуального наблюдения, индикаторы ввода информации).
 
11. Подготовка20  программ для ускорения компьютера Символ отображает модификацию команды или группы команд с целью воздействия на некоторую последую-щую функцию (установка переключа-теля, модификация индексного регистра или инициализация программы).
 
12. Линия20  программ для ускорения компьютера Символ отображает поток данных или управления. При необходимости или для повышения удобочитаемости могут быть добавлены стрелки-указатели.
 
13. Канал связи20  программ для ускорения компьютера Символ отображает передачу данных по каналу связи.
14. Пунктирная линия20  программ для ускорения компьютера Символ отображает альтернативную связь между двумя или более сим-волами. Кроме того, символ исполь-зуют для обведения аннотированного участка.
15. Комментарий20  программ для ускорения компьютера Символ используют для добавления описательных комментариев поясни-тельных записей в целях объяснения или примечаний. Пунктирные линии в символе комментария связаны с соответствующим символом или могут обводить группу символов. Текст комментариев или примечаний должен быть помещен около ограничивающей фигуры.

§

Правила применения символов:

1. Символ предназначен для графической идентификации функции, которую он отображает, независимо от текста внутри этого символа.

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

3. Большинство символов задумано так, чтобы дать возможность включения текста внутри символа. Формы символов, установленные ГОСТом, должны служить руководством для фактически используемых символов. Не должны изменяться углы и другие параметры, влияющие на соответствующую форму символов. Символы должны быть, по возможности, одного размера.

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

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

6. Если объем текста, помещаемого внутри символа, превышает его размеры, следует использовать символ комментария. Если использование символов комментария может запутать или разрушить ход схемы, текст следует помещать на отдельном листе и давать перекрестную ссылку на символ.

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

20  программ для ускорения компьютера

Рис. 10.1. Расположение идентификаторов символов алгоритма

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

20  программ для ускорения компьютера

Рис. 10.2. Подробное представление символов в схеме алгоритма

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

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

Правила выполнения соединений:

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

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

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

3. Две или более входящие линии могут объединяться в одну исходящую линию. Если две или более линии объединяются в одну линию, место объединения должно быть смещено (рис. 10.3, б).

а) б)

Рис. 10.3. Правила выполнения соединений

4. Линии в схемах должны подходить к символу либо слева, либо сверху, а исходить либо справа, либо снизу. Линии должны быть направлены к центру символа.

5. При необходимости линии в схемах следует разрывать для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц. Соединитель в начале разрыва называется внешним соединителем, а соединитель в конце разрыва – внутренним соединителем. Ссылки к страницам могут быть приведены совместно с символом комментария для их соединителей (рис. 10.4).

20  программ для ускорения компьютера

Рис. 10.4. Разрыв схемы алгоритма

Правила построения схем алгоритмов:

· схема алгоритма строится сверху вниз;

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

· должен быть хотя бы один путь из начала схемы алгоритма к любому элементу;

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

20  программ для ускорения компьютера Для примера, построим схему алгоритма, для решения приведенной выше задачи, а именно найти значение функции z(x)= 20  программ для ускорения компьютера , при x = 10. Результат вывести на экран монитора.

Схема алгоритма решения данной задачи приведена на рис. 10.5.

Здесь символы 2-7 соответствуют 1-6 шагам словесного описания алгоритма 1 (вычисление значения функции z(x)) приведенного выше.

§

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

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

Отметим, что между понятиями «алгоритмический язык» (псевдокод) и «языки программирования» есть различие; прежде всего, под исполнителем в алгоритмическом языке может подразумеваться не только компьютер, но и устройство для работы «в обстановке». Программа, записанная на алгоритмическом языке, не обязательно предназначена компьютеру. Практическая же реализация алгоритмического языка – отдельный вопрос в каждом конкретном случае.

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

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

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

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

Алгоритм, записанный на алгоритмическом языке (псевдокоде), должен иметь название. Название желательно выбирать так, чтобы было ясно, решение какой задачи описывает данный алгоритм. Для выделения названия алгоритма перед ним записывают служебное слово алг (АЛГоритм). За названием алгоритма (обычно с новой строки) записывают его команды. Для указания начала и конца алгоритма его команды заключают в пару служебных слов нач (НАЧало) и кон (КОНец). Команды (операторы) записывают последовательно.

Последовательность записи алгоритма:

Алг название алгоритма

Нач

Серия команд алгоритма

Кон

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

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

Простейшим видом машинного оператора является оператор присваивания, служит для вычисления выражений и присваивания их значений переменным. Общий вид: a := b, где знак «:=» означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части. Здесь а и bпрограммные переменные – область машинной памяти, в которой хранятся их значения а и b. В отличии от обычных математических переменных программные переменные могут получать новые значения. В частности, присваивание b := b 5 записывает в программную переменную b новое значение b’, равное величине b 5, где b – прежнее значение переменной b.

Рассмотрим примеры присваивания и описания результатов его выполнения.

Присваивания: Результаты:

а := 0 а = 0

b := а 10 b ‘ = а 10 = 10

b := b – 5 b “ = b’ – 5 = 5

Запись присваиваний читается:

а := 0 – «переменной а присвоить значение 0»;

b := b 10 – «переменной b присвоить значение b 10».

Записи в колонке результатов читаются так:

а = 0 – «значение а равно 0»;

b‘ = b 1 – «значение b’ равно b 1».

Для ввода и вывода данных используют команды:

ввод или считать (имена переменных);

вывод или написать (имена переменных, выражения, “тексты”).

Алгоритм 2

Алг Сравнение x и y

Нач

Вывод(“Введите x”)

Ввод (x)

Вывод(“Введите y”)

Ввод (y)

вывод (“X= ”, x=y, “ Y= ”,x, y x)

Кон

Рассмотрим работу данного алгоритма, в качестве исполнителя выберем компьютер. После выполнения первой команды вывод(“Введите x”) на экране появится сообщение:

Введите x

Пусть пользователь введет значение равное 10. Тогда следующая команда ввод (x) присвоит введенное значение переменной x, т.е. x=10. Далее на экране появится сообщение:

Ведите y

Пусть пользователь введет значение равное 7. Аналогично команда ввод (y) присвоит введенное значение переменной y, т.е. y=7. В результате работы алгоритма на экране появится следующее сообщение:

X= FALSE Y= 1017

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

Рассмотрим, как будет выглядеть алгоритм 1 нахождения значения функции z(x), в точке x=10 записанный на псевдокоде.

Алгоритм 3

алг Расчет значения функции z(x) в точке x=10

нач

вывод (“Введите значение переменной x=10”)

ввод (x)

z:=x*x-2*x 4

z:=z/(x-5)

a:=x*x*x

z:=z a

вывод (“Значение функцииz(”,x,”)= ”,z)

кон

Результатом работы алгоритма, если пользователь действительно введет значение x=10, будет следующее сообщение на экране:

Значение функции z(10)= 1016,8

Вопросы и задания для самоподготовки

1. Дайте определение алгоритма.

2. Охарактеризуйте основные свойства алгоритма.

3. Какие виды алгоритмов вам известны? Приведите примеры.

4. Какие существуют способы описания алгоритмов? Приведите примеры.

5. Перечислите и охарактеризуйте основные функциональные символы, используемые при составлении схем алгоритмов.

6. Правила составления схем алгоритмов.

7. Дайте определение псевдокода.

8. Для чего служит оператор присваивания?

9. Какие команды используют в псевдокоде для ввода/вывода данных? Приведите примеры.

10. В результате работы фрагмента алгоритма

Y:=X-5

X:=2*(Y 1)

Y:=X Y

вывод (Y)

переменная Y приняла значение равное 5. Укажите число – начальное значение переменной X данного алгоритма.

11. Какое значение примет переменная A по окончании работы алгоритма, если начальным значением A ввести: 10; -7; 0. Напишите сообщение, которое будет выведено на экране в конце работы алгоритма.

агоритм Вычисление значения А

нач

вывод (“Введите значение А”)

ввод (А)

если А>0 то А:=А*2

иначе

если А<0 то А:=-3*А

иначе A:=А 10

вывод (“Значение А=”, A, “ результат сравнения А ”,А>15)

кон

12. Чему будет равно значение переменной b после выполнения заданного фрагмента алгоритма? Чему будет равно значение переменной b, если условие выполнения цикла изменить на b>a?

a:=10

b:=50

нц пока b>=a

b:=b-a

кц

§

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

Ключевые слова: этапы решения задач на ЭВМ, технологии проектирования алгоритмов, модуль, головная программа, класс, объект, инкапсуляция, полиморфизм, наследование, базовые алгоритмические структуры (следование, альтернатива, цикл), массив, линейный поиск, поиск делением пополам, сортировка элементов массива, функция, вызов функции, пользовательские и встроенные функции, формальные и фактические параметры, рекурсия.

Решение задач на ЭВМ является одним из основных источников для создания алгоритмов и программ. Технические задачи и проблемы обработки данных – один из важнейших классов прикладных задач, решаемых на ЭВМ.

Применение компьютеров для решения технических задач существенно упрощает работу по подготовке и обработке данных. Одной из причин использования ЭВМ для решения такого рода задач – снижение трудоемкости и уменьшение числа ошибок при обработке данных.

Для решения многих технических задач на ЭВМ используются электронные таблицы и специальные пакеты программ, например MathCad, MathLab и др. Однако решение любых новых прикладных задач на ЭВМ предполагает необходимость создания новых алгоритмов и программ на основе определенных математических методов решения и обработки данных.

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

Этапы решения задачи на ЭВМ

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

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

20  программ для ускорения компьютера

Рис. 11.1. Этапы решения задачи на ЭВМ

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

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

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

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

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

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

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

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

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

§

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

Например, чтобы написать в письме индекс получателя (393780) необходимо данное число вписать в соответствующую графу письма. Сначала пишут цифру 3, затем 9, 3, 7, 8 и, наконец, 0. При этом цифры рисуют, последовательно прорисовывая линии, из которых они состоят.

Модульность алгоритмов, головная программа. При программировании сверху вниз алгоритмы и данные делятся на относительно независимые части, называемые модулями[14]. Некоторые из модулей являются стандартными и поставляются в составе языков программирования, например, вычисление элементарных математических функций, квадратный корень, логарифм, косинус, синус и т.д. Но главные модули все равно приходится проектировать программистам. Таким образом, алгоритм является деревом модулей: одни модули вызывают другие модули, начиная с самого верхнего первого модуля, называемого корневым модулем, или головной программой.

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

1) какова функция модуля, т.е. что он делает;

2) описание входных и выходных данных модуля.

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

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

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

Тремя элементарными структурными алгоритмами являются следующие:

1. Следование, или цепочка, или составная инструкция.

2. Выбор, или ветвление, или условная инструкция.

3. Цикл, или возврат, или циклическая инструкция.

Объектно-ориентированное программирование. Компьютер =
= аппаратное обеспечение программы, а программа = алгоритм данные. После открытия структурного проектирования алгоритмов стали разбираться с программированием данных. Объектно-ориентированное программирование (ООП)организует данные и алгоритмы, обрабатываемые программой. При этом программист создает формы данных и алгоритмы, соответствующие основным характеристикам решаемой проблемы. Модели данных и алгоритмы, их обрабатывающие, называются классами, а объекты– это конкретные их представители, используемые в программе.

Из общих объектов создаются другие, более специализированные. Механизм создания таких подобъектов называется наследованием. Т.е. наследование представляет собойсоздание нового класса объектов путем добавления новых элементов (методов). В данный момент ОО языки позволяют выполнять множественное наследование, т.е. объединять в одном классе возможности нескольких других классов. Для ООП характерны еще два механизма (свойств): инкапсуляция и полиморфизм.

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

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

Визуальное программирование существенно облегчает программирование для графического интерфейса типа Windows, который состоит из множества графических объектов: кнопок, окон, меню и т.д. Система визуального программированияпредоставляет программисту:

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

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

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

§

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

20  программ для ускорения компьютера

Рис. 11.7. Схемы алгоритмов нахождения произведения нечетных чисел

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

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

20  программ для ускорения компьютера

Рис. 11.8. Одномерный массив – набор элементов (компонентов)

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

В некоторых системах программирования существуют специальные виды массивов. Например, массив литер (символов) определяется как строка.

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

Поиск. Для определенности примем, что множество, в котором осуществляется поиск, задано как массив var a:array[0..N] of item, где item – заданный структурированный тип данных обладающий хотя бы одним полем (ключом), по которому необходимо проводить поиск.

Результатом поиска, как правило, служит элемент массива, равный эталону, или отсутствие такового.

Линейный поиск. Процедура заключается в простом последовательном просмотре всех элементов массива и сравнении их с эталоном X.

Алгоритм 1

алг Поиск эталона X в массиве А[1..100]

нач

вывод (“Введите эталон X”)

ввод (x)

нц i

для i=1 до 100

вывод (“Введите ”, i, “ элемент массива А”)

ввод (A[i])

кц i

i:=1

нц пока (i<=100) and (A[i]<>x)

i:=i 1

кц

вывод (x “равен ”,i, “-му элементу массива A”)

кон

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

Алгоритм 2

алг Поиск эталона X в массиве А[1..100] делением пополам

нач

вывод (“Введите эталон X”)

ввод (x)

вывод (“Введите размерность массива A”)

ввод (v)

нц i

для i=1 до v

вывод (“Введите ”, i, “ элемент массива А”)

ввод (A[i])

кц i

k:=0

r:=v

нц пока k<r

n:=(k r) div 2

если A[n]<x то k:=n 1

иначе r:=n

кц

если k>v товывод (“заданного эталона ”,x, “в массиве A нет”)

Иначе

вывод (x “равен ”,n, “-му элементу массива A”)

кон

Например, пусть эталонный ключ х=13, а в массиве имеются следующие элементы: А[1]=1; А[2]=3; А[3]=4; А[4]=7; А[5]=8; А[6]=9; А[7]=13; А[8]=20; А[9]=23. Результатом поиска с применением алгоритма 2 будет значение n = 6.

20  программ для ускорения компьютераЗадача нахождения максимума (минимума) массива.Найти максимальный элемент массива A[n], где n размерность массива. Алгоритм решения данной задачи приведен на рис. 11.9.

Сортировка массивов. Как и в случае поиска определим массив данных: var a: array [0.. N] of item.

Важным условием сортировки массива большого объема является экономное использование доступной памяти. В прямых методах сортировки осуществляется принцип перестановки элементов «на том же месте». Ниже рассмотрим две группы сортировок: с помощью выбора и обмена.

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

Алгоритм 3

алг Сортировка массива А[1..100] по возрастанию с помощью прямого выбора

нач

вывод (“Введите размерность массива A”)

ввод (n)

нц i

для i=1 до n

вывод (“Введите ”, i, “ элемент массива А”)

ввод (A[i])

кц i

нц i

для i=1 до n-1

min:=A[i]

нц j

для j=i 1 до n

если min>A[j] то

k:=j

min=A[j]

Все

кц j

buffer:=A[i]

A[i]:=min

A[k]:=buffer

кц i

вывод (“Вывод элементов отсортированного массива А”)

нц i

для i=1 до n

вывод (A[i])

кц i

кон

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

Фрагмент алгоритма пузырьковой сортировки:

нц i

для i=2 до n

нц j

для j=n до i

если A[j-1]>A[j] то

buffer:=A[j-1]

A[j-1]:=A[j]

A[j]:=buffer

Все

кц j

кц i

Например, задан массив чисел A={3, 2, 5, 1}. После первого выполнения первого прохода:

При i=2, имеем: 3215 3125 1325.

При i=3, имеем 1235.

При i=4, имеем 1235.

Пузырьковая сортировка является не самой эффективной, особенно для последовательностей, у которых «всплывающие» элементы находятся в крайней правой стороне. В улучшенной (быстрой) пузырьковой сортировке предлагается производить перестановки на большие расстояния, причем двигаться с двух сторон. Идея алгоритма заключается в сравнении элементов, из которых один берется слева (i = 1), другой – справа (j = n). Если A[i] <= A[j] , то устанавливают j = j – 1 и проводят следующее сравнение. Далее уменьшают j до тех пор, пока A[i] > A[j]. В противном случае меняем их местами и устанавливаем i = i 1. Увеличение i продолжаем до тех пор, пока не получим A[i] > A[j]. После следующего обмена опять уменьшаем j. Чередуя уменьшение j и увеличение i, продолжаем этот процесс с обоих концов до тех пор, пока не станет i = j. После этого этапа возникает ситуация, когда первый элемент занимает ему предназначенное место, слева от него младшие элементы, а справа – старшие.

§

Функции позволяют разбивать алгоритм (программу) на отдельные блоки, или модули. Таким образом, модульное программирование обязано своим появлением именно функциям. Под модульным программированием подразумевается создание программ (алгоритмов) из самостоятельно отлаживаемых частей, которые в совокупности образуют единое приложение. Например, один модуль может отвечать за ввод данных, другой – реализовывать вывод данных на печать, а третий – обеспечивать сохранение данных на диске.

По сути, функция – это подпрограмма, которая может оперировать данными и возвращать значение.

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

Различают два вида функций: пользовательские и встроенные. Встроенные функции являются составной частью пакета компилятора и предоставляются фирмой-изготовителем. Пользовательские функции создаются самим программистом.

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

Функции можно передать значения. Описание передаваемых значений называется списком параметров (формальные параметры).

Например, функция summa (арг цел I1, цел I2): рез цел – для псевдокода или, например, int summa (int I1, int I2) – для языка С .

Это объявление означает, что функция summa () не только возвращает целое число (на это указывает ее тип данных int), но и получает два целочисленных значения I1 и I2 в качестве параметров.

Параметр описывает тип значения, которое будет передано функции при ее вызове. Фактические значения, передаваемые функции в момент ее вызова из основной программы, называются аргументами (или фактическими параметрами).

Например, P:=summa (5, 8) – для псевдокода или

int P = summa(5, 8) – для языка С .

Здесь целочисленная переменная P инициализируется значением, возвращаемым функцией summa(), а в качестве аргументов этой функции передаются значения 5 и 8. Тип аргументов должен соответствовать объявленным типам параметров.

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

Решение.Анализ задачи.

1. Формулы. Будем вычислять гипотенузу по формуле Пифагора

20  программ для ускорения компьютера (1)

2. Входные данные. Из формулы (1) следует, что входными данными

являются длины катетов x и y.

3. Выходные данные (результат). Результатом работы алгоритма является вычисленное значение гипотенузы z.

Проектирование алгоритма.

Применим проектирование сверху вниз.

1) Напишем входные данные и результат в явном виде.

2) Алгоритм расчета результата выделим в отдельный алгоритм. Этот отдельный алгоритм представляет функцию. В главном алгоритме не нужно описывать, как функция будет вычислять значение гипотенузы. Это внутреннее дело функции, она – «черный ящик» для главного алгоритма. На схеме главного алгоритма вызов функции обозначается прямоугольником с двойными боковыми сторонами (см. рис. 11.10-а). Вместо этого прямоугольника и подставляется алгоритм функции
(см. рис. 11.10-б). Функция реализует формулу Пифагора (1).

20  программ для ускорения компьютера

Рис. 11.10. Схема алгоритма вычисления гипотинузы прямоугльного треугольника по известным катетеам с использованием функции (подпрограммы)

Рассмотрим другую задачу:найти сумму первых n натуральных чисел.

Решение.

Анализ задачи.

1. Формулы. Нужно найти сумму n чисел 1 2 3 … n. (2)

2. Входные данные. Из суммы (2) следует, что входным данным является количество первых натуральных чисел n.

3. Выходные данные (результат). Результатом работы алгоритма является вывод суммы (2).

Проектирование алгоритма:

1) напишем входные данные в явном виде;

2) выведем сообщение о величине суммы;

3) алгоритм вычисления суммы S первых n натуральных чисел выделим в отдельный модуль (см. рис. 11.6). В этом модуле используем цикл для накопления суммы в сумматоре S. Для этого заметим, что текущее слагаемое суммы (2) имеет вид i. Тогда сумму можно накопить в сумматоре, если:

· в начале присвоить ему начальное значение S = 0;

· далее прибавлять к сумматору в цикле переменную i, изменяя ее от 1 до n.

Результат проектирования представлен на рис. 11.11.

20  программ для ускорения компьютера

Рис. 11.11. Вычисление суммы первых n натуральных чисел

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

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

Чтобы продемонстрировать решение задачи при помощи рекурсии, рассмотрим ряд Фибоначчи:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55 . . .

Каждое число ряда (после второго) представляет собой сумму двух чисел, стоящих впереди. Задача может заключаться в вычислении, наример 15 члена ряда Фибоначи. В общем случае n-е число ранво сумме n-2-го и
n-1-го чисел, при условии, что n>2.

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

Вербальное описание алгоритма.

1. Запросить у пользователя какой член в ряду Фибоначчи следует вычислить.

2. Вызвать функцию fibon(), в качестве аргумента которой передать заданный пользователем fibon(), порядковый номер члена ряда Фибоначчи;

3. В теле функции fibon() выполнить анализ поступившего аргумента n. Если n £ 2, то заврешить работу функции и возвратить значение равное 1. В противном случае функция fibon() вызывает сама себя, передавая в качестве аргумента значение n-2, затем снова вызывает сама себя, передавая в качестве аргумента значение n-1, а после следует сложить полученные из функции значения: fibon(n-2) fibon(n-1) – это и будет искомый результат.

Реализация задачи на псевдокоде.

Алгоритм 4

алг Расчет n-го члена ряда Фибоначчи

нач

вывод (“Введите какой номер члена ряда Фибоначчи следует вычислить”)

ввод (n)

Fn:= fibon(n)

вывод (n,“-ый член ряда Фибоначчи равен ”, Fn)

кон

функция fibon (аргцел n): резцел

Нач

если n<=2 то fibon:=1

иначе fibon:=fibon(n-2) fibon(n-1)

Все

Кон

Вопросы и задания для самопроверки

1. Какие этапы решения задачи на ЭВМ можно выделить? Охарактеризуйте их.

2. Кто участвует в решении задачи на ЭВМ и на каких этапах?

3. Перечислите и охарактеризуйте основные методы технологии программирования.

4. Какие этапы можно выделить при создании программы?

5. В чем отличие между отладкой и тестированием программы?

6. Какие методы тестирования вы знаете?

7. Определите понятия полиморфизм, инкапсуляция и наследование.

8. Перечислите базовые алгоритмические структуры.

9. Какие виды циклов вам известны?

10. Опишите работу команды «выбор» на псевдокоде.

11. Опишите работу команды «ветвление» на псевдокоде.

12. Нарисуйте схему алгоритма нахождения суммы n четных натуральных чисел. Как будет выглядеть этот алгоритм на псевдокоде?

13. Нарисуйте схему алгоритма нахождения произведения 20  программ для ускорения компьютера . Как будет выглядеть этот алгоритм на псевдокоде?

14. Перепишите алгоритм из задания 13, используя функцию для нахождения произведения.

15. Напишите пример алгоритма, реализующего линейный поиск, поиск делением пополам.

16. Напишите пример алгоритма, реализующего сортировку массива с помощью прямого выбора, с помощью обменов.

17. Дайте определения понятиям: «функция», «рекурсия».

18. Как описывается функция на алгоритмическом языке. Приведите пример.

§

Для представления алгоритма в виде, понятном компьютеру, служат языки программирования – искусственные языки. От естественных они отличаются ограниченным числом «слов», значение которых понятно транслятору, и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику.

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

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

Классификация языков программирования. При разделении программ на системные и прикладные возникло и разделение в языках программирования – одни их них (Basic, Fortran) предназначены для прикладного программирования, другие (Assembler, С, Java) – для системного. В настоящее время используются языки программирования (C , , Microsoft Visual C и др.), предназначенные для создания программ как системного, так и прикладного уровней.

Языки программирования также подразделяются на низкоуровневые и высокоуровневые языки (см. приложение А).

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

Высокоуровневый язык программирования (их часто называют алгоритмическими) – язык программирования, разработанный для быстроты и удобства использования программистом. Слово «высокоуровневый» здесь означает, что язык предназначен для решения абстрактных высокоуровневых задач и оперирует не инструкциями к оборудованию, а логическими понятиями и абстракцией данных. Это позволяет быстрее программировать сложные задачи и обеспечивает относительную независимость от оборудования. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остается, в большей части, неизменным. Наиболее распространенными языками подобного типа являются Fortran, Pascal, C , Visual Basic, Java,Cobol (common business-oriented language), Python, Ruby, Perl, Delphi, PHP и многие другие.

Языки программирования также можно разделить на компилируемые и интерпретируемые,хотя такоеразделение является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов). Для любого интерпретируемого языка можно создать компилятор – например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений.

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

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

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

· машинные языки – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

· машинно-ориентированные языки – языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);

· машинно-независимые языки – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Бейсик, Фортран и др.);

· языки функционального программирования – языки, в которых основными конструктивными элементами являются функции. Тексты программ на функциональных языках программирования описывают «как решить задачу», но не предписывают последовательность действий для решения. Примеры языков функционального программирования: Лисп, Haskell, Clean, ML и др.;

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

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

· объектно-ориентированные языки – языки, благоприятствующие объектно-ориентированному (ОО) программированию. Примеры ОО-языков программирования: Ada, С , Delphi (Object Pascal), С#, Java и др.

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

– создание/модификация свойств/удаление таблиц в базе данных;

– поиск, отбор, сортировка информации по запросам пользователей;

– добавление новых записей;

– модификация существующих записей;

– удаление существующих записей.

Первые базы данных появились очень давно, как только появилась потребность в обработке больших массивов информации и выборки групп записей по определенным признакам. Для этого был создан структурированный язык запросов SQL (Structured Query Language). Он основан на мощной математической теории и позволяет выполнять эффективную обработку баз данных, манипулируя не отдельными записями, а группами записей.

Для управления большими базами данных и их эффективной обработки разработаны системы управления базами данных (СУБД). Практически в каждой СУБД помимо поддержки языка SQL имеется также свой уникальный язык, ориентированный на особенности этой СУБД и не переносимый на другие системы. Сегодня в мире насчитывается три ведущих производителя СУБД: Microsoft (SQL Server), IBM (JDB2) и Oracle. Их продукты нацелены на поддержку одновременной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких серверах. В каждой из этих СУБД реализован собственный диалект SQL, ориентированный на особенности конкретного сервера, поэтому программы, подготовленные для разных СУБД, друг с другом, как правило, несовместимы.

С появлением персональных компьютеров были созданы так называемые настольные СУБД. Родоначальником современных языков программирования баз данных для ПК принято считать СУБД dBase II, язык которой был интерпретируемым. Затем для него были созданы компиляторы, появились СУБД FoxPro и Clipper, поддерживающие диалекты этого языка. Сегодня самой распространенной настольной СУБД стала система Microsoft Access.

· языки моделирования (UML, GPSS). При создании программ и формировании структур баз данных нередко применяются формальные способы их представления – формальные нотации, с помощью которых можно визуально представить (изобразить с помощью мыши) таблицы баз данных, поля, объекты программы и взаимосвязи между ними в системе, имеющей специализированный редактор и генератор исходных текстов программ на основе созданной модели. Такие системы называются CASE-системами. В них активно применяются нотации IDEF, а в последнее время все большую популярность завоевывает язык графического моделирования UML.

· языки программирования для Интернета. С активным развитием глобальной сети было создано немало реализаций популярных языков программирования, адаптированных специально для Интернета (Perl, PHP, Tcl/Tk, VRML и др.). Все они отличаются характерными особенностями: языки являются интерпретируемыми, интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки называют скрипт-языками. Также существуют специальные языки разметки web-документов публикуемых в сети Интернет (например, HTML, XML).

Языки web-программирования делятся на две группы: клиентские и серверные. Как следует из названия, клиентские языки обрабатываются на стороне пользователя, а если проще – программы на клиентском языке обрабатывает браузер. Отсюда следует и недостаток – обработка скрипта зависит от браузера пользователя, и пользователь имеет полномочия настроить свой браузер так, чтобы он вообще игнорировал скрипты. Преимущество же клиентского языка заключается в том, что обработка скриптов на таком языке может выполняться без отправки документа на сервер. Программа сразу проверит правильное заполнение формы перед отправкой, и, если необходимо, выведет ошибку. Отсюда же вытекает и то ограничение, что с помощью клиентского языка программирования ничто не может быть записано на сервер. Самым распространенным из клиентских языков является JavaScript, разработчиками которого является компания Netscape совместно с компанией Sun Microsystems. Другой вариант клиентского языка это, например, VBScript.

Важной стороной работы серверных языков является СУБД. Это, по сути, тоже сервер, на котором в определенном пользователем порядке хранится разная необходимая информация, которая может быть вызвана в любой момент. Это библиотека, в которой все материалы аккуратно сложены по полочкам и в любой момент могут быть взяты. В настоящее время стали известны СУБД, обращение к которым производится посредством Structured Query Language (SQL), или языком структурированных запросов.

· скриптовые языки (англ. scripting language, также называют язык сценариев) – языки программирования, разработанные для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (batch languages). Сценарии всегда интерпретируются, а не компилируются. В прикладной программе, сценарий (скрипт) – это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы. Примеры скриптовых языков программирования:

– универсальные скриптовые языки:Forth, Perl, Python, PHP,
Tcl
( Tool command language), Ruby, ERM, Lua и др.

– встроенные в прикладные программы: VBA (Visual Basic Application), AutoLISP, Emacs Lisp, MAXScript и др.,

– командные оболочки: AppleScript, bash, csh, JCL, пакетные файлы MS DOS (.bat) и файлы командного процессора Microsoft Windows NT (.cmd), REXX и др.

– встраиваемые: JavaScript, Sleep, Script.NET и др[16].

· языки описания интерфейсовили IDL (англ. Interface Description Language) – описательный компьютерный язык, синтаксически похожий на C . Примеры языков описания интерфейсов: CORBA IDL (разработан OMG для описания интерфейсов распределенных объектов – названий методов и типов переменных-аргументов), COM IDL (аналогичная CORBA IDL разработка Microsoft, созданная для описания интерфейсов между модулями COM).

· интегрированные системы программирования (Microsoft Visual Basic, Borland Delphi, Borland C Builder, Symantec Café).

§ 12.2. Основные понятия языков программирования

Выражение. В широком смысле под выражением будем понимать все, что обрабатывает значения. В узком смыслевыражение– формула для вычисления результата. Выражение состоит из операторов и операндовпеременных или чисел.

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

Выражения бывают трех видов:

1) арифметическими, вычисляющими числовой результат;

2) логическими, вычисляющими логический результат;

3) строчными, отражающими символьную информацию.

Арифметическое выражение. В языках программирования есть следующие арифметические операции:

1) сложения ; 2) вычитания –; 3) умножения *; 4) деления /.

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

1. Арифметическое выражение записывается в одну строку.

2. Знаки действий не пропускаются.

3. Применяются только круглые скобки.

Арифметическое выражение стоит справа от оператора присваивания.

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

Например, выражение i 3 состоит из одной операции сложения и двух операндов – переменной i и числовой константы – 3.

Каждое выражение имеет значение, которое определяется в момент выполнения оператора, содержащего это выражение. Если на момент вычисления выражения i 3 в переменной i будет хранится число 5 то значение этого выражения будет равно 8.

Логическое выражение. В языках программирования имеются и логические выражения, которые могут принимать только два значения: ИСТИНА и ЛОЖЬ. Чаще всего false ассоциируется с нулем, а true с числом 1 или просто любым ненулевым значением.

Логические выражения могут состоять из операций сравнения и логических операций. Операции сравнения сличают значения правого и левого операндов. Результатом является true или false.

Существуют следующие операции сравнения:

1) равно = (= =); 2) меньше <; 3) больше >; 4) больше или равно>=; 5) меньше или равно<=; 6) неравно <> (или !=)[17].

Например, логическое выражение 1 < 5 истинно, а 5 < 5 ложно.

Наиболее часто используются следующие логические операции AND, OR, NOT.

Приоритеты всех логических операций ниже, чем приоритеты операций сравнения, поэтому операции сравнения всегда выполняются первыми. Приоритет логических операций NOT (НЕ), AND (И), OR (ИЛИ).

Строчные выражения. Строки в языках программирования всегда заключаются в кавычки. Как правило строки можно сравнивать друг с другом на эквивалентность (равно и не равно) В некоторых языках программирования допускается также сравнение типа больше/меньше Кроме того часто допускается операции склеивания строк « » (конкатенация). Например, в результате выполнения оператора присвоения STR:=«3mp3» «.musik» «.ru» переменная STR примет значение «3mp3.musik.ru».

Оператор. Оператор – допустимое в данном языке программирования предписание (инструкция), предназначенное для определения некоторого шага процесса обработки информации на ЭВМ.Другими словами оператор представляет собой законченную фразу языка и определяет однозначно трактуемый этап обработки данных. Те объекты, с которыми манипулирует оператор, называются его операндами. Количество операндов у операторов бывает разное, в том числе и ноль.

В соответствии с теорией алгоритмов выделяют основные (базисные) операторы языка: присвоения, условный и безусловный переход, пустой оператор и производные (не основные). К последним, относят составной оператор, оператор выбора, оператор цикла и оператор присоединения.

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

Другая важная классификация величин – простые и структурированные. Простая величина в каждый момент может иметь не более одного значения. Ей соответствует одна ячейка памяти (поскольку термин «ячейка» несколько устарел, часто говорят «машинное слово») или ее эквивалент во внешней памяти компьютера. Структурированная величина, имея одно имя, может иметь разом несколько значений. Эти значения представляют собой элементы (компоненты) величины. Самый широко известный пример – массив, у которого элементы различаются по индексам (номерам).

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

1) количество байт, которое эта переменная будет занимать в памяти;

2) набор операций, который можно производить над этой переменной в программе.

Самые элементарные типы переменных называются стандартными.

К стандартным типам переменных относятся:

1) логические значения;

2) целые типы;

3) вещественные типы;

4) множество литер, или символов, выводимые на экран или печать.

Описанные выше типы данных называют простыми. Основной признак, по которому можно определить величину простого типа, таков: одно имя – одно значение.

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

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

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

Если все элементы, образующие структуру, однотипны (например, – целые числа или символы), то структура является однородной; если же в ней «перепутаны» элементы разной природы (например, числа чередуются с символами), то неоднородной.

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

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

Если у структуры размер (длина, количество элементов) не может быть изменен «на ходу», а фиксирован заранее, то такую структуру называют статической. Программные средства информатики иногда позволяют не фиксировать размер структуры, а устанавливать его по ходу решения задачи и менять при необходимости, что бывает очень удобно. Такую структуру называют динамической. Например, при описании закономерностей движения очереди в магазине мы не знаем заранее, сколько человек в ней будет в тот или иной момент, и соответствующую структуру данных (например, список фамилий участников очереди) лучше представлять динамической.

Этапы разработки программ

Разработка программы решения задачи на ЭВМ предусматривает следующие шаги:

1. Выбор языка программирования.

2. Составление проекта программы.

3. Создание файла с текстом программы[18].

4. Трансляция программы, т.е. перевод ее с языка высокого уровня на язык машинных кодов[19]. На этом этапе транслятором автоматически осуществляется проверка соответствия программы требованиям языка программирования, на котором она написана.

Трансляция может выполняться с использованием средств компиляторов или интерпретаторов.

Компилятор транслирует всю программу, но без ее выполнения.

Интерпретатор, в отличие от компилятора, выполняет пооператорную обработку и выполнение программы.

5. Компоновка программы – выполняется с помощью специальной программы компоновщика, как правило, называемой LINKER (редактор связей) и заключается в генерации загрузочного модуля[20] программы, т.е. создании исполняемого файла типа EXE. Компоновщик подключает к программе пользователя все необходимые библиотеки и создает карту распределения оперативной памяти для данной программы, которая, кстати, может быть полезна при отладке больших программ.

6. Устранение ошибок:

6.1. Отладка – устранение синтаксических и других элементарных ошибок в программах на этапах трансляции и сборки. Ошибки в программах бывают двух видов:

· синтаксические ошибки – несоответствие формальным требованиям языка программирования. На них указывает транслятор при трансляции и линковщик при сборке программы.

· семантические ошибки – смысловые (логические) ошибки; при них программа «работает», но работает неправильно, т.е. не по заданию. Поиск этих ошибок происходит с помощью логического анализа работы программы и ее тестирования[21].

6.2. Тестирование – проверка правильности работы программы на заранее подготовленных тестах, для которых известен точный результат.

Выделяют следующие уровни тестирования:

· модульное тестирование (Unit-тестирование) – тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция.

· интеграционное тестирование – проверяет, есть ли какие-либо проблемы в интерфейсах и во взаимодействии между интегрируемыми компонентами – например, не передается информация, передается некорректная информация.

· системное тестирование – тестируется интегрированная система на ее соответствие исходным требованиям.

· регрессионное тестирование (англ. regression testing, от лат. regressio – движение назад) – собирательное название для всех видов тестирования программного обеспечения (ПО), направленных на обнаружение ошибок в уже протестированных участках исходного кода. Такие ошибки – когда после внесения изменений в программу перестает работать то, что должно было продолжать работать – называют регрессионными ошибками. После внесения изменений в очередную версию, регрессионные тесты подтверждают, что сделанные изменения не повлияли на функциональность предыдущей версии.

· альфа-тестирование – имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком на стороне разработчика. Часто альфа-тестирование применяется для законченного продукта в качестве внутреннего приемочного тестирования. Иногда альфа-тестирование выполняется отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могут быть переданы разработчику для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.

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

Одними из наиболее распространенных технологий тестирования являются:

· стратегия черного ящика;

· стратегия белого ящика;

· регрессионное тестирование.

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

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

Если «альфа-» и «бета-тестирование» относятся к стадиям до выпуска продукта, тестирование «белого ящика» и «черного ящика» имеет отношение к способам, которыми тестировщик достигает цели.

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

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

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

7. Выполнение программы, проверка результатов. Если они ошибочны, то происходит редактирование текста программы и возврат к
4 шагу. Если результаты устраивают пользователя, то процесс разработки программы заканчивается.

Вопросы и задания для самопроверки

1. Что называется программой?

2. Что такое язык программирования?

3. Дайте классификацию языков программирования.

4. Поясните следующие понятия: выражение, оператор, операция.

5. Какие виды выражений вы знаете?

6. Перечислите стандартные типы переменных.

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

8. Поясните, в чем различие между отладкой и тестированием программы?

9. Какие виды ошибок могут встречаться в программе?

10. Назовите уровни тестирования программного обеспечения.

11. Опишите существующие технологии тестирования.

12. Дайте понятия компилятора, интерпретатора, транслятора, загрузчика, отладчика.

Литература

Основная:

1. Об информации, информационных технологиях и о защите информации: Федеральный закон РФ от 27 июля 2006 г. № 149-ФЗ / Сборник законов РФ. С изменениями и дополнениями на 30 апреля 2007 года. – М.: Эксмо, 2007.

2. ГОСТ 19.701-90 – ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.

3. Словарь по кибернетике: св. 2000 ст. / Под. ред. В.С. Михалевича. – К.: Гл. ред. УСЭ им. М. П. Бажанова, 1989.

4. Информатика. Базовый курс: учебник для вузов / Под. ред. С.В. Симоновича. – СПб.: Питер, 2007.

5. Каймин В.А. Информатика / В.А. Каймин. – М.: ИФРА-М, 2001.

6. С : процедурно-ориентированное программирование: учебное пособие / Авт.-сост. О.И. Каляпина, С.А. Мишин. – Воронеж: Воронежский институт МВД России, 2008.

Дополнительная:

7. Акулов О.А. Информатика базовый курс / О.А. Акулов, Н.В. Медведев. – М.: Омега-Л, 2008.

8. Магда Ю.С. Аппаратное обеспечение и эффективное программирование / Ю.С. Магда. – СПб.: Питер, 2007.

9. Беляев М.А. Основы информатики : учебник для студентов вузов / М.А. Беляев [и др.]. – Ростов н/Д: Феникс, 2006.

10. Соболь Б.В. Информатика : учебник / Б.В. Соболь и [и др.]. – Ростов н/Д: Феникс, 2006.

11. Максимов Н.В. Архитектура ЭВМ и вычислительных систем : учебник / Н.В. Максимов, Т.Л. Партыка, И.И. Попов. – М.: ФОРУМ: ИНФРМА-М, 2006.

12. Могилев А.В. Информатика / А.В Могилев, Н.И. Пак, Е.К. Хеннер. – М.: Academia, 2004.

13. Новосельцев В.И. Системный анализ: современные концепции / В.И. Новосельцев. – Воронеж: Издательство «Кварта», 2003.

14. Советов Б.Я. Моделирование систем / Б.Я. Советов, Яковлев С.А. – М.: Высшая школа, 2001.

15. Болгов В.В. Цифровые интегральные микросхемы устройств охранно-пожарной сигнализации: учебное пособие / В.В. Болгов. – Воронеж: Воронежская высшая школа МВД России. 1997.

16. Свободная энциклопедия «Википедия» [Электронный ресурс]. – Режим доступа: http://ru.wikipedia.org. – Загл. с экрана.

Приложение А

§

Ада – язык программирования, созданный в 1979–1980x годах в результате проекта, предпринятого Министерством Обороны США с целью разработать единый язык программирования для так называемых встроенных систем (то есть, систем управления автоматизированными комплексами, работающими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами. Перед разработчиками не стояло задачи создать универсальный язык, поэтому решения, принятые авторами, нужно воспринимать в контексте особенностей выбранной предметной области. Ада – это структурный, модульный, объектно-ориентированный язык программирования, содержащий высокоуровневые средства программирования параллельных процессов. Синтаксис унаследован от языков типа ALGOL или Pascal, но расширен, а также сделан более строгим и логичным. Ада – язык со строгой типизацией, в нем исключена работа с объектами, не имеющими типов, а автоматические преобразования типов сведены к абсолютному минимуму. Для удовлетворения требованиям надежности язык построен таким образом, чтобы как можно большее количество ошибок обнаруживалось на этапе компиляции. Кроме того, одним из требований при разработке языка была максимально легкая читаемость текстов программ, даже в ущерб легкости написания. Результатом такого подхода стал несколько «тяжеловесный» синтаксис и множество ограничений, часто воспринимаемых непрофессиональными программистами как «глупые» и «ненужные». Язык Ада используется в США и Европе при разработке сложных больших проектов, главным образом, встроенных систем, причем, далеко не только в военных приложениях.

Java(Джава, Ява) объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems с 1991 года и официально выпущенный 23 мая 1995 года. Многие люди, говоря на русском, называют язык «Ява» по аналогии с географическим названием. Java – так называют не только сам язык, но и платформу для создания приложений уровня предприятий на основе данного языка. Изначально новый язык программирования назывался Oak (James Gosling) и разрабатывался для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Ява (Java), любимого программистами, поэтому на официальной эмблеме языка Java изображена чашка с дымящимся кофе. Программы на Java могут быть транслированы в байт-код, выполняемый на виртуальной java-машине (JVM) – программе, обрабатывающей байтовый код и передающей инструкции оборудованию, как интерпретатор, но с тем отличием, что байтовый код в отличие от текста обрабатывается значительно быстрее. Достоинство подобного способа выполнения программ – в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java приложения на любом устройстве, которое поддерживает виртуальную машину. Другой важной особенностью технологии Java является гибкая система безопасности, благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Это позволяет пользователям загружать программы, написанные на Java, на их компьютеры (или другие устройства, например, мобильные телефоны) из неизвестных источников, при этом не опасаясь заражения вирусами, пропажи ценной информации, и т.п.

Си (англ. C ) – компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщенную, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования. Название «Си » происходит от Си, в котором унарный оператор обозначает приращение. Язык возник в начале 1980-х годов, когда сотрудник фирмы «Bell Laboratories» Бьерн Страуструп придумал ряд усовершенствований к языку Си под собственные нужды. В 1990-х годах язык стал одним из наиболее широко применяемых языков программирования общего назначения. При создании Си стремились сохранить совместимость с языком Си. Большинство программ на Си будут исправно работать и с компилятором Си . Си имеет синтаксис, основанный на синтаксисе Си.

Delphi (Дельфи) – среда разработки, использует язык программирования Delphi (начиная с 7 версии язык в среде именуется Delphi, ранее – Object Pascal), разработанный фирмой Borland и изначально реализованный в ее пакете Borland Delphi, от которого и получил в 2003 году свое нынешнее название. Object Pascal по сути является наследником языка Pascal с объектно-ориентированными расширениями. Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ GNU/Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET. При этом высказывались предположения, что эти два факта взаимосвязаны.

Oberon – язык общего назначения, созданный автором Pascal и Modula-2 Никлаусом Виртом и его коллегами из Швейцарского федерального технического института г. Цюрих в ходе разработки одноименной операционной системы для однопользовательской рабочей станции Ceres. Язык и операционная система названы именем одного из спутников планеты Уран – Оберона. Он имеет долгую историю создания, является наследником Algol 60 (1960), Pascal (1970) и Modula (1979). Oberon синтезировал более четверти века исследований Н.Вирта по методологии и языкам программирования. Ему с учениками удалось добиться точного синтеза «старых» достижений структурного и модульного программирования (представленных еще в Модуле-2) с «новыми» объектными методами (языки Simula,
Smalltalk). Вот, что говорил сам Вирт о своем «детище»: «Он (Оberon) включает в себя средства, необходимые для объектно-ориентированного программирования, сохраняя стиль Паскаля, и является результатом моего стремления к простоте без потери выразительности. В этом должна состоять сущность языка, равно пригодного как для учебной аудитории, так и для профессиональной деятельности.»

Object Pascal

Visual Basic

Simula

Python

C# и др.

§

HTML (от англ. Hypertext Markup Language – «язык разметки гипертекста») – это стандартный язык разметки документов во Всемирной паутине. Все веб-страницы создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, удобном для человека. HTML является расширением SGML (стандартного обобщенного языка разметки) и соответствует международному стандарту ISO 8879. Язык HTML был разработан британским ученым Тимом Бернерсом-Ли приблизительно в 1991-1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области верстки. HTML успешно справлялся с проблемой сложности SGML путем определения небольшого набора структурных и семантических элементов (размечаемых «тегами»), служащих для создания относительно простых, но красиво оформленных документов. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

XML (англ. eXtensible Markup Language – расширяемый язык разметки; произносится [экс-эм-э́л]) – рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил. XML – текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощенным подмножеством языка SGML. Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имен (англ. namespace).

Языки моделирования

UML (сокр. от англ. Unified Modeling Language – унифицированный язык моделирования) – язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. Однако использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур. UML позволяет разработчикам ПО достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение) и больше сконцентрироваться на проектировании и архитектуре.

GPSS (англ. General Purpose Systems Simulator – общецелевая система моделирования) – язык программирования, используемый для моделирования различных систем, в основном систем массового обслуживания. GPSS был создан в 1961 году Джеффри Гордоном, был популярен в 1960-1970-е годы, сейчас используется, но редко, так как менее гибок чем такие языки моделирования как Simula и SIMSCRIPT II.5.

Неклассифицированные языки

PL/I (ПЛ/1)разработан в 1964-1965 годах фирмой IBM. PL/I относится к числу универсальных языков, т.е. позволяет решать задачи из разных областей: численные расчеты, текстовая обработка, экономические задачи и т.д. По своим возможностям он перекрывает такие языки, как FORTRAN, Алгол (созданный для численных расчетов), Кобол (для экономических задач), хотя в силу ряда причин вытеснить эти языки PL/I не смог. PL/I содержит все основные конструкции, характерные для так называемых языков высокого уровня, а также ряд специфичных средств, удобных для практического программирования. Язык напоминает конструктор с большим числом деталей – пользователю достаточно освоить только те части языка, которые ему практически необходимы. Его операторы довольно емки, что часто позволяет получить запись программы более компактную, чем на других языках. Знающий PL/I программист без труда осваивает любой другой язык того же или близкого класса. Вместе с тем, PL/I имеет и ряд недостатков, затрудняющих изучение и использование языка. Основные из них таковы. Во-первых, имеется много дублирующих друг друга средств их сложно запомнить, не ясно, что когда применять, кроме того, это снижает как скорость трансляции, так и скорость выполнения программ. Во-вторых, программы получаются не совсем машинно-независимыми.

Clean

Curry

Mercury

Linda и др.

Сергей Александрович Мишин

Ольга Ивановна Каляпина

§

Курс лекций

Подписано в печать 01.07.08. Формат 60 20  программ для ускорения компьютера 84 20  программ для ускорения компьютера

Бумага офсетная. Гарнитура Таймс Новая. Печать офсетная.

Усл. печ. л. 16,97.

Тираж 140 экз. Заказ №

Воронежский институт МВД России,

394065, Воронеж, просп. Патриотов, 53

Типография Воронежского института МВД России,

394065, Воронеж, просп. Патриотов, 53

[1] Априори – понятие, характеризующее знание, предшествующее опыту (испытанию), и независимое от него.

[2] Апостериори – происходящее из опыта (испытания, измерения).

[3] Два высказывания будут равносильны (равны, эквиваленты), если они принимают одинаковые значения на всех наборах значений аргументов.

[4] Слово «модель» произошло от латинского слова modus, modulus (мера, образ, способ и др.), и его первоначальное значение было связано со строительным искусством.

[5] См.: Иванилов Ю. П., Лотов А. В. Математические модели в экономике. – М.: Наука, Главная редакция физико-математической литературы, 1979. – С. 20.

[6] Советов Б. Я., Яковлев С. А. Моделирование систем: Учебник. – 3-е изд., перераб. и доп. – М.: Высшая школа, 2001. – С. 6.

[7] Коротков Э.М. Исследование систем управления: Учебник. – М.: ДеКА, 2000. – С. 35.

[8] Тарасов Ю. Н. Философия: Вузовский курс. – Воронеж: МРУ ВЭПИ, 2002. – С. 296.

[9] Краткий философский словарь / Под редакцией д. ф. н. А. П. Алексеева – М.: «Проспект», 2001. – С. 185.

[10] См.: Информатика и вычислительная техника в деятельности органов внутренних дел. Часть 5. Аналитическая деятельность и компьютерные технологии: / Под ред. В.А. Минаева. – М: МЦ при ГУК МВД России, 1996. – С. 6 – 7.

[11]См.: Веников В. А., Веников Г. В. Теория подобия и моделирования. – М.: Высшая школа, 1984. – С. 428.

[12] См.: Советов Б. Я., Яковлев С. А. Моделирование систем: Учебник. – 3-е изд., перераб. и доп. – М.: Высшая школа, 2001. – С. 25 – 28.

[13] Формализация – процесс описания объекта на некотором искусственном языке.

[14] Модуль – логически связанные фрагменты программы, выполняющие одну функцию и состоящие из обозримого числа шагов.

[15] Программа (program, routine) – упорядоченная последовательность команд (инструкций) компьютера для решения задачи.

[16]В настоящее время, широкое использование компьютерных систем с кластерными и GRID-архитектурами поставило задачу создания высокоуровневых, мощных и легких для использования языков программирования, которые бы позволили создавать сложные, но в то же время быстрые приложения, эффективно использующие параллельные вычисления. Одним из таких языков в настоящее время является C# (высокоуровневый объектно-ориентированный язык программирования для платформы .NET, поддерживающий создание программ, работающих в распределенной среде с асинхронными вызовами).

[17] В скобках представлены соответствующие виды операций сравнения для языка С .

[18] Файл с текстом программы называется исходным кодом.

[19] В результате успешной трансляции исходный код преобразуется в объектный код.

[20] После этапа компоновки объектный код преобразуется в загрузочный модуль.

[21] Для этих целей часто используется специальная опция языка программирования. Она, как правило, называется DEBUG и дает возможность в процессе отладки посмотреть, как изменяется та или иная переменная при работе программы, установить контрольные точки в программе и т.п.

Оставьте комментарий

Adblock
detector