Программное обеспечение ЭВМ и языки программирования

1. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЭВМ



1.1. Виды программного обеспечения



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

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

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

Программа – это упорядоченные последовательности команд.

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

Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии.

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

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

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







Базовый уровень – самый низкий уровень ПО представляет базовое ПО. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ – Read Only Memory – ROM). Программы и данные записываются («прошиваются») в микросхемах ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.

В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые ПЗУ (ППЗУ – Erasable and Programmable Read Only Memory, EPROM). В этом случае изменение содержания ПЗУ можно выполнять как непосредственно в составе вычислительной системы (такая технология называется флэш-технологией) так и вне ее, на специальных устройствах, называемых программаторами.

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

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

Системные программы – это программы предназначенные:

	для поддержания работоспособности системы обработки информации;

	для повышения эффективности ее использования.

Различают программы:

	системные управляющие; 

	системные обслуживающие.

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

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

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

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

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

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

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

	программы оптимизации и контроля качества дискового пространства;

	программы восстановления информации, форматирования, защиты данных;

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

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

	программы для записи CD-ROM, CD-R и многие другие.

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

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

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

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

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

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

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

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

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

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

Прикладные программы делятся на программы общего и специального назначения

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

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

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

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



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



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

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

Можно выделить следующие виды программных средств: прежде всего, это программы, необходимые для управления работой самого компьютера как сложной системы. Пользователь, как правило, может даже не знать, что это за программы, сколько их, что они делают. Но большинство команд пользователя выполняется именно с их помощью. В совокупности они называются системным ПО. К нему традиционно относят [5]:

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

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

	файловая система;

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

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

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

	ПС для обработки текстов – текстовые редакторы, текстовые процессоры, редакционно-издательские системы, программы-переводчики, программы проверки орфографии и синтаксиса, лингвокорректоры и т.п.;

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

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

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

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

	ПС, обеспечивающие автоматизированное хранение информации – системы управления базами данных (СУБД), построенные с их помощью базы и банки данных (БД и БнД), специализированные информационно-поисковые системы (ИПС) и др.;

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

	ПС, применяемые для проведения исследовательских и проектно-конструкторских работ – специализированные моделирующие программы, системы автоматизированного проектирования (САПР) и пр.;

	ПС, используемые в обучении – электронные учебники, тренажеры, тесты и пр.;

	игровые программы;

	программы, созданные пользователем с помощью сред программирования.

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

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

В специальном ПО можно выделить инструментальное ПО и сервисное ПО.

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

К сервисному ПО относятся:

	антивирусные программы;

	программы-архиваторы;

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

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

Все эти процессы называют сопровождением программ.

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

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

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

То есть файловая система – это способ хранения информации на внешних носителях.

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

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

Файлы объединяются в каталоги, каждый из которых тоже имеет свое имя. Не может быть в одном каталоге двух файлов с одинаковым именем.

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



1.3. Операционные системы



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

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

Операционная система (ОС) – это комплекс (набор) программ, который обеспечивает взаимодействие всех устройств ЭВМ и позволяет пользователю осуществлять общее управление ЭВМ [2].

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

ОС реализует много различных функций, в том числе:

	создает рабочую среду и поддерживает пользовательский интерфейс;

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

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

	обеспечивает разделение аппаратных ресурсов между программами;

	планирует доступ пользователей к общим ресурсам;

	обеспечивает выполнение операций ввода– вывода, хранения информации и управление файловой системой;

	осуществляет восстановление информации в случае аппаратных сбоев и программных ошибок.

Развитие операционных систем всегда следовало за развитием аппаратуры.

Операционная система - это комплекс взаимосвязанных системных программ, назначение которого - организовать взаимодействие пользователя с компьютером и выполнение всех других программ [5].

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

Операционную систему составляют:

	управляющая программы;

	набор утилит, необходимых для эксплуатации операционной системы.

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

В функции операционной системы входит: 

	осуществление диалога с пользователем;

	ввод-вывод и управление данными;

	планирование и организация процесса обработки программ;

	распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);

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

	всевозможные вспомогательные операции обслуживания;

	передача информации между различными внутренними устройствами;

	программная поддержка работы периферийных устройств (дисплея, клавиатуры, принтера и др.).

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

Требования к современным операционным системам:

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

	переносимость – обеспечение возможности переноса ОС с одной аппаратной платформы на другую;

	надежность и отказоустойчивость – предполагает защиту ОС от внутренних и внешних ошибок, сбоев отказов;

	безопасность – ОС должна содержать средства защиты ресурсов одних пользователей от других;

	расширяемость – ОС должна обеспечивать удобство внесения последующих изменений и дополнений;

	производительность – система должна обладать достаточным быстродействием.

Классификация ОС

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

	однозадачные (MS DOS, ранние версии PS DOS);

	многозадачные (OS/2, UNIX, Windows)

Многозадачность бывает:

	невытесняющая (Net Ware, Windows 95/98), когда активный процесс по окончании сам передает управление ОС для выбора из очереди другого процесса;

	вытесняющая (Windows NT, OS/2, UNIX) - решение о переключении процессора с одного процесса на другой принимает ОС.

По числу одновременно работающих пользователей ОС делят:

	однопользовательские (MS DOS, Windows 3х, ранние версии OS/2)

	многопользовательские (UNIX, Windows 2000, NT, XP, Vista). В многопользовательских системах присутствуют средства защиты информации пользователей от несанкционированного доступа.

В настоящий момент около 90% компьютеров используют ОС Windows.

Различают четыре основных класса операционных систем: 

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

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

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

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

Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты: 

	программы управления вводом/выводом;

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

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

Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия: 

	обращаться к каталогу;

	выполнять разметку внешних носителей;

	запускать программы;

	другие действия.

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

Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.

Краткая характеристика некоторых операционных систем

ОС Linux – сетевая ОС, ядро которой разработано на базе ОС Unix. Linux распространяется в исходных кодах и применяется для создания серверов в вычислительных сетях и в Интернете. 

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

Независимо от версии общими для Unix чертами являются:

	многопользовательский режим со средствами защиты данных от несанкционированного доступа;

	реализация многозадачной обработки в режиме разделения времени;

	переносимость системы путем написания основной части на языке СИ.

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

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

ОС MS DOS – широко использовалась для ПК, построенных на базе процессоров Intel 8088 – 80486.

В настоящее время MS DOS для управления ПК практически не применяется. Однако ее не следует считать полностью исчерпавшей свои возможности и потерявшей актуальность. Низкие требования к аппаратным ресурсам оставляют DOS перспективной для практического использования.

Так в 1997 году компания Caldera начала работы по адаптации DR DOS ( аналог MS DOS) к рынку встроенных ОС мелких высокоточных устройств, присоединяемых к Интернету и Интернет-сетям. К этим устройствам относятся кассовые аппараты, факсы, электронные записные книжки и др.

ОС OS/2 (Operation system/2) является однопользовательской многозадачной ОС предназначенной для работы с МП 80386 и выше (ПК IBM PS и PS/2) OS/2 может одновременно выполнять до 16 программ (каждая из них в своем сегменте памяти), но среди них только одну, подготовленную для MS DOS.

Важнейшими особенностями OS/2 являются:

	наличие многооконного интерфейса пользователя;

	программных интерфейсов для работы с системой баз данных;

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

К недостаткам OS/2 относится в первую очередь сравнительно небольшой объем программных приложений, наработанных к настоящему времени.

ОС Windows – это семейство ОС, включающих: Windows 3.1; Windows for Workgroups 3.11; Windows 95, Windows 98, Windows 2000, Windows XP, Windows 2003,Windows Vista.

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

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

Пользовательский интерфейс Windows 95 прост и удобен. В отличие от оболочки Windows 3 эта операционная система не нуждается в установке на компьютере операционной системы DOS. Она предназначена для установки на настольных ПК и компьютерах блокнотного типа с процессором 486 или Pentium. Рекомендуемый размер оперативной памяти 8-16 Мбайт. 

Windows 98 является развитием Windows 95. Эта версия тесно интегрирована с Web-броузерами Internet Explorer и содержит большое количество драйверов к старым и новым устройствам. Пользователи отмечают упрощенный процесс инсталляции ОС, пониженные по сравнению с Windows NT требования к мощности процессора, объему памяти и дисковому пространству.

Windows NT 5.0 (NT - англ. New Technology) или Windows 2000 – полностью 32-разрядная ОС с приоритетной многозадачностью, улучшенной реализацией работы с памятью и изначально проектировалась со средствами обеспечения надежности, защиты и управления.

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

Семейство Windows 2000 – операционная система для делового использования на самых разнообразных компьютерах – от портативных до серверов. Windows 2000 выпускается в 4–х вариантах:

	Windows 2000 Professional;

	Windows 2000 Server;

	Windows 2000 Advanced Server;

	Windows 2000 Data Center Server.

Эти версии отличаются количеством входящих в поставку служб и программ, степенью поддержки аппаратного обеспечения. Эта ОС является одной из лучших для ведения коммерческой деятельности в Интернете; объединяет присущую Windows 98 простоту использования с присущими Windows NT надежностью, экономичностью и безопасностью.

Windows ХР является продолжением развития ОС Windows 2000. Данная ОС в основном ориентирована на клиентские ПК. Ее основными отличиями являются более высокий уровень надежности, более простая система управления, улучшенный графический интерфейс пользователя.

Windows 2003 – серверная ОС, являющаяся развитием Windows 2000 и обладающая как теми же характеристиками что и Windows XP, так и специфическими особенностями, характерными для ОС, предназначенных для управления локальными и мобильными вычислительными сетями.

Дальнейшим развитием ОС семейства Windows является операционная система Windows Vista.



1.4. Виды прикладного программного обеспечения



Инструментальные программные средства - это программы, которые используются в ходе разработки, корректировки или развития других прикладных или системных программ [10].

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

	редакторы;

	средства компоновки программ;

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

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

	графические пакеты программ и т.п.

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

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

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

	пакеты для решения типовых инженерных, планово-экономических, общенаучных задач;

	пакеты системных программ;

	пакеты для обеспечения систем автоматизированного проектирования и систем автоматизации научных исследований;

	пакеты педагогических программных средств и другие.

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

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

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

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

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

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

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

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



1.4.1. Программные средства работы с текстом

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

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

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

Основные функции текстового редактора:

	обеспечение ввода текста с клавиатуры или из существующего файла;

	редактирование текста (добавление, изменение, удаление или копирование фрагментов текста и т.д.);

	оформление текста (выбор шрифта, выравнивания, установление межстрочного, межабзацного интервалов и т.п.);

	размещение текста на странице (установка размера страницы, полей, отступов; разбиение на колонки и пр.)

	сохранение текста в файле на внешнем носителе или получение твердой копии (печать текста);

	проверка орфографии, подбор синонимов, поиск и замена;

	система подсказок и т.д.

Наиболее распространенные текстовые редакторы: Лексикон, Edit, Слово и дело, Ched, NotePad, Write, Word Pad, Блокнот.

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

	настраиваемое пользователем меню;

	использование контекстного меню;

	сопровождение текста таблицами и проведение в них простейших расчетов;

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

	вставка формул, графиков, диаграмм;

	оформление текста списками, буквицами;

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

	фоновая проверка орфографии, синтаксиса и др.

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

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

Наиболее распространенные текстовые процессоры: Word (Microsoft Office), Word Pro (Lotus SmartSuite), WordPerfect (Perfect Office), WordExpress, Accent, StratusPad – это коммерческие продукты. Существует также альтернативное свободное программное обеспечение для работы с текстом: Emacs, Vim, OpenOffice.org Writer, PolyEdit, Angel Writer и др.

Emacs (Editor MACroS) – текстовый редактор, основу идеологии которого составляют принципы «всё в одном», расширяемости, настраиваемости под пользователя и документированности. Функциональность Emacs можно разделить на три уровня: базовая, основной режим и дополнительные режимы. Сочетание этих трёх уровней позволяет выполнять огромное количество задач (в том числе и не связанных напрямую с редактированием текста) не выходя из редактора. Emacs написан на двух языках: C и Elisp (диалект Лиспа, от Emacs Lisp). При этом сам редактор является интерпретатором Elisp. Пользователи могут сами создавать части Emacs, от отдельных функций до новых основных режимов. При этом можно переопределять любые Elisp-функции, в том числе и те, что являются частью самого редактора.

Vim (сокр. от Vi Improved, произносится Вим) - свободный текстовый редактор. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам. Пользовательский интерфейс Vim'а может работать в чистом текстовом (консольном) режиме; он не совсем интуитивен, так что эффективная работа с редактором требует предварительного обучения. Из главных особенностей редактора - применение двух основных, вручную переключаемых, режимов ввода: командного и текстового. Одно из достоинств редактора Vim - то, что он доступен под множество операционных систем.

OpenOffice.org Writer - текстовый процессор и визуальный редактор HTML, входит в состав OpenOffice.org и являетcя свободным программным обеспечением. Writer похож на Microsoft Word и функциональность этих редакторов примерно равна. Writer также имеет некоторые возможности, отсутствующие в Word, например:

	сохранение документов в формат PDF;

	арифметические расчёты и другие формулы в таблицах;

	возможность создания составных документов;

	возможность защиты отдельных частей документов (разделов) и отдельных ячеек таблиц от изменений;

	поддержка стилей страниц.

Writer позволяет сохранять документы в различных форматах, включая Microsoft Word, RTF, XHTML и OASIS Open Document Format, который является форматом, используемым по умолчанию начиная с версии OpenOffice.org 2.0, а также в формате предыдущих версий Writer. В отличие от таких редакторов, как Microsoft Word и Abiword, в Writer отсутствует проверка грамматики, хотя и присутствует проверка орфографии.

Angel Writer - свободно распространяемый текстовый редактор, позволяющий работать как с простыми текстами, так и с текстами в формате Rich Text. Обладая приятным и интуитивно понятным интерфейсом, Angel Writer компактен и быстр. Он незаменим в повседневной работе над небольшими документами! При работе с записями программа предоставляет в распоряжение настоящий Rich Text - редактор с возможностью чтения, записи и печати текстовых документов в форматах *.txt и *.rtf. Кроме того, реализованы все основные возможности редактирования и форматирования текста. Для облегчения и ускорения работы все команды продублированы "горячими клавишами". Начать работу в редакторе можно без предварительного обучения, так как он разработан в соответствии со стандартами Microsoft Office.

Редакционно-издательские системы (верстка) должны обеспечивать все функции текстового процессора, а также:

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

	воспринимать отсканированные или нарисованные в графических редакторах иллюстрации, созданные на разных платформах ПК, и корректировать их цвета;

	иметь больший набор шрифтов и возможность их графического преобразования (сжатие, растяжение);

	возможность для различного "обтекания" рисунка текстом;

	обеспечивать автоматическое составление оглавления текста, автоматическое оптимальное размещение текста на странице;

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

Полнофункциональные издательские системы - Microsoft Publisher, Corel Ventura и Adobe PageMaker, FrameMaker, QuarkXPress, Ventura Publisher. Издательские системы незаменимы для компьютерной верстки и графики.



1.4.2. Программные средства для вычислительных работ

Электронные таблицы, пакеты прикладных программ (ППП) для статистической обработки данных, специализированные математические ППП. Электронные таблицы (SuperCalc, Excel, Lotus, Quattro Pro, SDSS Spreadsheet, VistaCalc, GS-Calc и др.) относятся к классу систем обработки числовой информации, называемых Spreadsheet. Буквальный перевод термина "spreadsheet" c английского языка означает "расстеленный лист (бумаги)". Области применения электронных таблиц: бухгалтерский и банковский учет; планирование распределения ресурсов; проектно-сметные работы; инженерно-технические расчеты; статистическая обработка больших массивов информации; исследование динамических процессов.

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

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

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

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

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

Самые популярные табличные процессоры - Microsoft Excel, Access и Lotus 1-2-3. В Microsoft Excel автоматизированы многие рутинные операции, специальные шаблоны помогают создавать отчёты, импортировать данные и многое другое.

Lotus 1-2-3 - профессиональный процессор электронных таблиц. Широкие графические возможности и удобный интерфейс пакета позволяют быстро ориентироваться в нём. С его помощью можно создать любой финансовый документ, отчёт для бухгалтерии, составить бюджет, а затем разместить все эти документы в базах данных.

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

Элементами таблицы являются столбцы, строки, ячейки, блоки ячеек. Чаще всего строки пронумерованы (1, 2, 3, 4, ...), а столбцы поименованы латинскими буквами и комбинациями букв (А, В, С, ..., АА, АВ,..., IV). Элемент, находящийся на пересечении столбца и строки, называется ячейкой (клеткой).

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

Каждая ячейка таблицы имеет следующие характеристики: адрес; содержимое; изображение; формат; комментарий.

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

Содержимым ячейки может быть: число (целое со знаком или без (–345), дробное с фиксированной точкой (253,62) или с плавающей точкой (2,5362е + 2)); текст; формула.

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

Формат ячейки – определяется форматом чисел, шрифтом, цветом символов, видом рамки, цветом фона, выравниванием по границам ячейки, наличием защиты ячейки.

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

Преимущества использования ЭТ при решении задач:

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

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

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

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

Помимо рассмотренных выше коммерческих продуктов существует альтернативное свободное программное обеспечение для работы с электронными таблицами: OpenOffice.org Calc, Gnumeric.

Gnumeric - это свободный табличный процессор, поддерживается на GNU/Linux, Mac OS, Microsoft Windows и других ОС. Gnumeric является частью GNOME Office, набора офисных приложений с некоторой долей интеграции. Разработчики стараются обеспечить поддержку полнофункциональных электронных таблиц и простой переход для пользователей и организаций с несвободных программ. Некоторые специалисты утверждают, что он обеспечивает больше функций и намного большую точность вычислений, чем Microsoft Excel. Gnumeric поддерживает систему подключаемых модулей, позволяющая расширять функциональность - добавлять функции, использовать иные форматы ввода-вывода и возможности обработки данных в реальном времени.

OpenOffice.Calc - похож на Microsoft Excel и функциональность этих редакторов примерно равна. Если Calc сравнивать с Excel, то в последнем работать удобнее и быстрее. При работе с программой Calc следует отметить один важный момент: функции в программе названы на английском языке в любой локализованной версии, тогда как в продукте от Microsoft – на русском в русскоязычной и на английском в англоязычной. При работе с диаграммами, во-первых, несмотря на отличную совместимость со многими документами MS Office, Calc отображает диаграммы и графики, созданные в Excel, некорректно. Во-вторых некоторые параметры для редактирования диаграмм недоступны – в частности это касается заливки. Для непосредственно самих полос графика можно задавать заполнение сплошным цветом, градиентом, штриховкой и каким-либо рисунком, но градиент можно выбрать только из предуставленных разработчиками - это достаточно серьёзная недоработка, но с другой стороны, для графиков можно включить прозрачность и тени. Кроме того, можно создавать трёхмерные диаграммы, где позволяется задать любой угол наклона и даже рассчитывается освещение для каждой полоски графика.

Минус программ OpenOffice - некоторая «заторможенность» при сохранении больших документов: виной всему формат файлов этого пакета. Все они сохраняются в виде XML, запакованного в ZIP-архив - преобразование и упаковка занимают достаточно долгое время.

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

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

Математические пакеты (Eureka, Mathcad, Mathcad Professional, Matlab, Maple, Mathematica и др.) позволяют решить практически любую математическую задачу и представить результаты расчетов в табличном или графическом виде. Многие математические пакеты имеют развитые средства построения трехмерных поверхностей, задаваемых с помощью функций.

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

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

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

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


1.4.3. Программные средства работы с графикой

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

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

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

	программы двумерной компьютерной живописи – графические редакторы;

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

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

	программы для двумерного и трехмерного моделирования, применяемые для дизайнерских и инженерных разработок;

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

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

	программы для научной визуализации.

Графические редакторы (Painter, Corel Draw, FreeHand, Picture Man и др.) предназначены преимущественно для просмотра, создания и редактирования плоскостных (двумерных) статичных изображений.

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

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

В данном классе различают следующие категории: 

	растровые редакторы, 

	векторные редакторы 

	3D – редакторы - программные средства для создания и обработки трехмерной графики.

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

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

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

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

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

Редакторы трехмерной графики используют для создания трехмерных композиций. Имеют 2 характерные особенности:

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

	во-вторых, позволяют создавать трехмерную анимацию.

Поэтому редакторы трехмерной графики нередко называют также 3D-аниматорами.

Программы аниматоры (Animator Pro, PowerAnimator, Animation Works Interactive, Animo и др.) могут создавать и работать как с двумерными, так и с трехмерными изображениями. В отличие от традиционной анимации, где каждый кадр рисуется вручную, в компьютерной двумерной анимации значительную часть рутинной работы берет на себя программа. Используя специальные инструменты пользовательского меню таких программ, можно задать движение по определенной траектории (автоматически будут созданы соответствующие промежуточные кадры) или плавно изменить палитру в течение нескольких кадров (например, постепенно затемнить изображение или убрать часть цветов).

Программы двумерного и трехмерного моделирования (AutoCAD, Sketch!, Ray Dream Designer, Crystal 3D Designer, AutoStudio и др.) применяются для дизайнерских и инженерных разработок инженерами-конструкторами, архитекторами, технологами и др.

Программы для научной визуализации (Surfer, Grapher, IRIS Explorer, PV-Wave, Khronos, Data Visualizer, MapViewer и др.) могут быть предназначены для различных целей – от решения проблем муниципального планирования до визуализации солнечных взрывов.

Наиболее часто они применяются для создания поверхностей, описываемых функциями типа z=f(x, y), для построения топографических карт и карт тех процессов, для создания моделей погодных условий и океана и т.п.



1.4.4. Программные средства работы со звуком

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

С появлением в 1989 г. звуковых карт, перед пользователями открылись новые возможности. И дело даже не в том, что на порядок улучшилось качество звука. Появилась звуковая подсистема - комплекс программно-аппаратных средств, предназначенный для:

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

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

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

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

	микширования (смешивания) при записи или воспроизведении сигналов от нескольких источников;

	управления панорамой стереофонического звукового сигнала (кажущимся расположением источников звука) и уровнем сигнала в каждом канале при записи и воспроизведении;

	управления работой внешних электронных музыкальных инструментов через специальный интерфейс MIDI (Musical Instrument Device Interface);

	управление компьютером и ввод текста с помощью микрофона.

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

Наиболее популярными программными средствами для синтеза, обработки и воспроизведения звука являются Adagio, TiMidity, Playmidi, Tracker, Gmod, MikMod, XAudio, S3mod, Nspmod, Yampmod и др.

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

Программы обработки цифрового звука (Cool Editor, Sound Forge, Samplitude, Software Audio Workshop) дают возможность прослушивать выбранные участки, делать вырезки и вставки, амплитудные и частотные преобразования, звуковые эффекты (эхо, реверберацию, фленжеp, дистошн), наложение других оцифровок, изменение частоты оцифровки, генерировать различные виды шумов, синтезировать звук.

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

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

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

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

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

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

Обработка речевой информации включает в себя синтез речи и автоматическое распознавание речи.

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

Разработаны устройства, позволяющие преобразовать письменный текст в соответствующее ему фонемное представление, что позволяет воспроизводить в виде речи произвольный текст, хранящийся в памяти компьютера. Немало усилий было положено на то, чтобы снабдить программы и операционные системы графическим интерфейсом пользователя. Сейчас развивается новое направление – речевой интерфейс пользователя. Голосовые навигаторы (PilotVoice, Listen, Just Voice, Speech Recognizer, QwickSwitchBitWare) управляют программами, в какой-то мере заменяя клавиатуру и мышь.

Растет популярность средств автоматического распознавания речи (Automated Speech Recognition, ASR). Системы ASR (программы диктовки DragonDictate, Office TalkKolvox Communication) преобразуют речь в закодированный "письменный" текст. Для этого производится спектральный анализ оцифрованной речи и определяются при помощи специальных математических методов минимальные звуковые единицы языка – фонемы.

1.4.5. Базы данных

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

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

База данных – множество данных, организованных для быстрого и удобного способа поиска и извлечения [4].

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

В состав СУБД входят:

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

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

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

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

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

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

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

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

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

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

Системы управления базами данных обычно поддерживают какую-нибудь одну из моделей организации данных, т.е. с их помощью можно создать базу данных вполне определенного типа. Наиболее распространены реляционные СУБД. Это такие известные программные средства, как dBASE, Ребус, Lotus, FoxPro, Clipper, Access, Paradox и многие другие.

К СУБД иерархического типа можно отнести многие системы управления файлами, в частности Norton Commander, Far Manager, Диспетчер файлов и пр. Большинство СУБД, предназначенных для создания и ведения библиотечных баз данных, также иерархического типа.

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


2. ЯЗЫКИ ПРОГРАММИРОВАНИЯ



2.1. Языки программирования



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

	машинные;

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

	машинно-независимые (языки высокого уровня).

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

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

Языки высокого уровня делятся на [3]:

	алгоритмические (Basic, Рascal, C и др.), которые предназначены для однозначного описания алгоритмов;

	логические (Рrolog, Lisр и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.

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

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

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

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

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

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

Транслятор (англ. translator - переводчик) - это программа-переводчик, которая преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд [2].

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

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

Компилятор (англ. compiler - составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется [2].

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

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

Интерпретатор (англ. interpreter - истолкователь, устный переводчик) переводит и выполняет программу строка за строкой [2].

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

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

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

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

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

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

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

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

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



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



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

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

	компилятор или интерпретатор;

	интегрированная среда разработки;

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

	обширные библиотеки стандартных программ и функций;

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

	"дружественная" к пользователю диалоговая среда;

	многооконный режим работы;

	мощные графические библиотеки; утилиты для работы с библиотеками

	встроенный ассемблер;

	встроенная справочная служба;

	другие специфические особенности.

Популярные системы программирования – Turbo Basic, Quick Basic, Turbo Pascal, Turbo C.

В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений:

	пакет Borland Delphi (Дельфи) - блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки. Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования.

	пакет Microsoft Visual Basic - удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.

	пакет Borland C++ - одно из самых распространённых средств для разработки DOS и Windows приложений.

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


ЛИТЕРАТУРА



		Акулов О.А. Информатика: учебник / О.А. Акулов, Н.В. Медведев. – М.: Омега-П, 2007. – 270 с.

		Алексеев А.П. Информатика 2007 / А.П. Алексеев. – М.: СОЛОН-ПРЕСС, 2007. – 608 с.

		Вьюхин В.В. Информатика и вычислительная техника: учеб. пособие для инженерных специальностей / В.В. Вьюхин; под ред. В.Н. Ларионова. - М.: Дрофа, 1992. – 286 с.

		Гейн А.Г. Основы информатики и вычислительной техники / А.Г. Гейн. - М.: Просвещение, 1992. – 245 с.

		Информатика: практикум по технологии работы на компьютере / под ред. Н.В. Макаровой. - 2-е изд. - М.: Финансы и статистика, 1998. – 384 с.

		Макарова Н.В. Информатика: практикум по технологии работы на компьютере / Н.В. Макарова, С.Н. Рамин. – М.: Академия, 1997. – 384 с.

		Макарова Н.В. Информатика: учеб. пособие для вузов / Н.В. Макарова, Н.В. Бройдо. – М.: Академия, 2003. – 768 с.

		Могилев А.В. Информатика: учеб. пособие для вузов / А.В. Могилев, Н.И. Пак, Е.К. Хеннер; под ред. Е.К. Хеннера. - М.: Академия, 2000. – 346 с.

		Острейковский В.А. Информатика / В.А. Острейковский. М.: Высш. шк., 2000. – 235 с.

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

		Л.Л. Босова, Н.И. Михайлова. – М.: Бином, 2002. – 400 с.