Информатика как единство науки и технологии

1.

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

1.2 ИСТОРИЯ РАЗВИТИЯ ИНФОРМАТИКИ 
Информатика – молодая научная дисциплина, изучающая вопросы, связанные с поиском, сбором, хранением, преобразованием и использованием информации в самых различных сфе-рах человеческой деятельности. Генетически информатика связана с вычислительной техникой, компьютерными системами и сетями, так как именно компьютеры позволяют порождать, хранить и автоматически перерабатывать информацию в таких количествах, что научный подход к информационным процессам становится одновременно необходимым и возможным. 
До настоящего времени толкование термина «информатика» (в том смысле как он используется в современной научной и методической литературе) еще не является установившимся и общепринятым. Обратимся к истории вопроса, восходящей ко времени появления электронных вычислительных машин. 
После второй мировой войны возникла и начала бурно развиваться кибернетика как наука об общих закономерностях в управлении и связи в различных системах: искусственных, биологических, социальных. Рождение кибернетики принято связывать с опубликованием в 1948 г. американским математиком Норбертом Винером ставшей знаменитой книги «Кибернетика или управление и связь в животном и машине». В этой работе были показаны пути создания общей теории управления и заложены основы методов рассмотрения проблем управления и связи для различных систем с единой точки зрения. Развиваясь одновременно с развитием электронно-вычисли¬тельных машин, кибернетика со временем превращалась в более общую науку о преобразовании информации. Под информацией в кибернетике пони-мается любая совокупность сигналов, воздействий или сведений, которые некоторой системой воспринимаются от окружающей среды (входная информация X), выдаются в окружающую среду (выходная информация Y), а также хранятся в себе (внутренняя, внутрисистемная информация Z), рис. 1.1.

Развитие кибернетики в нашей стране встретило идеологические препятствия. Как писал академик А.И.Берг, «... в 1955-57 гг. и даже позже в нашей литературе были допущены грубые ошибки в оценке значения и возможностей кибернетики. Это нанесло серьезный ущерб разви-тию науки в нашей стране, привело к задержке в разработке многих теоретических положений и даже самих электронных машин». Достаточно сказать, что еще в философском словаре 1959г. издания кибернетика характеризовалась как «буржуазная лженаука». Причиной этому послу-жили, с одной стороны, недооценка новой бурно развивающейся науки отдельными учеными «классического» направления, с другой – неумеренное пустословие тех, кто вместо активной разработки конкретных проблем кибернетики в различных областях спекулировал на полуфан-тастических прогнозах о безграничных возможностях кибернетики, дискредитируя тем самым эту науку. 
Дело к тому же осложнялось тем, что развитие отечественной кибернетики на протяжении многих лет сопровождалось серьезными трудностями в реализации крупных государственных проектов, например, создания автоматизированных систем управления. Однако за это время удалось накопить значительный опыт создания информационных систем и систем управления технико-экономическими объектами. Требовалось выделить из кибернетики здоровое научное и техническое ядро и консолидировать силы для развития нового движения к давно уже стоящим глобальным целям. 
Подойдем сейчас к этому вопросу с терминологической точки зрения. Вскоре вслед за по-явлением термина «кибернетика» в мировой науке стало использоваться англоязычное «Computer Science», а чуть позже, на рубеже шестидесятых и семидесятых годов, французы ввели получивший сейчас широкое распространение термин «Informatique». В русском языке раннее употребление термина «информатика» связано с узко конкретной областью изучения структуры и общих свойств научной информации, передаваемой посредством научной литера-туры. Эта информационно-аналитическая деятельность, совершенно необходимая и сегодня в библиотечном деле, книгоиздании и т.д., уже давно не отражает современного понимания ин-форматики. Как отмечал академик А.П.Ершов, в современных условиях термин информатика «вводится в русский язык в новом и куда более широком значении – как название фундамен-тальной естественной науки, изучающей процессы передачи и обработки информации. При таком толковании информатика оказывается более непосредственно связанной с философскими и общенаучными категориями, проясняется и ее место в кругу "традиционных" академических научных дисциплин». 
Попытку определить, что же такое современная информатика, сделал в 1978г. Междуна-родный конгресс по информатике: «Понятие информатики охватывает области, связанные с разработкой, созданием, использованием и материально-техническим обслуживанием систем обработки информации, включая машины, оборудование, математическое обеспечение, орга-низационные аспекты, а также комплекс промышленного, коммерческого, административного и социального воздействия».

2.

2.1 СТРУКТУРА СОВРЕМЕННОЙ ИНФОРМАТИКИ 
Оставляя в стороне прикладные информационные технологии, опишем составные части «ядра» современной информатики. Каждая из этих частей может рассматриваться как относи-тельно самостоятельная научная дисциплина; взаимоотношения между ними примерно такие же, как между алгеброй, геометрией и математическим анализом в классической математике – все они хоть и самостоятельные дисциплины, но, несомненно, части одной науки. 
Теоретическая информатика – часть информатики, включающая ряд математических разделов. Она опирается на математическую логику и включает такие разделы, как теория алгоритмов и автоматов, теория информации и теория кодирования, теория формальных языков и грамматик, исследование операций и другие. Этот раздел информатики использует математические методы для общего изучения процессов обработки информации. 
Вычислительная техника – раздел, в котором разрабатываются общие принципы по-строения вычислительных систем. Речь идет не о технических деталях и электронных схемах (это лежит за пределами информатики как таковой), а о принципиальных решениях на уровне так называемой архитектуры вычислительных (компьютерных) систем, определяющей состав, назначение, функциональные возможности и принципы взаимодействия устройств. Примеры принципиальных, ставших классическими решений в этой области – неймановская архитектура компьютеров первых поколений, шинная архитектура ЭВМ старших поколений, архитектура параллельной (многопроцессорной) обработки информации. 
Программирование – деятельность, связанная с разработкой систем программного обес-печения. Здесь отметим лишь основные разделы современного программирования: создание системного программного обеспечения и создание прикладного программного обеспечения. Среди системного – разработка новых языков программирования и компиляторов к ним, разра-ботка интерфейсных систем (пример – общеизвестная операционная оболочка и система Win-dows). Среди прикладного программного обеспечения общего назначения самые популярные – системы обработки текстов, электронные таблицы (табличные процессоры), системы управле-ния базами данных. В каждой области предметных приложений информатики существует мно-жество специализированных прикладных программ более узкого назначения. 
Информационные системы – раздел информатики, связанный с решением вопросов по анализу потоков информации в различных сложных системах, их оптимизации, структурировании, принципах хранения и поиска информации. Информационно-справочные системы, информационно-поисковые системы, гигантские современные глобальные системы хранения и поиска информации (включая широко известный Internet) привлекают внимание все большего круга пользователей. Без теоретического обоснования принципиальных решений в океане информации можно просто захлебнуться. Известным примером решения проблемы на глобальном уровне может служить гипертекстовая поисковая система WWW, а на значительно более низком уровне – справочная система, к услугам которой мы прибегаем, набрав телефонный номер 09. 
Искусственный интеллект – область информатики, в которой решаются сложнейшие проблемы, находящиеся на пересечении с психологией, физиологией, лингвистикой и другими науками. Как научить компьютер мыслить подобно человеку? Поскольку мы далеко не все зна-ем о том, как мыслит человек, исследова¬ния по искусственному интеллекту, несмотря на полу-вековую историю, все еще не привели к решению ряда принципиальных проблем. Основные направления разработок, относящихся к этой области, – моделирование рассуждений, компью-терная лингвистика, машинный перевод, создание экспертных систем, распознавание образов и другие. От успехов работ в области искусственного интеллекта зависит, в частности, решение такой важнейшей прикладной проблемы, как создание интеллектуальных интерфейсных систем взаимодействия человека с компьютером, благодаря которым это взаимодействие будет походить на межчеловеческое и станет более эффективным.

2.2 МЕСТО ИНФОРМАТИКИ В СИСТЕМЕ НАУК 
Рассмотрим место науки информатики в традиционно сложившейся системе наук (техни-ческих, естественных, гуманитарных и т.д.). В частности, это позволило бы найти место обще-образовательного курса информатики в ряду других учебных предметов. 
Напомним, что по определению А.П.Ершова информатика – «фундаментальная естест-венная наука». Академик Б.Н.Наумов определял информатику «как естественную науку, изу-чающую общие свойства информации, процессы, методы и средства ее обработки (сбор, хране-ние, преобразование, перемещение, выдача)». 
Уточним, что такое фундаментальная наука и что такое естественная наука. К фунда-ментальным принято относить те науки, основные понятия которых носят общенаучный харак-тер, используются во многих других науках и видах деятельности. Нет, например, сомнений в фундаментальности столь разных наук как математика и философия. В этом же ряду и инфор-матика, так как понятия «информация», «процессы обработки информации» несомненно имеют общенаучную значимость. Естественные науки – физика, химия, биология и другие – имеют дело с объективными сущностями мира, существующими независимо от нашего сознания. Отнесение к ним информатики отражает единство законов обработки информации в системах самой разной природы – искусственных, биологических, общественных. 
Однако многие ученые подчеркивают, что информатика имеет характерные черты и дру-гих групп наук – технических и гуманитарных (или общественных). 
Черты технической науки придают информатике ее аспекты, связанные с созданием и функционированием машинных систем обработки информации. Так, академик А.А.Дородницын определяет состав информатики как «три неразрывно и существенно связан-ные части: технические средства, программные и алгоритмические». Первоначальное наимено-вании школьного предмета «Основы информатики и вычислительной техники» в настоящее время изменено на «Информатика» (включающее в себя разделы, связанные с изучением тех-нических, программных и алгоритмических средств). Науке информатике присущи и некоторые черты гуманитарной (общественной) науки, что обусловлено ее вкладом в развитие и совершенствование социальной сферы. Таким образом, информатика является комплексной, междисциплинарной отраслью научного знания.

4

4.1 Формы представления, методы оценки и способы передачи информации

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

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

Семантический аспект передает смысловое содержание информации и соотносит ее с ранее имевшейся информацией (рис. 2).



Рис. 2. График семантической меры: SП – тезаурусная мера получателя; Ic – семантическое количество информации



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



где Р0 – вероятность достижения цели до получения информации; Р1 – вероятность достижения цели после получения информации; IП – прагматическое количество информации.



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

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

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

2. Динамический диапазон – чем шире диапазон частот, тем больше информации можно пропустить в единицу времени.

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

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

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

Частотный диапазон:

– 16–20 000 Гц – различает высококлассный музыкант;

– 30–15 000 Гц – отличное (50–10 000 Гц – хорошее) воспроизведение музыки;

– 300—3400 Гц – отличное качество связи для разговора по телефону.

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



Например, динамический диапазон телефонной речи составляет 43 дБ; оркестра – 56 дБ; истребителя и рок-группы – 120 дБ. Уровень шума при телефонной связи должен быть не менее чем на 34 дБ ниже средней мощности полезного сигнала. Допустимая величина помехи при музыкальной передаче должна быть снижена еще больше – до 44–47 дБ.

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

Частотный диапазон можно определить, если задаться временем, за которое мы хотим передать изображение с необходимым нам качеством. Проиллюстрируем это на примере передачи фототелеграммы с помощью телеграфа. Пусть самая маленькая точка на фототелеграмме будет равна 0,25 мм, т. е. разрешающая способность составляет 4 линии на 1 мм. Тогда на стандартном листе бумаги (формат А4) размером 210 х 300 мм можно разместить: 1 мм х 1 мм = 4 х 4 = 16 точек; 210 х 300 х 16 >> 1 000 000 точек. Передавая телеграмму за 3 мин (180 с) и учитывая, что наибольшая частота сигнала возникает при последовательном чередовании самых маленьких (элементарных) белых и темных точек, получим предельную частоту (1 000 000: 180): 2 = 2780 Гц. Двойка в делителе означает, что период предельной частоты равен времени прохождения лучом двух соседних точек – светлой и темной. Самая низкая частота возникает в случае, если на фототелеграмме изображен простейший рисунок – одна половина листа белая, а другая – черная. В результате период наименьшей частоты равен времени прохождения лучом одной строки целиком. Эта наименьшая частота равна числу строк (300 х 4 = 1200), деленному на время передачи листа (180 с), т. е. 6,7 Гц.

В отличие от фототелеграфа, телевидение передает подвижные изображения и смена кадров здесь осуществляется 50 раз в секунду. Если считать, что каждый кадр телевизионного изображения – это своеобразная фототелеграмма, легко вычислить частотный диапазон телевизионного изображения. Согласно одному из стандартов, телевизионное изображение имеет 625 горизонтальных строк и размер кадра по высоте относится к размеру по ширине как 3: 4. Если каждую элементарную точку считать квадратной, то общее их число составит 625 х 625 х 3/4 = 52 х 104. Учитывая, что число кадров в секунду равно 50 и что наивысшая частота определяется чередованием черных и светлых элементарных точек, предельная частота окажется равной 52 х 104 х 50/2 – 13 х 106 Гц. Чтобы уменьшить эту весьма большую частоту, в каждом кадре передается только половина строк. Из-за инерции нашего зрения для глаза это оказывается незаметным, зато предельная частота уменьшается вдвое. Самая низкая частота, необходимая для передачи телевизионного изображения, – это частота смены кадров, равная 50 Гц. Таким образом, для передачи телевизионного изображения требуется диапазон частот от 50 Гц до 6,5 МГц.

Динамический диапазон как в фототелеграфном, так и в телевизионном изображении почти одинаков. На экране телевизора различимы 8—10 четко разделенных градаций яркости. Установлено, что человеческий глаз различает изменения яркости, если интенсивность света двух соседних ступенек различается примерно в два раза (что в логарифмическом отсчете соответствует 3 дБ). Отсюда при 8—10 градациях динамический диапазон телевизионного изображения составит 24–30 дБ. Для хорошего качества принимаемого телевизионного изображения уровень помех должен быть меньше уровня сигнала по крайней мере на 40 дБ.

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

Рассмотрим взаимосвязь между характеристиками «частотный диапазон» и «скорость передачи данных». В теории электрической связи установлены закономерности, связывающие между собой длительность импульса тока во времени и спектральный состав этого импульса. Теоретически спектр частот импульса, имеющего конечную протяженность во времени t с, бесконечен. Однако практически основная энергия спектральных компонентов сосредоточена в диапазоне частот, не превышающих значение 1/t Гц. Но 1/t – это скорость передачи бинарной информации, исчисляемая количеством бит в секунду. Таким образом, на каждый бит в секунду требуется полоса в 1 Гц.

Теперь рассмотрим динамический диапазон. При передаче бинарной информации средняя мощность сигнала неизменна. Следовательно, нет перепада уровней. Соотношение сигнал/помеха зависит от требуемой верности приема. Если при передаче бинарных сигналов допустить возможность в среднем одной ошибки на 105 бит, то при так называемом тепловом шуме соотношение сигнал/помеха должно составлять 18,8 дБ, а при одной ошибке на 106 бит – 19,7 дБ. При импульсных помехах это соотношение зависит от частоты появления импульсов, их амплитуды и других параметров и должно подсчитываться отдельно для каждого случая.

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

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

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

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

– структурная, или логарифмическая, – характеризующая информацию по объему (мера Хартли);

– вероятностная, или статистическая, – характеризующая информацию по объему и новизне (мера Шеннона).

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



Если до получения информации о сигнале вероятность появления отдельных сообщений для наблюдателя равна:



то в этом случае источник дискретных сообщений выдает максимальное количество информации:



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



где δ – относительная погрешность квантования по уровню; т – число уровней.



В 1948 году американский инженер и математик К.Шеннон предложил формулу вычисления количества информации для событий с различными вероятностями:



где Н – количество информации; Р – количество возможных событий; xi – вероятности отдельных событий; i принимает значения от 1 до К.

5

Виды информации. Аналоговая и цифровая информация

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

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

Человек так устроен, что воспринимает информацию с помощью органов чувств.

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

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


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

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



5.2

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

Теперь остановимся на основных информационных процессах.

1. Поиск. 
Поиск информации - это извлечение хранимой информации. 
Методы поиска информации:

  непосредственное наблюдение;

  общение со специалистами по интересующему вас вопросу;

  чтение соответствующей литературы;

  просмотр видео, телепрограмм;

  прослушивание радиопередач, аудиокассет;

  работа в библиотеках и архивах;

  запрос к информационным системам, базам и банкам компьютерных данных;

  другие методы.

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

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

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



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

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

Примеры обработки информации

Примеры

Входная информация

Выходная информация

Правило









Таблица умножения

Множители

Произведение

Правила арифметики









Определение времени полета рейса "Москва-Ялта"

Время вылета из Москвы и время прилета в Ялту

Время в пути

Математическая формула









Отгадывание слова в игре "Поле чудес"

Количество букв в слове и тема

Отгаданное слово

Формально не определено









Получение секретных сведений

Шифровка от резидента

Дешифрованный текст

Свое в каждом конкретном случае









Постановка диагноза болезни

Жалобы пациента + результаты анализов

Диагноз

Знание + опыт врача











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

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



5. Использование. 
Информация используется при принятии решений.

  Достоверность, полнота, объективность полученной информации обеспечат вам возможность принять правильное решение.

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

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

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

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

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

  понимание закономерностей информационных процессов;

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

  технические навыки взаимодействия с компьютером;

  эффективное применение компьютера как инструмента;

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

  применение полученной информации в практической деятельности.

6. Защита. 
Защитой информации называется предотвращение:

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

  непредумышленного или недозволенного использования, изменения или разрушения информации. 
Более подробно о защите информации мы остановимся далее.

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

6.

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



Вид информации

Двоичный код

Числовая

10110011

Текстовая



Графическая



Звуковая



Видео





Каждая цифра машинного двоичного кода несет количество информации равное одному биту.

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

Кодирование текстовой информации

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

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

К = 2I = 28 = 256,

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

Суть кодирования заключается в том, что каждому символу ставят в соответствие двоичный код от 00000000 до 11111111 или соответствующий ему десятичный код от 0 до 255.

Необходимо помнить, что в настоящее время для кодировки русских букв используют пять различных кодовых таблиц (КОИ - 8, СР1251, СР866, Мас, ISO), причем тексты, закодированные при помощи одной таблицы не будут правильно отображаться в другой кодировке. Наглядно это можно представить в виде фрагмента объединенной таблицы кодировки символов.

Одному и тому же двоичному коду ставится в соответствие различные символы.



Двоичный код

Десятичный код

КОИ8

СР1251

СР866

Мас

ISO

11000010

194

б

В

-

-

Т



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

Начиная с 1997 г. последние версии Microsoft Windows&Office поддерживают новую кодировку Unicode, которая на каждый символ отводит по 2 байта, а, поэтому, можно закодировать не 256 символов, а 65536 различных символов.

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

Для определения числового кода символа в кодировке Windows (СР1251) нужно при помощи мыши или клавиш управления курсором выбрать нужный символ, затем щелкнуть по кнопке Клавиша. После этого на экране появляется диалоговая панель Настройка, в которой в нижнем левом углу содержится десятичный числовой код выбранного символа.

Задачи.

1. Два текста содержат одинаковое количество символов. Первый текст записан на русском языке, а второй на языке племени нагури, алфавит которого состоит из 16 символов. Чей текст несет большее количество информации?

Решение.

I = К * а (информационный объем текста равен произведению числа символов на информационный вес одного символа).
Т.к. оба текста имеют одинаковое число символов (К), то разница зависит от информативности одного символа алфавита (а).
2а1 = 32, т.е. а1 = 5 бит,
2а2 = 16, т.е. а2 = 4 бит.
I1 = К * 5 бит, I2 = К * 4 бит.
Значит, текст, записанный на русском языке в 5/4 раза несет больше информации.

2. Объем сообщения, содержащего 2048 символов, составил 1/512 часть Мбайта. Определить мощность алфавита.

Решение.

I = 1/512 * 1024 * 1024 * 8 = 16384 бит. - перевели в биты информационный объем сообщения.
а = I / К = 16384 /1024 =16 бит - приходится на один символ алфавита. 
216 = 65536 символов - мощность использованного алфавита.
Именно такой алфавит используется в кодировке Unicode, который должен стать международным стандартом для представления символьной информации в компьютере.

Кодирование графической информации

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

Особенно интенсивно технология обработки графической информации с помощью компьютера стала развиваться в 80-х годах. Графическую информацию можно представлять в двух формах: аналоговой или дискретной. Живописное полотно, цвет которого изменяется непрерывно - это пример аналогового представления, а изображение, напечатанное при помощи струйного принтера и состоящее из отдельных точек разного цвета - это дискретное представление. Путем разбиения графического изображения (дискредитации) происходит преобразование графической информации из аналоговой формы в дискретную. При этом производится кодирование - присвоение каждому элементу конкретного значения в форме кода. При кодировании изображения происходит его пространственная дискредитация. Ее можно сравнить с построением изображения из большого количества маленьких цветных фрагментов (метод мозаики). Все изображение разбивается на отдельные точки, каждому элементу ставится в соответствие код его цвета. При этом качество кодирования будет зависеть от следующих параметров: размера точки и количества используемых цветов. Чем меньше размер точки, а, значит, изображение составляется из большего количества точек, тем выше качество кодирования. Чем большее количество цветов используется (т. е. точка изображения может принимать больше возможных состояний), тем больше информации несет каждая точка, а, значит, увеличивается качество кодирования. Создание и хранение графических объектов возможно в нескольких видах - в виде векторного, фрактального или растрового изображения. Отдельным предметом считается 3D (трехмерная) графика, в которой сочетаются векторный и растровый способы формирования изображений. Она изучает методы и приемы построения объемных моделей объектов в виртуальном пространстве. Для каждого вида используется свой способ кодирования графической информации.

Растровое изображение.

При помощи увеличительного стекла можно увидеть, что черно-белое графическое изображение, например из газеты, состоит из мельчайших точек, составляющих определенный узор - растр. Во Франции в 19 веке возникло новое направление в живописи - пуантилизм. Его техника заключалась в том, что на холст рисунок наносился кистью в виде разноцветных точек. Также этот метод издавна применяется в полиграфии для кодирования графической информации. Точность передачи рисунка зависит от количества точек и их размера. После разбиения рисунка на точки, начиная с левого угла, двигаясь по строкам слева направо, можно кодировать цвет каждой точки. Далее одну такую точку будем называть пикселем (происхождение этого слова связано с английской аббревиатурой "picture element" - элемент рисунка). Объем растрового изображения определяется умножением количества пикселей (на информационный объем одной точки, который зависит от количества возможных цветов. Качество изображения определяется разрешающей способностью монитора. Чем она выше, то есть больше количество строк растра и точек в строке, тем выше качество изображения. В современных ПК в основном используют следующие разрешающие способности экрана: 640 на 480, 800 на 600, 1024 на 768 и 1280 на 1024 точки. Так как яркость каждой точки и ее линейные координаты можно выразить с помощью целых чисел, то можно сказать, что этот метод кодирования позволяет использовать двоичный код для того чтобы обрабатывать графические данные.

Если говорить о черно-белых иллюстрациях, то, если не использовать полутона, то пиксель будет принимать одно из двух состояний: светится (белый) и не светится (черный). А так как информация о цвете пикселя называется кодом пикселя, то для его кодирования достаточно одного бита памяти: 0 - черный, 1 - белый. Если же рассматриваются иллюстрации в виде комбинации точек с 256 градациями серого цвета (а именно такие в настоящее время общеприняты), то достаточно восьмиразрядного двоичного числа для того чтобы закодировать яркость любой точки. В компьютерной графике чрезвычайно важен цвет. Он выступает как средство усиления зрительного впечатления и повышения информационной насыщенности изображения. Как формируется ощущение цвета человеческим мозгом? Это происходит в результате анализа светового потока, попадающего на сетчатку глаза от отражающих или излучающих объектов. Принято считать, что цветовые рецепторы человека, которые еще называют колбочками, подразделяются на три группы, причем каждая может воспринимать всего один цвет - красный, или зеленый, или синий.

Цветовые модели.

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

1) Модель HSB характеризуется тремя компонентами: оттенок цвета(Hue), насыщенность цвета (Saturation) и яркость цвета (Brightness). Можно получить большое количество произвольных цветов, регулируя эти компоненты. Эту цветовую модель лучше применять в тех графических редакторах, в которых изображения создают сами, а не обрабатывают уже готовые. Затем созданное свое произведение можно преобразовать в цветовую модель RGB, если ее планируется использовать в качестве экранной иллюстрации, или CMYK, если в качестве печатной, Значение цвета выбирается как вектор, выходящий из центра окружности. Направление вектора задается в угловых градусах и определяет цветовой оттенок. Насыщенность цвета определяется длиной вектора, а яркость цвета задается на отдельной оси, нулевая точка которой имеет черный цвет. Точка в центре соответствует белому (нейтральному) цвету, а точки по периметру - чистым цветам.

2) Принцип метода RGB заключается в следующем: известно, что любой цвет можно представить в виде комбинации трех цветов: красного (Red, R), зеленого (Green, G), синего (Blue, B). Другие цвета и их оттенки получаются за счет наличия или отсутствия этих составляющих.По первым буквам основных цветов система и получила свое название - RGB. Данная цветовая модель является аддитивной, то есть любой цвет можно получить сочетание основных цветов в различных пропорциях. При наложении одного компонента основного цвета на другой яркость суммарного излучения увеличивается. Если совместить все три компоненты, то получим ахроматический серый цвет, при увеличении яркости которого происходит приближение к белому цвету.

При 256 градациях тона (каждая точка кодируется 3 байтами) минимальные значения RGB (0,0,0) соответствуют черному цвету, а белому - максимальные с координатами (255, 255, 255). Чем больше значение байта цветовой составляющей, тем этот цвет ярче. Например, темно-синий кодируется тремя байтами ( 0, 0, 128), а ярко-синий (0, 0, 255).

3) Принцип метода CMYK. Эта цветовая модель используется при подготовке публикаций к печати. Каждому из основных цветов ставится в соответствие дополнительный цвет (дополняющий основной до белого). Получают дополнительный цвет за счет суммирования пары остальных основных цветов. Значит, дополнительными цветами для красного является голубой (Cyan,C) = зеленый + синий = белый - красный, для зеленого - пурпурный (Magenta, M) = красный + синий = белый - зеленый, для синего - желтый (Yellow, Y) = красный + зеленый = белый - синий. Причем принцип декомпозиции произвольного цвета на составляющие можно применять как для основных, так и для дополнительных, то есть любой цвет можно представить или в виде суммы красной, зеленой, синей составляющей или же в виде суммы голубой, пурупурной, желтой составляющей. В основном такой метод принят в полиграфии. Но там еще используют черный цвет (BlacК, так как буква В уже занята синим цветом, то обозначают буквой K). Это связано с тем, что наложение друг на друга дополнительных цветов не дает чистого черного цвета.

Различают несколько режимов представления цветной графики:
         а) полноцветный (True Color);
         б) High Color;
         в) индексный.

При полноцветном режиме для кодирования яркости каждой из составляющих используют по 256 значений (восемь двоичных разрядов), то есть на кодирование цвета одного пикселя (в системе RGB) надо затратить 8*3=24 разряда. Это позволяет однозначно определять 16,5 млн цветов. Это довольно близко к чувствительности человеческого глаза. При кодировании с помощью системы CMYK для представления цветной графики надо иметь 8*4=32 двоичных разряда.

Режим High Color - это кодирование при помощи 16-разрядных двоичных чисел, то есть уменьшается количестко двоичных разрядов при кодировании каждой точки. Но при этом значительно уменьшается диапазон кодируемых цветов.

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

Соответствие между количеством отображаемых цветов (К) и количеством бит для их кодировки (а) находиться по формуле:

К = 2а.



А

К

Достаточно для…

4

24 = 16



8

28 = 256

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

16 (High Color)

216 = 65536

Изображений, которые на картинках в журналах и на фотографиях

24 (True Color)

232 = 16 777 216

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



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

Vmin = M * N * a.

Двоичный код восьмицветной палитры.



Цвет

Составляющие



к

З

С

Красный

1

0

0

Зеленый

0

1

0

Синий

0

0

1

Голубой

0

1

1

Пурпурный

1

0

1

Желтый

1

1

0

Белый

1

1

1

Черный

0

0

0



Шестнадцатицветная палитра позволяет увеличить количество используемых цветов. Здесь будет использоваться 4-разрядная кодировка пикселя: 3 бита основных цветов + 1 бит интенсивности. Последний управляет яркостью трех базовых цветов одновременно (интенсивностью трех электронных пучков).

Двоичный код шестнадцатицветной палитры.



Цвет

Составляющие



к

З

С

Интенс

Красный

1

0

0

0

Зеленый

0

1

0

0

Синий

0

0

1

0

Голубой

0

1

1

0

Пурпурный

1

0

1

1

Ярко-желтый

1

1

0

1

Серый(белый)

1

1

1

0

Темно-серый

0

0

0

1

Ярко-голубой

0

1

1

1

Ярко-синий

0

0

1

0

…









Ярко-белый

1

1

1

1

Черный

0

0

0

0



При раздельном управлении интенсивностью основных цветов количество получаемых цветов увеличивается. Так для получения палитры при глубине цвета в 24 бита на каждый цвет выделяется по 8 бит, то есть возможны 256 уровней интенсивности (К = 28).

Двоичный код 256-цветной палитры.



Цвет

Составляющие



K

З

С

Красный

11111111

00000000

00000000

Зеленый

00000000

11111111

00000000

Синий

00000000

00000000

11111111

Голубой

00000000

11111111

11111111

Пурпурный

11111111

00000000

11111111

Желтый

11111111

11111111

00000000

Белый

11111111

11111111

11111111

Черный

00000000

00000000

00000000



Векторное и фрактальное изображения.

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

К программным средствам создания и обработки векторной графики относятся следующие ГР: CorelDraw, Adobe Illustrator, а также векторизаторы (трассировщики) - специализированные пакеты преобразования растровых изображений в векторные.

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

Задачи.

Известно, что видеопамять компьютера имеет объем 512 Кбайт. Разрешающая способность экрана 640 на 200. Сколько страниц экрана одновременно разместится в видеопамяти при палитре
         а) из 8 цветов;
         б) 16 цветов;
         в) 256 цветов?

Сколько бит требуется, чтобы закодировать информацию о 130 оттенках? Нетрудно подсчитать, что 8 (то есть 1 байт), поскольку при помощи 7 бит можно сохранить номер оттенка о 0 до 127, а 8 бит хранят от 0 до 255. Легко видеть, что такой способ кодирования неоптимален: 130 заметно меньше 255. Подумайте, как уплотнить информацию о рисунке при его записи в файл, если известно, что 
         а) в рисунке одновременно содержится только 16 цветовых оттенков из 138 возможных;
         б) в рисунке присутствуют все 130 оттенков одновременно, но количество точек, закрашенных разными оттенками, сильно различаются.

Решение.

а) очевидно, что для хранения информации о 16 оттенках достаточно 4 бита (половина байта). Однако так как эти 16 оттенков выбраны из 130, то они могут иметь номера, не умещающиеся в 4 битах. Поэтому воспользуемся методом палитр. Назначим 16 используемым в нашем рисунке оттенкам свои “локальные” номера от 1 до 15 и закодируем весь рисунок из расчета 2 точки на байт. А затем допишем к этой информации (в конец содержащего ее файла) таблицу соответствия, состоящую из 16 пар байтов с номерами оттенков: 1 байт - наш “локальный” номер в данном рисунке, второй - реальный номер данного оттенка. (когда вместо последнего используется закодированная информация о самом оттенке, например, сведения об яркости свечения “электроннык пушек” Red, Green, Blue электронно-лучевой трубки, то такая таблица и будет представлять собой палитру цветов). Если рисунок достаточно велик, выигрыш в объеме полученного файла будет значительным;
б) попытаемся реализовать простейший алгоритм архивации информации о рисунке. Назначим трем оттенкам, которыми закрашено минимальное количество точек, коды 128 - 130, а остальным оттенкам - коды 1 -127. Будем записывать в файл (котрый в этом случае представлыет собой не последовательность байтов, а сплошной битовый поток) семибитные коды для оттенков с номерами от 1 до 127. Для оставшихся же трех оттенков в битовом потоке будем записывать число-признак - семибитный 0 - и сразу за ним двухбитный “локальный” номер, а в конце файла добавим таблицу соответствия “локальных”и реальных номеров. Так как оттенки с кодами 128 - 130 встречаются редко, то семибитных нулей будет немного.

Заметим, что постановка вопросов в данной задаче не исключает и другие варианты решения, без привязки к цветовому составу изображения - архивацию:
         а) на основе выделения последовательности точек, закрашенных одинаковыми оттенками и замены каждой из этих последовательностей на пару чисел (цвет),(количество) (этот принцип лежит в основе графического формата РСХ);
         б) путем сравнения пиксельных строк (запись номеров оттенков точек первой страницы целиком, а для последующих строк запись номеров оттенков только тех точек, оттенки которых отличаются от отенков точек, стоящих в той же позиции в предыдущей строке, - это основа формата GIF);
         в) с помощью фрактального алгоритма упаковки изображений (формат YPEG). (ИО 6,1999)

Кодирование звуковой информации

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

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

Колебание, которое имеет наиболее низкую частоту, называют основным тоном, другие - обертонами.

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

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

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

Условно его можно разбить на несколько видов:

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

К первой группе относятся все служебные программы операционной системы. Так, например, win 95 и 98 имеют свои собственные программы микшеры и утилиты для воспроизведения/записи звука, проигрывания компакт-дисков и стандартных MIDI - файлов. Установив звуковую плату можно при помощи этих программ проверить ее работоспособность. Например, программа Фонограф предназначена для работы с wave-файлами (файлы звукозаписи в формате Windows). Эти файлы имеют расширение .WAV . Эта программа предоставляет возможность воспроизводить, записывать и редактировать звукозапись приемами, аналогичными приемам работы с магнитофоном. Желательно для работы с Фонографом подключить микрофон к компьютеру. Если необходимо сделать звукозапись, то нужно определиться с качеством звука, так как именно от нее зависит продолжительность звукозаписи. Возможная продолжительность звучания тем меньше, чем выше качество записи. При среднем качестве записи можно удовлетворительно записывать речь, создавая файлы продолжительностью звучания до 60 секунд. Примерно 6 секунд будет продолжительность записи, имеющая качество музыкального компакт - диска.

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

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

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

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

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

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

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

Цифро-аналоговое и аналого-цифровое преобразование звуковой информации.

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

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

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

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

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

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

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

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

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

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

В новом формате компакт-дисков Audio DVD за одну секунду сигнал измеряется 96 000 раз, т.е. применяют частоту семплирования 96 кГц. Для экономии места на жестком диске в мультимедийных приложениях довольно часто применяют меньшие частоты: 11, 22, 32 кГц. Это приводит к уменьшению слышимого диапазона частот, а, значит, происходит сильное искажение того, что слышно.

Если в виде графика представить один и тот же звук высотой 1 кГц (нота до седьмой октавы фортепиано примерно соответствует этой частоте), но семплированный с разной частотой (нижняя часть синусоиды не показана на всех графиках), то будут видны различия. Одно деление на горизонтальной оси , которая показывает время, соответствует 10 семплам. Масштаб взят одинаковый см. приложения рисунок 1.13). Можно видеть, что на частоте 11 кГц примерно пять колебаний звуковой волны приходится на каждые 50 семплов, то есть один период синусоиды отображается всего при помощи 10 значений. Это довольно неточная передача. В то же время, если рассматривать частоту оцифровки 44 кГц, то на каждый период синусоиды приходится уже почти 50 семплов. Это позволяет получить сигнал хорошего качества.

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

Для кодирования значения амплитуды используют принцип двоичного кодирования. Звуковой сигнал должен быть представленным в виде последовательности электрических импульсов (двоичных нулей и единиц). Обычно используют 8, 16-битное или 20-битное представление значений амплитуды. При двоичном кодировании непрерывного звукового сигнала его заменяют последовательностью дискретных уровней сигнала. От частоты дискредитации (количества измерений уровня сигнала в единицу времени) зависит качество кодирования. С увеличением частоты дискредитации увеличивается точность двоичного представления информации. При частоте 8 кГц (количество измерений в секунду 8000) качество семплированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 кГц (количество измерений в секунду 48000) - качеству звучания аудио- CD.

Если использовать 8-битное кодирование, то можно достичь точность изменения амплитуды аналогового сигнала до 1/256 от динамического диапазона цифрового устройства (28 = 256).

Если использовать 16-битное кодирование для представления значений амплитуды звукового сигнала, то точность измерения возрастет в 256 раз.

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

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



а

К

Применение

8

256

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

16

65536

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

20

1048576

Где требуется высококачественная оцифровка звука.



Но эти данные истинны только для того сигнала, чей максимальный уровень 0 дБ. Если нужно семплировать сигнал с уровнем 6 дБ с разрядностью 16 бит, то для кодирования его амплитуды будет оставаться на самом деле только 15 бит. Если сигнал с уровнем 12 дБ, то 14 бит. С увеличением уровня сигнала увеличивается разрядность его оцифровки, а значит , уменьшается уровень нелинейных искажений (В технической литературе существует термин «шум квантования»), в свою очередь каждые 6 дБ уменьшающие уровень будут «съедать» 1 бит.

В настоящее время появился новый бытовой цифровой формат Audio DVD, который использует разрядность 24 бита и частоту семплирования 96 кГц. С его помощью можно избежать выше рассмотренного недостатка 16-битного кодирования.

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

Задачи. 

1. Подсчитать, сколько места будет занимать одна минута цифрового звука на жестком диске или любом другом цифровом носителе, записанного с частотой
      а) 44.1 кГц;
      б) 11 кГц;
      в) 22 кГц;
      г) 32 кГц
и разрядностью 16 бит.

Решение. 

а) Если записывают моносигнал с частотой 44.1 кГц, разрядностью 16 бит (2 байта), то каждую минуту аналого-цифровой преобразователь будет выдавать 441000 * 2 * 60 = 529000 байт (примерно 5 Мб) данных об амплитуде аналогового сигнала, который в компьютере записываются на жесткий диск.
Если записывают стереосигнал, то 1058000 байт (около 10 Мб)
б) для частот 11, 22, 32 кГц расчеты производятся аналогично. 

2. Какой информационный объем имеет моноаудиофайл, длительность звучания которого 1 секунда, при среднем качестве звука (16 бит, 24 кГц)?

Решение.

16 бит * 24000 = 384000 бит = 48000 байт = 47 кБайт

3. Рассчитайте объем стереоаудиофайла длительностью 20 секунд при 20-битном кодировании и частоте дискредитации 44.1 кГц.

Решение.

20 бит * 20 * 44100 * 2 = 35280000 бит = 4410000 байт = 4.41 Мб 

4. Определить количество уровней звукового сигнала при использовании устаревших 8-битных звуковых карт.

Решение.

К = 28 = 256.

Самостоятельная работа ( а) - первый вариант, б) - второй).

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

2. Что называется 
      а) частотой дискредитации (семплирования);
      б) семплом.

3. Опишите
      а) в чем заключается принцип двоичного кодирования звука;
      б) от каких параметров зависит качество двоичного кодирования звука.

6.2

Международные системы байтового кодирования

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

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

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

Попробуем подсчитать наиболее короткую длину такой комбинации с точки зрения человека, заинтересованного в использовании лишь одного естественного алфавита – скажем, английского: 26 букв следует умножить на 2 (прописные и строчные) – итого 52; 10 цифр, будем считать, 10 знаков препинания; 10 разделительных знаков (три вида скобок, пробел и др.), знаки привычных математических действий, несколько специальных символов (типа #, $, & и др.) – итого ~ 100. Точный подсчет здесь не нужен, поскольку нам предстоит решить простейшую задачу: имея, скажем, равномерный код из групп по N двоичных знаков, сколько можно образовать разных кодовых комбинаций. Ответ очевиден К = 2N. Итак, при N = 6 К = 64 – явно мало, при N = 7 К = 128 – вполне достаточно.

Однако, для кодирования нескольких (хотя бы двух) естественных алфавитов (плюс все отмеченные выше знаки) и этого недостаточно. Минимально достаточное значение N в этом случае 8; имея 256 комбинаций двоичных символов, вполне можно решить указанную задачу. Поскольку 8 двоичных символов составляют 1 байт, то говорят о системах "байтового” кодирования.

Наиболее распространены две такие системы: EBCDIC (Extended Binary Coded Decimal Interchange Code) и ASCII (American Standard Information Interchange).

Первая – исторически тяготеет к "большим” машинам, вторая чаще используется на мини- и микро-ЭВМ (включая персональные компьютеры). Ознакомимся подробнее именно с ASCII, созданной в 1963 г.

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

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

Для представления букв русского языка (кириллицы) в рамках ASCII было предложено несколько версий. Первоначально был разработан ГОСТ под названием КОИ-7, оказавшийся по ряду причин крайне неудачным; ныне он практически не используется.

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

Знакам алфавита ПЭВМ ставятся в соответствие шестнадцатиричные числа по правилу: первая – номер столбца, вторая – номер строки. Например: английская 'А' – код 41, русская 'и' – код А8.

Таблица 2. Таблица кодов ASCII (расширенная)



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

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

7.

Двоичное кодирование графической информации

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

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

Графическая информация на экране монитора представляется в виде (изображения, которое формируется из точек (пикселей). В простейшем случае (черно-белое изображение без градаций серого цвета) каждая точка экрана может иметь лишь два состояния — «черная» или «белая», т.е. для хранения ее состояния необходим 1 бит.

Цветные изображения могут иметь различную глубину цвета (бит на точку: 4. 8, 16, 24). Каждый цвет можно рассматривать как возможное состояние точки, и тогда по формуле N = 21 может быть вычислено количество цветов, отображаемых на экране монитора.



Изображение может иметь различный размер, который определяется количеством точек по горизонтали и по вертикали. В современных персональных компьютерах обычно используются четыре основных размера изображения или разрешающих способностей экрана: 640*480, 800*600, 1024*768 и 1280*1024 точки.

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

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

Всего точек на экране: 800 * 600 = 480000

Необходимый объем видеопамяти: 16 бит * 480000 = 7680000 бит = 960000 байт = 937,5 Кбайт.

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

Таблица . Объем видеопамяти для различных графических режимов



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

Двоичное кодирование звуковой информации

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

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

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

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



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

Количество выборок в секунду может быть в диапазоне от 8000 до 48000, т.е. частота дискретизации аналогового звукового сигнала может принимать значения от 8 до 48 Кгц. При частоте 8 Кгц качество дискретизированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 Кгц - качеству звучания аудио-CD. Следует также учитывать, что возможны как моно-, так и стерео-режимы.

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

16 бит * 24000 = 384000 бит = 48000 байт или 47 Кбайт

8

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

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

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

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

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

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

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

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

Можно рассчитать длину сообщения в двоичном алфавите, необходимую для передачи информации. Для уменьшения неопределенности ситуации в 2n раз необходимо n бит информации. 

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

Задача нахождения n по известному значению k = 2n решается нахождением логарифма числа k по основанию 2, поэтому, для того, чтобы закодировать информацию, уменьшающую неопределенность в k раз, необходимо log2k бит информации. Приведем таблицу некоторых двоичных логарифмов, являющихся целыми числами. n log2k 

Пример. С точки зрения уменьшения неопределенности, сообщение о исходе опыта бросания точечного объекта на шахматную доску (равновозможные события - попадания в одну из 64 клеток) несет 6 бит информации. Действительно, k в данном случае равняется 64, log264 = 6. Минимальная длина двоичного сообщения также будет равна 6. Подробнее: номер клетки доски по вертикали можно закодировать целым числом от 0 до 7. Для этого требуется 3 двоичных разряда (см. Системы счисления). Еще 3 разряда нужны для того, чтобы закодировать номер клетки доски по горизонтали, 3+3=6. Можно также просто пронумеровать все клетки числами от 0 до 63. Для этого опять-таки потребуется 6 разрядов. 

Если используется алфавит, состоящий не из двух, а из 2p знаков, то каждый знак может нести информацию, уменьшающую неопределенность ситуации в 2p раз. Таким образом, сообщение из m знаков позволяет уменьшить неопределенность в (2p)m = 2pm раз, то есть его информационный объем равен m·p бит, что согласуется с результатом, полученным при использовании алфавитного подхода. 

Пример. Пусть для кодирования сообщения о попадании точечного объекта на клетку шахматной доски используется алфавит из 8 символов (2p = 8, следовательно p = 3). Сообщение уменьшает неопределенность в 64 раза, следовательно 2pm = 23m = 64, отсюда 3m = log264 = 6; m = 2, то есть для кодирования информации попадании точечного объекта на клетку шахматной доски потребуется сообщение из двух знаков восьмисимвольного алфавита. Действительно, в первом знаке сообщения можно закодировать, например, информацию о горизонтали клетки, а во втором — о вертикали. В общепринятой шахматной нотации фактически используется указанный способ именования клеток, только для удобства чтения первый символ сообщения записывается как буква, а второй - как цифра. С математической точки зрения ничто не мешает обозначать клетки a1 и h8 как aa и hh или 11 и 88, используя только 8 символов. 

Алфавитный подход 

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

Пример: Сигнал SOS: 3 знака в латинском алфавите; 

11 знаков в алфавите Морзе: ··· пауза – – – пауза ···. 

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

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

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

Если алфавит содержит 2n знаков, то каждый из его знаков можно закодировать с помощью n знаков двоичного алфавита. Таким образом, объем информации, содержащейся в сообщении длиной m при использовании алфавита мощностью 2n, равен m·n бит. 
Пример: 

Найдем информационный объем слова SOS, записанного в компьютерной кодировке. При кодировании букв в компьютере используется либо алфавит ASCII (American Standard Code for Information Interchange — американский стандартный код обмена информацией), состоящий из 28=256 знаков, либо алфавит Unicode, мощность которого 216 = 65536. В слове SOS три буквы, следовательно, его информационный объем 3·8=24 или 3·16=48 бит, в зависимости от используемой кодировки. 

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

Единицы измерения информации 

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

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

9

10 
Экономическая информация о финансово-хозяйственной деятельности предприятий характеризует производственно-хозяйственный процесс, т.е. экономическую деятельность. Эти данные систематизируют и группируют для целей контроля по выполнению планов, использованию ресурсов предприятия.
Характеризуется экономическая информация тремя критериями: синтактикой, семантикой и прагматикой.
Синтактика — структура экономической информации (символы алфавита языка информации, слова, предложения, правила их построения).
Семантика — содержание экономической информации.
Прагматика — полезность экономической информации, т.е. ее свойства (достоверность, своевременность, удобство восприятия и т. п.).
Экономическая информация имеет следующие особенности: отражает деятельность звеньев народного хозяйства (предприятий, объединений, отрасли) с помощью натуральных, условных и стоимостных измерителей; фиксируется как дискретная величина на материальных носителях (документах, магнитных лентах, дисках и т. п.); имеет линейную форму (записывается в виде строк). Кроме того, она является массовой и объемной, требует многоразовой группировки, арифметической и логической обработки для управления; бывает цифровой, буквенно-цифровой, алфавитной (буквенной); характеризуется продолжительностью хранения, цикличностью в возникновении и обработке в установленных временных пределах; выступает как активная относительно влияния на хозяйственный механизм.
Структура экономической информации обусловлена ее назначением в управлении и контроле хозяйственной деятельности. В зависимости от целей и задач влияния на управляемый объект экономическую информацию группируют в разные информационные совокупности, количественные изменения которых определяются номенклатурами, состоящими из позиций. В номенклатуру включают полный перечень предварительно сгруппированных позиций по определенной качественной однородности. Например, номенклатура статей затрат на производство промышленной продукции (сырье, материалы, заработная плата производственных рабочих, общепроизводственные расходы и др.) включает позиции по видам сырья и материалов, основной и дополнительной заработной плате и т. п. Эта информация используется при контроле выполнения сметы затрат на производство продукции, выявлении непроизводительных расходов и разработке мер по предупреждению разных потерь. Аналогично используется информация о содержании и структуре издержек в торговле и общественном питании.
Для удобства группировки информации каждой позиции номенклатуры издержек паивают условные цифровые обозначения в виде кода (01 — «Расходы на железнодорожные, водные и воздушные перевозки», 11 — «Расходы на торговую рекламу», 18 — «Расходы на тару» и др.).
Номенклатура и ее позиции — это определенная система экономических показателей, которые являются объектами контроля и аудита.
Экономический показатель — это информационная совокупность с минимальным составом реквизитов (признаков и реквизитов), оснований, например, показатель «цена товара» состоит из одного основания — «собственно цена» и нескольких признаков: «наименование, рост, размер», «номенклатурный номер», «обозначение единицы товара» и пр.
Функционирование автоматизированных систем обработки информации (АСОИ) основывается на машинном преобразовании информации о хозяйственной деятельности предприятий. АСОИ используются в контрольно-аудиторском процессе в связи с ростом объемов информации до таких пределов, когда комплексно контролировать производственную и финансово-хозяйственную деятельность предприятия без ЭВМ невозможно.
Система машинного преобразования информации состоит из таких элементов: операция, информационная продукция, стадия обработки, информационная процедура, стадия обработки, информационный участок, информационный поток.
Операция — это любое элементарное или сложное действие над информацией, направленное на ее трансформацию (преобразование) или передачу. Совокупность операций одного типа называют информационной процедурой. Последовательность выполнения процедур принято называть стадиями обработки. Однородные взаимосвязанные процессы по формированию и преобразованию информации, имеющие информационную самостоятельность в пределах информационных совокупностей, — это информационные участки. Целенаправленное перемещение информации или документов в пределах информационной системы за тот или иной период называется информационным потоком.
Машинная обработка информации основывается на упорядочении массивов информации путем создания информационной системы. Массив — это основная информационная совокупность, которая принимает участие в машинной обработке (производство продукции за месяц, табельные номера работников и др.). Совокупность данных об отдельном объекте множества составляет определенную информационную совокупность (поступление материалов на склад, начисление заработной платы за месяц и пр.).
Структура информационной системы включает в себя блок данных, файл, секцию файла, набор файлов, сгруппированных в банке данных.
Блок данных — это совокупность данных, которые записываются или считываются техническими средствами как одно целое.
Файл — совокупность данных, которая состоит из логических записей, касающихся одной темы (поступления товаров на базу, отпуска товаров в магазины).
Секция — часть файла, которая записывается на один том данных, представляющий собой съемную физическую единицу носителя данных (например, катушка магнитной ленты, на которой зафиксировано поступление сырья и материалов от одного поставщика).
Набор файлов состоит из совокупности родственных файлов, т.е. тех, которые с определенной целью по выбранным признакам могут быть объединены в общую группу (файлы перемещения товаров на базе).
Банк данных является совокупностью наборов файлов, сгруппированных в массивах данных.
Если предприятие выполняет внешнеэкономические операции, то необходимо пользоваться международными стандартами кодификации данных при проведении аудита его деятельности.
Известно, что в практике международных организаций в процессе обмена информацией и при решении задач международных экономических, научно-технических, культурных, спортивных и других связей используются сокращения названий стран — блоки буквенной и цифровой идентификации стран. Международная организация по стандартизации (ИСО) разработала коды для каждой страны. Для Украины традиционно используют такие блоки буквенной и цифровой идентификации:
двухбуквенный алфавитный код Украины — UA, рекомендованный ИСО для международных обменов, который позволяет создавать визуальную ассоциацию с общепринятым названием Украины без какой-либо ссылки на ее географическое положение или статус;
трехбуквенный алфавитный код Украины — UKR — используется в особых случаях как более целесообразный;
цифровой порядковый код — 804 — поен Статистическим бюро Организации Объединенных Наций и используется для статистических расчетов.
Эти блоки зафиксированы для использования Международной организацией по стандартизации в стандарте ИСО 3166—88 «Коды для представления названий стран».
Организация Объединенных Наций в работе также использует эти блоки.
Принимая во внимание то, что эти блоки хорошо известны в мире, а также с целью унификации сокращенного названия нашей страны Госстандарт Украины по согласованию с Министерством иностранных дел Украины считает целесообразным закрепить в законодательном порядке использование министерствами, ведомствами, предприятиями и учреждениями алфавитных кодов UA и UKR и цифрового порядкового кода 804.
Экономическая информация, характеризующая состояние объекта контроля на нынешний момент, называется оперативной, а в течение планового периода — текущей. Первая используется при контроле хозяйственных процессов в момент проведения их (количество и качество продукции конкретной партии поставки и др.), вторая — после завершения (после окончания месяца, квартала). Так, качество продукции контролируют ежедневно и принимают оперативные решения, чтобы не допустить поступления в торговлю товаров, не соответствующих стандартам, деформированных и пр., а меры по укреплению договорной дисциплины можно разрабатывать после окончания месяца. Таким образом, оперативная информация используется для текущего (оперативного) контроля и регулирования процессов хозяйственной деятельности в случаях возникновения отрицательных отклонений от запланированных результатов, для выборочных наблюдений за отдельными хозяйственными операциями, экспериментальной проверки норм расходования сырья и материалов, хронометражных наблюдений за работой оборудования и т. п.
Оперативная информация о хозяйственных процессах является дискретной, поэтому потребность в ней возникает периодически. Не всегда ее фиксируют на материальных носителях с надлежащим оформлением подписями лиц, принимающих участие в осуществлении хозяйственной операции. Оперативную информацию можно группировать с помощью электрических импульсов, датчиков, передавать органам управления телефонными каналами, радиорелейными линиями и др. Поэтому в процессе контроля и ревизии ее используют в сочетании с текущей, проверяют достоверность, группируют в информационные совокупности.
Текущая экономическая информация обобщает результаты производственной и финансово-хозяйственной деятельности предприятия и его производственных единиц в системе бухгалтерского учета непрерывно по отчетным периодам в течение календарного года (месяц, квартал). Ее отражают в бухгалтерской и статистической отчетности и используют для контроля выполнения планов, напряженности их, исследования факторов, отрицательно влияющих на результаты деятельности предприятия и его подразделений, а также для ревизии использования материальных, трудовых и финансовых ресурсов, сохранности общественной собственности.
Текущая экономическая информация о состоянии и использовании объекта контроля называется первичной. В процессе обработки для целей контроля и аудита ее преобразуют во вторичную. Она может быть также промежуточной и результатной. Так, информация о расходах конкретного вида материалов на производство, отражаемая в количественных и качественных измерителях и лимитно-заборной карте или требовании на расходование материалов (первичном документе), является первичной. Эта же информация, записанная в регистры бухгалтерского учета, является вторичной, а сгруппированная в накопительных ведомостях (машинограммах) в течение месяца по отдельным видам изделий — промежуточной, систематизированная по статьям калькуляции после окончания квартала вместе с информацией о других затратах, касающихся этого изделия, по которой рассчитана его себестоимость, — результатной.
Для контроля и аудита основной является первичная информация о хозяйственных процессах и явлениях, поскольку ее используют для установления законности расходования ресурсов и сохранности ценностей на предприятии, определения материально ответственных и должностных лиц, виновных в причиненных убытках. Поэтому к ней выдвигают дополнительные требования — достоверность информации об объекте контроля и явлениях хозяйственной деятельности. От достоверности ее зависит качество промежуточной и результатной информации, отраженной в системе бухгалтерского учета, а также полученной в процессе проведения аудита.
Существуют также другие признаки классификации экономической информации, которую исследуют в процессе аудита по: способу отражения — текстовая, цифровая, алфавитная, алфавитно-цифровая, графическая (чертежи, схемы, графики); насыщенности данных — недостаточная, достаточная, излишняя; полезности использования — полезная, бесполезная; способу подачи — директивная, распорядительная, отчетная; признакам обработки — обрабатываемая и необрабатываемая.
В зависимости от функций экономическую информацию делят по функциям использования в информационном обеспечении хозяйственного механизма предприятия, объединения, отрасли, а также в контроле и аудите.
Информацию, используемую для планирования производственной и финансово-хозяйственной деятельности во всех звеньях народного хозяйства и содержащую в себе плановые задания, называют плановой, или нормативно-справочной, а регламентирующую эту деятельность — директивной. Разновидностью нормативной является расценочная, регулирующая (плановая), договорная и справочная информация.
Информацию, которая характеризует хозяйственные процессы, отраженные в бухгалтерском учете производственной и финансово-хозяйственной деятельности предприятий, объединений, используют как основной источник данных при проведении аудита. Ее называют учетно-экономической, а по содержанию — фактографической.
В процессе аудита учетно-экономическую информацию преобразовывают с использованием вычислительной техники в информационные совокупности, характеризующие выявленные недостатки в деятельности контролируемого предприятия, объединения. Если другие виды экономической информации (плановую, договорную и др.) можно представить в виде схем, графиков, диаграмм и другими способами, то учетно-экономическую — только в виде документа или его заменителя — материального носителя (документов — магнитных жетонов, дуаль-карт, магнитных карточек и лент и пр.).
В совокупности учетно-экономическая информация отражает определенные хозяйственные операции с помощью данных, которые постоянно изменяются. Поэтому их относят к переменной информации.
В зависимости от степени информационной детализации объектов учета различают аналитическую и синтетическую учетно-экономическую информацию. Аудит исследует объекты контроля по данным учетно-экономической информации, сформированной на аналитических счетах бухгалтерского учета, а синтетическую — на синтетических счетах. Так, исследуя дебиторскую задолженность по подотчетным лицам, ревизия по данным синтетического счета «Подотчетные лица» устанавливает общую сумму задолженности в динамике за контролируемый период (синтетическая информация). Потом по данным аналитических счетов устанавливают, когда и по какому конкретному подотчетному лицу возникла дебиторская задолженность, ее сумму, причину непогашения (аналитическая информация). Выводы аудитор делает на основе синтетической и аналитической информации.
По объекту аудита учетно-экономическую информацию делят на внутреннюю и внешнюю, входящую и исходящую, оперативную и текущую. Информация о контролируемом объекте (предприятие, объединение), образуемая на самом объекте, называется внутренней, а за его пределами — внешней. Информация, поступающая на контролируемый объект, является входящей, а от него — исходящей.
По стабильности использования или хранения экономическую информацию делят на условно-постоянную (постоянную) и переменную. Информация, используемая хозяйственным механизмом без существенных изменений в течение нескольких отчетных периодов (квартал, год), называется условно-постоянной, или постоянной; в течение месяца — переменной. Такое деление особенно важно при использовании ЭВМ в контрольно-ревизионном процессе, так как позволяет интенсифицировать труд аудиторов благодаря уменьшению объемов информации, готовящейся вручную. Так, задание к государственному заказу является постоянной информацией на год с разбиением ее по кварталам и месяцам, вводится в ЭВМ один раз и используется для контроля выполнения заказа в целом, по ассортименту и другим показателям по отчетным периодам, при этом учитывается переменная информация (производство продукции за день, декаду, месяц).
Экономическую информацию для целей контроля за ходом выполнения планов на предприятиях собирают много работников, а полезность ее иногда минимальна. Причиной обесценивания данных является то, что полученная информация часто не вкладывается в лаг управления. Новая производственная ситуация наступает раньше, чем приняты корректирующие решения в предыдущей ситуации. В связи с этим из-за того, что нет оперативной информации, нельзя обеспечить надежное функционирование контроля на разных уровнях управления, а следовательно, принимать для этих целей научно обоснованные решения.
Решение проблемы информационного обеспечения финансово-хозяйственного контроля состоит в повышении оперативности информации, используемой для управления, с помощью быстродействующих ЭВМ.
Прогрессивной альтернативой решения этой проблемы является создание информационного банка данных на внешних запоминающих приборах ЭВМ, обеспечивающих информационные потребности финансово-хозяйственного контроля в отрасли. Распределение информационной емкости банка по уровням управления отраслью можно представить в виде пирамиды, из которой видно, что в общем объеме экономической информации, используемой в хозяйственном механизме отрасли, учетно-экономическая информация на первом уровне составляет 65 % ( 8.2).
К вершине пирамиды, т.е. на более высоком уровне иерархии управления, потребность в первичной учетно-экономической информации уменьшается, поскольку существует возможность использовать информацию нижних уровней управления.
Следовательно, изучая информационный аспект финансово-хозяйственного контроля, можно сделать вывод, что учетно-экономическая информация формируется в основе пирамиды и является базой информационного банка данных для принятия решений на разных уровнях управления отраслью. Поэтому ее необходимо использовать прежде всего при осуществлении контроля в отрасли.
Для рационального использования банка данных ему необходимо придать определенную структуру. Создание структуры информации в банке данных требует решения по меньшей мере трех проблем методического характера. Первая состоит в том, чтобы установить информационные потребности финансово-хозяйственного контроля по уровням управления, определить, какие из потенциально возможных информационных совокупностей действительно необходимы для проведения комплексной ревизии и аудита предприятия. Вторая проблема состоит в определении объема данных, их назначения, получении информации, где они хранятся и как их получить ревизорам, аудиторам. Третья проблема — это установление взаимоотношений между элементами информационного банка данных. Например, информация о сырьевых ресурсах в номенклатуре может быть элементом банка данных, который используется при контроле обеспечения плана производства сырьем, удовлетворения покупательского спроса, выполнения плана товарооборота, насыщенности товарами рынка и т. п. Следовательно, одна и та же информация может быть связана со многими массивами банка данных, т.е. с разными методическими приемами использования экономической информации в финансово-хозяйственном контроле и аудите.

12

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

Суперкомпьютеры

Мэйнфреймы

Серверы

Персональные компьютеры

настольные

переносные

наладонные

Суперкомпьютеры

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

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

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

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

Быстродействие компьютеров измеряется в единицах, которые называются ФЛОПС (FLOPS - Floating Point Operations Per Second).

ФЛОПС - количеством арифметических операций в секунду.

Кратные единицы: МегаФЛОПС, ГигаФЛОПС и ТераФЛОПС.

МегаФЛОПС (МФЛОПС) - 1 миллион арифметических операций в секунду.

ГигаФЛОПС (ГФЛОПС) - 1 миллиард арифметических операций в секунду.

ТераФЛОПС (ТФЛОПС) - 1 триллион арифметических операций в секунду.

Мэйнфреймы

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

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

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

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

Серверы

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

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

По технологической совместимости серверы бывают IBM-совместимыми и Macintosh-совместимыми.

Персональные компьютеры

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

По технологической и программной совместимости персональные компьютеры бывают IBM-совместимыми и Macintosh-совместимыми.



Настольные персональные компьютеры

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

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

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

Переносные персональные компьютеры

Кроме настольных компьютеров существуют переносные компьютеры. Первые переносные компьютеры называли лаптопы (laptop - лежащий на коленях). Современные переносные компьютеры называют английским словом "ноутбук" (notebook) или блокнотный компьютер. Ноутбук имеет жидкокристаллический дисплей, клавиатуру, совмещенную с системным блоком, дисковод для 3,5" дискет и оптический дисковод (CD-ROM, CD-RW или комбинированный DVD+RW). Кроме того, обязательно имеется манипулятор для управления курсором. По размеру ноутбуки такие, что легко помещаются в портфель.

Наладонные персональные компьютеры

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

Кроме палмтопов есть карманные компьютеры, которые называются PDA - personal digital assistent - личный цифровой ассистент. Эти компьютеры не имеют клавиатуры. Они оснащены сенсорным экраном и информация вводится на экран при помощи специальной указки-стека.

Общее название карманных компьютеров - handhold computers - компьютеры, которые держат в руках.

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

13

Архитектура вычислительной машины (Архитектура ЭВМ, англ. Computer architecture) — концептуальная структура вычислительной машины[1], определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения.[2]

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

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

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

По разрядности интерфейсов и машинных слов: 8-, 16-, 32-, 64-, 128- разрядные (ряд ЭВМ имеет и иные разрядности);

По особенностям набора регистров, формата команд и данных: CISC, RISC, VLIW;

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

многопроцессорные по принципу взаимодействия с памятью: симметричные многопроцессорные (SMP), масcивно-параллельные (MPP), распределенные.

Принципы фон Неймана.

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


14-19

ппара́тное обеспече́ние[1] (англ. hardware (́ha:dwεə), жарг. «железо») — электронные и/или механические части вычислительного устройства (компьютер, ЭВМ, микроЭВМ и тд.), исключая его программное обеспечение и данные (информация, которую он хранит и обрабатывает).

Аппара́тное обеспече́ние[2] - комплекс электронных, электрических и механических устройств, входящих в состав системы или сети. Аппаратное обеспечение включает: - компьютеры и логические устройства; - внешние устройства и диагностическую аппаратуру; - энергетическое оборудование, батареи и аккумуляторы.

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

Современные ПК характеризуются:

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

возможностью для пользователя работать с ПК лично, без посредничества профессионального программиста,

малым потреблением электрической энергии,

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

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

ЭВМ выполняют две основные функции:

		обработка и хранение информации

		обмен информацией с внешними объектами.

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

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

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

		системный блок,

		устройства ввода информации в ПК (например, клавиатура),

		устройства вывода информации из ПК (например, монитор).

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

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

Внутри системного блока располагаются:

источник питания,

материнская (системная) плата

процессор,

внутренняя память,

жесткий диск,

накопитель гибких дисков.

В системном блоке современных ПК почти всегда присутствуют также:

накопитель CD–ROM,

звуковая карта,

сетевая карта.



Структурная схема ПК представлена на рис 2.



Процессор



Внутренняя память





Устройства

регистры

АЛУ

УУ



ОЗУ

ПЗУ



Ввода-вывода













С и с т е м н а я      ш и н а



Рис.2. Структурная схема ПК.

. Процессор



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

арифметико-логическое устройство (АЛУ),

устройство управления (УУ).

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

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

Тактовая частота определяет скорость выполнения операций в процессоре. При повышении тактовой частоты увеличивается производительность процессора. Современные процессоры имеют тактовые частоты 400-1000 МГц и более.

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

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



2. Внутренняя память



Внутренняя память – это память, расположенная на материнской плате. Внутреннюю память составляют два устройства: ОЗУ и ПЗУ.

ОЗУ (оперативное запоминающее устройство)  предназначено для хранения текущих программ и текущей информации, т.е. программ и информации, с которыми в данный момент работает пользователь. В англоязычной литературе ОЗУ называют RAM (random access  memory – память случайного доступа).

Основными характеристиками ОЗУ являются: объем и время доступа.

Объем ОЗУ (ед. измерения – Мбайт) – это общее количество ячеек памяти на всех кристаллах ОЗУ. В каждой ячейке может хранится либо «1» либо «0». Ячейки в кристаллах памяти объединены в блоки по 8 ячеек, и в каждый такой блок таким образом можно записать байт информации. От объема ОЗУ во многом зависит скорость работы компьютера: чем больше объем ОЗУ,  тем быстрее  работает компьютер.

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

ОЗУ является энергозависимой памятью, т.е. при отключении питания оно «забывает» всю записанную в него информацию.

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

Эта память является энергонезависимой, т.е. при отключении питания информация в ПЗУ не стирается. Информация в ПЗУ записывается один раз и затем уже не изменяется, хотя в современных компьютерах часть ПЗУ – так называемая flash-память, может быть перезаписана. При этом пользователь лишь запускает специальную программу, периодически поставляемую производителями материнских плат, и содержимое flash-памяти обновляется. Flash–память как и все ПЗУ энергонезависима, т.к. она потребляет очень мало энергии и питается от отдельной батареи независимо от того, включен или выключен компьютер. Кроме того, содержимое еще одной части ПЗУ (CMOS-памяти), содержащей данные о конфигурации компьютера, настройках, текущем времени и др., может быть изменено пользователем вручную. Питается CMOS-память обычно от той же батареи, что  и flash-память.



3. Внешняя память



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

Накопители на гибких дисках (дискетах).

Гибкие диски позволяют переносить документы и программы с одного компьютера на другой, хранить наиболее ценную информацию с жесткого диска. Наиболее распространены гибкие диски (дискеты) размером 3,5 дюйма емкостью 1,44 Мбайт.

Накопитель на жестком диске (винчестер) – предназначен для постоянного хранения информации, используемой при работе с компьютером: программ операционной системы, часто используемых программ, документов и т.д. Основными характеристиками винчестеров являются емкость и скорость работы диска. Первые винчестеры для компьютеров IBM PC/XT имели емкость 10 Мбайт, современные винчестеры имеют емкости до 50 Гигабайт и больше. Скорость работы диска определяется временем доступа к информации. Скорость обмена информацией с винчестером значительно ниже, чем с ОЗУ. Тем не менее, в сравнении с другими видами внешней памяти винчестеры имеют самое высокое быстродействие.

Накопители на оптических дисках (CD–ROM, накопители на компакт дисках) – устройство, аналогичное лазерному проигрывателю, обеспечивает ввод информации с компакт-дисков, записанных в специальном формате. Объем одного диска – 640 Мбайт.

Существует много других видов накопителей, используемых на практике реже: накопители на магнитной ленте (стриммеры), накопители на магнитооптических дисках, ZIP- накопители, накопители MiniDisk и др.



4. Материнская плата, шина и периферийные устройства



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

На материнской плате располагаются: процессор, ПЗУ, ОЗУ, видеоадаптер (формирует сигнал для монитора), адаптер жесткого диска (управляет работой жесткого диска), адаптер гибкого диска (управляет работой гибкого диска).

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

Периферийными называют все устройства компьютера, расположенные вне материнской платы. Часть устройств хоть и расположены вне материнской платы, но также как и материнская плата находятся в системном блоке: винчестер, дисководы, CD–ROM, звуковая карта, сетевая карта и некоторые др.

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



5. Устройства ввода информации в ПК



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

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

Сканер – устройство ввода графической информации (фотографий, изображений и др.) в компьютер.

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



6. Устройства вывода информации из ПК



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

Современные мониторы, соответствующие принятым стандартам на допустимое электромагнитное излучение (ТСО–95, ТСО-99), безопасны для пользователей, хотя при этом время пребывания за экраном включенного монитора обычно нормируется (до 4 часов).

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

Изображение на экране монитора формируется с помощью точек (пикселей). Количество пикселей по горизонтали и вертикали и определяет разрешение экрана. Типичные значения: 800600 для 14-дюймового монитора, 16001200 для 19-дюймового. Чем  больше размер диагонали экрана и выше разрешение, тем качественнее изображение, так как лучше прорисовываются мелкие детали.

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

Комфортность работы за монитором во многом определяет такая характеристика монитора, как максимальная частота смены кадров  (обычные значения: 75–100Гц, т.е. за секунду изображение на экране обновляется 75-100 раз).

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

Принтеры делятся на следующие типы: матричные, струйные, лазерные.

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

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

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

Графопостроитель (плоттер) – устройство вывода, позволяющее получить высококачественные чертежи.



7. Устройства ввода–вывода



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

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

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

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

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

20.

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

В персональных компьютерах «памятью» часто называют один из её видов — динамическая память с произвольным доступом (DRAM), — которая в настоящее время используется в качестве ОЗУ персонального компьютера.

Задачей компьютерной памяти является хранение в своих ячейках состояния внешнего воздействия, запись информации. Эти ячейки могут фиксировать самые разнообразные физические воздействия (см. ниже). Они функционально аналогичны обычному электромеханическому переключателю и информация в них записывается в виде двух чётко различимых состояний — 0 и 1 («выключено»/«включено»). Специальные механизмы обеспечивают доступ (считывание, произвольное или последовательное) к состоянию этих ячеек.

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

Также различают операцию стирания памяти — занесение (запись) в ячейки памяти одинаковых значений, обычно 0016 или FF16.

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

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

Сегодня основными производителями магнитооптических накопителей являются фирмы Fujitsu и Sony. Первая специализируется на производстве 3,5-дюймовых магнитооптических дисков Fujitsu. Вторая японская фирма изготавливает магнитооптические диски Sony большего формата - 5,25.

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

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

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

Преимущества

Слабая подверженность механическим повреждениям

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

Гарантированное качество записи

Синхронный вывод

Недостатки

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

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

Высокая цена как самих дисков, так и накопителей.

Малая распространённость.

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

21

Файлы и каталоги

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

Файлы различаются по своим именам. Например, свой файл с работой по истории вы можете назвать history-paper. В этих случаях имя файла выбирается таким, чтобы оно каким-то образом характеризовало содержимое данного файла. Для имен файлов нет такого стандартного формата, какой есть в системе MS-DOS и в некоторых других операционных системах. В принципе, имя файла может содержать любые символы (за исключением символа / -- смысл этого символа будет разъяснен ниже). Длина имени файла ограничена 256 знаками.

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

Как следствие, к файлу можно обращаться, указывая путь (path) к этому файлу. Путь состоит из имени каталога, за которым пишется имя файла. Пусть, например, пользователь Лэрри имеет каталог papers, в которой содержится три файла: history-final, english-lit, masters-thesis. Каждый из этих трех файлов содержит информацию о трех работах, которыми в данный момент занимается Лэрри. Чтобы обратиться к файлу english-lit, Лэрри может указать путь к файлу, например, следующим образом:

papers/english-lit

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

Как указывалось выше, каталоги могут быть вложены друг в друга. Пусть, например, в одном каталоге papers имеется другой каталог с именем notes. Каталог notes содержит файлы math-notes и cheat-sheet. Путь к файлу cheat-sheet представляется следующим образом:

papers/notes/cheat-sheet

Мы видим, что путь к файлу напоминает описание пути в лабиринте. Каталог, который содержит данный подкаталог, обычно называется родительским каталогом (parent directory). В данном примере каталог papers является родительским для каталога notes.

Тип файла



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

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

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

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

Так, например Explorer - пользовательская оболочка Windows 95 и Windows NT 4.0 - позволяет связатьту или иную программу с файлами, имеющими определенное расширение,например, программу MS Word с файлами, имеющими расширение.DOC. Когда пользователь нажимает левой кнопкой мыши на иконке,представляющей такой файл, то автоматически запускается MS Word.Эти же ассоциации доступны и из командной строки - можно напечататьstart Доклад.DOC и опять-таки запустится MS Word.

Такое связывание очень просто в реализации и реализуется не тольков Explorer, но и в простых текстовых оболочках вродеNorton Commander. От ОС при этом требуется толькодать возможность каким-то образом различать типы файлов.

Первые попытки ассоциировать с файлом признак типа былисделаны еще в 60 гг. При этом идентификатор типадобавлялся к имени файла в виде короткой, но мнемоническойпоследовательности символов - расширения (extension).В большинстве современных ОС расширение отделяется от именисимволом '.', но проследить истоки этой традиции авторам неудалось. При этом, например, файлы на языке C будут иметьрасширение ".c", на C++ - ".C",а документы в формате LaTeX - ".tex".

В ОС семейства Unix имя файла может содержать несколькосимволов '.', и, таким образом, файл может иметь несколькокаскадированных расширений. Например, файл "main.C" - этопрограмма на языке C++; "main.C.gz" - это программана языке C++, упакованная архиватором GNU Zip сцелью сэкономить место; "main.C.gz.crypt" - это программа, которуюупаковали и потом зашифровали, чтобы никто посторонний не смог ее прочитать;наконец, "main.C.gz.crypt.uue" - это упакованная и зашифрованнаяпрограмма, преобразованная в последовательность печатаемых символовкода ASCII, например, для пересылки по электронной почте.

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

Например, стандартный драйвер компилятора в системах семействаUnix - программа cc - определяет тип файла именно порасширению. Командная строка

Example:

cc main.C c-code.c asm-code.s obj-code.o\          library.a -o program

будет интерпретироваться следующим образом:

main.C:

текст на языке C++. Его нужно пропуститьчерез препроцессор и откомпилировать компилятором C++,а затем передать то, что получится, редактору связей.Большинство компиляторов в Unix генерируют кодна ассемблере, то есть вывод компилятора еще нужно пропуститьчерез ассемблер.

c-code.c:

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

asm-code.s:

программа на языке ассемблера. Ее нужнообработать ассемблером и получить объектный модуль.

obj-code.o:

объектный модуль, который непосредственноможно передавать редактору связей.

library.a:

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

Многие ОС, разработанные в 70-е гг., такие как RT-11,RSX-11, VAX/VMS, CP/M, навязывают программистуразделение имени на собственно имя и расширение, интерпретируя точкув имени файла как знак препинания. В таких системах имя может содержатьтолько одну точку и соответственно иметь только одно расширение.Напротив, в ОС нового поколения - OS/2, Windows NTи даже в Windows 95 - реализована поддержка имен файловсвободного формата, которые могут иметь несколько каскадированныхрасширений, как и в Unix.

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

Другая проблема связана с исполняемыми загрузочными модулями. Обычносистема использует определенное расширение для исполняемых файлов.Так, VMS, MS/DR DOS, OS/2, MS Windowsи Windows NT используют расширение .exe: сокращение отexecutable (исполняемый).Однако по мере развития системы формат загрузочного модуля может изменяться.Так, например, OS/2 v3.0 Warp поддерживает по крайней мерепять различных форматов загрузочных модулей.

16-разрядные сегментированные загрузочные модули: форматOS/2 1.x.

32-разрядные загрузочные модули, использующие``плоскую'' (flat) модель памяти: формат OS/2 2.x.

32-разрядные модули нового формата, использующие упаковку кодаи данных: формат OS/2 3.x.

DOS-овские .exe и .com модули.

Загрузочные модули MS Windows.

Для исполнения последних двух типов программ OS/2 создаетзадачу, работающую в режиме совместимости с 8086.Эта задача запускает копию ядра DOS и, если этонеобходимо, копию MS Windows, которые уже выполняют загрузкупрограммы. Загрузочные модули всех трех ``родных'' форматов загружаютсясистемой непосредственно.

Так или иначе загрузчик должен уметь правильно распознавать все форматы.При этом он не может использовать расширение файла: файлы всех перечисленныхформатов имеют расширение .EXE.

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

Разработчики Unix столкнулись с этой проблемой еще в 70 гг.В качестве решения они предложили использоватьмагические числа (magic number) - соглашение о том, чтофайлы определенного формата содержат в начале определенный байт илипоследовательность байтов. Первоначально это были численные коды;файл /etc/magic содержал коды, соответствующие известнымтипам файлов. Позднее в качестве магических чисел стали использоватьсядлинные текстовые строки. Так, например, изображения в форматеCompuserve GIF 87a должны начинаться с символов GIF87a.

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

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

Example:

GIF87a -- это очень плохой форматхранения изображений.

будет воспринят некоторыми программами как изображение в форматеCompuserve GIF 87a, каковым он, безусловно, не является.

Пытаясь как-то решить проблему идентификации типа файла, разработчикиMacintoch отказались как от расширений, так и от магическихчисел. В MacOS каждый файл состоит из двух частей иливетвей (forks): ветви данных (data fork) и ветвиресурсов (resource fork). Кроме идентификатора типа файла,ветвь ресурсов хранит информацию о:

иконке, связанной с этим файлом;

расположении иконки в открытой папке (folder);

программе, которую нужно запустить при ``открытии'' этого файла.

Файловая система

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

В широком смысле понятие "файловая система" включает:

совокупность всех файлов на диске,

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

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

23.

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

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

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

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

Базовое программное обеспечение.

Трансляторы.

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

Инструментальные средства.

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



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

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

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

Операционных систем и оболочек операционных систем довольно много, они различаются интерфейсом, набором возможностей, способами защиты от вирусов (программ, которые портят другие программы), способами управления ресурсами памяти, периферийными устройствами. Различия ОС обоснованы обычно свойствами и назначением самих ЭВМ, спецификой их использования. Можно назвать наиболее распространенные операционные системы, это: MS DOS, UNIX, Windows 95 и далее, WindowsNT и др.

Оболочки операционных систем дают возможность вводить команды операционных систем в более удобном для человека виде, с помощью выбора команд в предложенном оболочкой меню. Из наиболее распространенных оболочек можно назвать оболочки Norton Commander, DOS Shell, Windows2, 3.0, 3.11 и др.



К трансляторам относят программы, которые преобразуют команды программ, написанных на языках высокого уровня, таких как Qbasic, Pascal, С, Prolog, Ada и других, в команды записанные в машинных кодах, использующих двоичный алфавит. Эти программы можно назвать программами-переводчиками с языков программирования высокого уровня на машинный язык.

Трансляторы бывают двух видов: интерпретаторы и компиляторы. Оба вида трансляторов выполняют одну и туже операцию, но делают это по-разному.

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

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



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



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



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

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

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

хранить информацию в ОЗУ;

помнить, где она находится;

извлекать ее определенным образом;

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

предъявлять ее для непосредственного восприятия и др.

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



Среди прикладных программ, по преобладанию некоторых функций, выделяют:

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

графические редакторы,

электронные таблицы,

системы управления базами данных,

музыкальные редакторы,

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



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

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

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

возможность использовать шрифты различного начертания;

возможность работы с пропорциональными шрифтами;

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

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

автонумерация страниц;

обработка и нумерация сносок;

задание колонтитулов;

выравнивание краев абзаца;

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

создание таблиц;

проверка правописания и подбор синонимов;

построение оглавлений и еще множество функций.

Среди текстовых редакторов выделяют группу, предназначенную для создания сложных документов высокого качества (рекламных буклетов, журналов, книг). Эти редакторы получили название издательских систем. Печать документов, подготовленных с помощью издательских систем производится с помощью лазерного принтера или специальных фотонаборных аппаратов. Все издательские системы построены по принципу WYSWYG (What you see w whet you get - что ты видишь, то ты и получишь). Издательские системы имеют больший набор возможностей по сравнению с обычными текстовыми редакторами. Наиболее распространенные текстовые редакторы в России: Lexicon, Multi Edit, WinWord. Издательские системы: Page Maker, Venture Publisher.



Графические редакторы позволяют создавать, редактировать и получать графические изображения в виде жестких копий (на бумаге) и в виде текстов программ, которые можно затем встраивать в другие программы или хранить для дальнейшего редактирования. Графические редакторы позволяют создавать не только статичные, но также движущиеся на экране объекты, создавать анимационные картинки. Графические редакторы имеют такие возможности, как использование различных цветовых оттенков в графическом изображения, использование графических примитивов (окружности, ломанные линии, прямоугольники, многоугольники, закрашенные фигуры) для построения рисунков, использование различных инструментов: кистей разнообразной формы, ластика, аэрографа, микроскопа или лупы для прорисовки каких либо тонких деталей изображения, имеется также возможность работать с выделенными частями рисунка: удалять, копировать, переносить, встраивать готовые изображения из библиотеки графических образов и так далее. Существуют графические редакторы как для создания двумерных, так и для создания трехмерных изображений. Примером графических редакторов наиболее распространенных в России можно назвать: Autodesk Animator, Corel Drаw, Paintbrash, PictureMaker, TruеSpacе и др.



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

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

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

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

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

сортировать и выбирать данные по введенным параметрам;

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

Примером электронных таблиц широко использующихся в настоящий момент в России являются таблицы Lotus 1-2-3, SuperCalk, Excel.



Системы управления базами данных (СУБД) позволяют вводить, накапливать, редактировать, сортировать, выбирать по запросу, удалять различные данные. СУБД позволяют также выполнять некоторые вычисления и создавать отчеты. Наиболее мощные СУБД имеют встроенный язык программирования, позволяющих создавать исполнимые программы дня обработки введенных данных. СУБД много, это, например, такие системы как FoxPro, dBASE, Paradox, Clipper, Clarioп, Assecc и другие.



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



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

26

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

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

Их можно разделить на несколько основных видов.

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

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

28.

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

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

Ниже приведена классификация ОС по нескольким наиболее основным признакам.

Особенности алгоритмов управления ресурсами

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

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

однозадачные (например, MS-DOS, MSX) и

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

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

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

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

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

многопользовательские (UNIX, Windows NT).

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

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

невытесняющая многозадачность (NetWare, Windows 3.x);

вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

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

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

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

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

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

Особенности аппаратных платформ

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

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

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

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

Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин.

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

Особенности областей использования

Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

системы пакетной обработки (например, OC EC),

системы разделения времени (UNIX, VMS),

системы реального времени (QNX, RT/11).

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

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

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

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

Особенности методов построения

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

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

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

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

Наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.

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

29

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

[править] Системы программирования

К этой категории относятся программы, предназначенные для разработки программного обеспечения:

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

трансляторы - программы или технические средства, выполняющее трансляцию программы.

компиляторы — Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.

интерпретаторы — Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их

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

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

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

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

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

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

Редакторы графического интерфейса

Перечисленные инструменты могут входить в состав интегрированных сред разработки

Виды инструментального ПО

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

Интегрированные среды разработки

SDK

Компиляторы

Интерпретаторы

Линковщики

Парсеры и генераторы парсеров (см. Javacc)

Ассемблеры

Отладчики

Профилировщики

Генераторы документации

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

Средства непрерывной интеграции

Средства автоматизированного тестирования

Системы управления версиями

и др.

31

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

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

Зарождение компьютерных вирусов

О появлении первого компьютерного вируса много разных мнений. Доподлинно только известно, что на машине Чарльза Бэббиджа, считающегося изобретателем первого компьютера, его не было, а на Univax 1108 и IBM 360/370, в середине 1970-х годов они уже были. Интересно, что идея компьютерных вирусов появилась намного раньше самих персональных компьютеров. Точкой отсчета можно считать труды известного ученого Джона фон Неймана по изучению самовоспроизводящихся математических автоматов, о которых стало известно в 1940-х годах. В 1951 году он предложил способ создания таких автоматов. А в 1959 году журнал Scientific American опубликовал статью Л.С. Пенроуза, посвященную самовоспроизводящимся механическим структурам. В ней была описана простейшая двумерная модель самовоспроизводящихся механических структур, способных к активации, размножению, мутациям, захвату. Позднее другой ученый Ф.Ж. Шталь реализовал данную модель на практике с помощью машинного кода на IBM 650.

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

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

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

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

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



Признаки появления вирусов

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

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

2. медленная работа компьютера

3. невозможность загрузки операционной системы

4. исчезновение файлов и каталогов или искажение их содержимого

5. изменение даты и времени модификации файлов

6. изменение размеров файлов

7. неожиданное значительное увеличение количества файлов на диске

8. существенное уменьшение размера свободной оперативной памяти

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

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

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

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



Методы защиты от вирусов

Cкaниpoвaниe

Ecли виpyc извecтeн и yжe пpoaнaлизиpoвaн, тo мoжнo paзpaбoтaть пpoгpaммy, выявляющyю вce фaйлы и зaгpyзoчныe зaпиcи, инфициpoвaнныe этим виpycoм. Taкaя пpoгpaммa cнaбжeнa «мeдицинcким» cпpaвoчникoм, coдepжaщим xapaктepныe oбpaзцы пpoгpaммнoгo кoдa виpyca. Пpoгpaммa вeдeт пoиcк кoмбинaций бaйтoв, xapaктepныx для виpyca, нo нeтипичныx для oбычныx пpoгpaмм. Пporpaммы-дeтeктopы, вeдyщиe пoиcк пoдoбныx кoмбинaций бaйтoв, нaзывaютcя пoлифaгaми, или cкaнepaми.

Для мнoгиx виpycoв xapaктepнa пpocтaя кoмбинaция, пpeдcтaвляющaя coбoй пocлeдoвaтeльнocть фикcиpoвaнныx бaйтoв. Дpyгиe виpycы иcпoльзyют бoлee cлoжныe кoмбинaции бaйтoв. Heoбxoдимo yдocтoвepитьcя, чтo кoмбинaция бaйтoв нe xapaктepнa для oбычныx пpoгpaмм, инaчe пpoгpaммa-дeтeктop cooбщит o виpyce дaжe пpи eгo oтcyтcтвии.

Bыявлeниe измeнeний

Для инфициpoвaния пpoгpaмм или зaгpyзoчныx зaпиceй виpycы дoлжны иx измeнить. Cyщecтвyют пpoгpaммы, кoтopыe cпeциaлизиpyютcя нa вылaвливaнии тaкиx измeнeний. Пpoгpaммy, peгиcтpиpyющyю измeнeниe фaйлoв и зaгpyзoчныx зaпиceй, мoжнo иcпoльзoвaть дaжe для выявлeния paнee нeизвecтныx виpycoв. Oднaкo измeнeниe фaйлoв и зarpyзoчныx зaпиceй мoжeт быть oбycлoвлeнo цeлым pядoм пpичин, кoтopыe нe имeют никaкoro oтнoшeния к виpycaм. Bыявлeниe измeнeний caмo пo ceбe пpинocит нe тaк мнoro пoльзы, т.к. нeoбxoдимo oчeнь чeткo пoнимaть, кaкиe измeнeния дeйcтвитeльнo yкaзывaют нa нaличиe виpyca.

Эвpиcтичecкий aнaлиз

Эвpиcтичecкий aнaлиз — этo cмyтнoe пoдoзpeниe aнтивиpycнoй пpoгpaммы o тoм, чтo чтo-тo нe в пopядкe.

Пpи выявлeнии виpycoв c пoмoщью эвpиcтичecкoro aнaлизa вeдeтcя пoиcк внeшниx пpoявлeний или жe дeйcтвий, xapaктepныx для нeкoтopыx клaccoв извecтныx виpycoв. Haпpимep, в фaйлax мoгyт выявлятьcя oпepaции, пpимeняeмыe виpycaми, нo peдкo иcпoльзyeмыe oбычными пpoгpaммaми, Moгyт тaк-жe выявлятьcя пoпытки зaпиcи нa жecткиe диcки или диcкeты c пoмoщью нecтaндapтныx мeтoдoв.

Taк жe, кaк пpи иcпoльзoвaнии пpeдыдyщeгo мeтoдa, c пoмoщью эвpиcтичecкoгo aнaлизa мoжнo выявить цeлыe клaccы виpycoв, oднaкo нeoбxoдимo yдocтoвepитьcя, чтo oбычныe пpoгpaммы нe были пpиняты зa инфициpoвaнныe.

Bepификaция

Paccмoтpeнныe вышe мeтoды мoгyт cвидeтeльcтвoвaть, чтo пpoгpaммa или зaгpyзoчнaя зaпиcь пopaжeны виpycoм, oднaкo тaким oбpaзoм нeльзя c yвepeннocтью oпoзнaть пopaзивший иx виpyc и yничтoжить eгo. Пpoгpaммы, c пoмoщью кoтopыx мoжнo идeнтифициpoвaть виpyc, нaзывaютcя вepификaтopaми. Bepификaтopы мoжнo paзpaбoтaть тoлькo для yжe изyчeнныx виpycoв пocлe иx тщaтeльнoro aнaлизa.



Обезвреживание вирусов

He иcключeнo, чтo пocлe выявлeния виpyca eгo мoжнo бyдeт yдaлить и вoccтaнoвить иcxoднoe cocтoяниe зapaжeнныx фaйлoв и зaгpyзoчныx зaпиceй, cвoйcтвeннoe им дo «бoлeзни». Этoт пpoцecc нaзывaeтcя oбeзвpeживaниeм (дeзинфeкциeй, лeчeниeм).

Heкoтopыe виpycы пoвpeждaют пopaжaeмыe ими фaйлы и зaгpyзoчныe зaпиcи тaким oбpaзoм, чтo иx ycпeшнaя дeзинфeкция нeвoзмoжнa. He иcключeнo тaкжe, чтo дeтeктop oдинaкoвo идeнтифициpyeт двa paзличныx виpyca, пoэтoмy дeзинфициpyющaя пpoгpaммa бyдeт эффeктивнa для oднoгo виpyca, нo бecпoлeзнa для дpyгoгo.

Дeзинфициpyющиe пpoгpaммы измeняют вaши пpoгpaммы, пoэтoмy oни дoлжны быть oчeнь нaдeжными.



Меры профилактики

Paccмoтpeнныe вышe мeтoды мoгyт пpимeнятьcя c пoмoщью paзличныx cпocoбoв. Oдним из oбщeпpинятыx мeтoдoв являeтcя иcпoльзoвaниe пpoгpaмм, кoтopыe тщaтeльнo oбcлeдyют диcки, пьrтaяcь oбнapyжить и oбeзвpeдить виpycы. Boзмoжнo тaкжe иcпoльзoвaниe peзидeнтньrx пpoгpaмм DOS, пocтoяннo пpoвepяющиx вaшy cиcтeмy нa виpycы. Peзидeнтныe пpoгpaммы имeют cлeдyющee пpeимyщecтвo: oни пpoвepяют вce пpoгpaммы нa виpycы пpи кaждoм иx вьшoлнeнии. Peзидeнтныe пpoгpaммы дoлжны быть oчeнь тщaтeльнo paзpaбoтaны, т.к. инaчe oни бyдyт зaдepживaть зaгpyзкy и выпoлнeниe пpoгpaмм.

Hepeзидeнтныe пpoгpaммы эффeктивны пpи нeoбxoдимocти oднoвpeмeннoгo oбcлeдoвaния вceй cиcтeмы нa виpycы и иx oбeзвpeживaния. Oни пpeдcтaвляют coбoй cpeдcтвo, дoпoлняющee peзидeнтныe пporpaммы.

Bы дoлжны пoмнить o нeoбxoдимocти peгyляpнoгo выпoлнeния aнтивиpycнoй пpoгpaммы. K coжaлeнию, кaк пoкaзывaeт oпыт, oб этoм чacтo зaбывaют. Пpeнeбpeжeниe пpoфилaктичecкими пpoвepкaми вaшero кoмпьютepa yвeличивaет pиcк инфициpoвaния нe тoлькo вaшeй кoмпьютepнoй cиcтeмы, нo и pacпpocтpaнeния виpyca нa дpyгиe кoмпьютepы. И нe тoлькo чepeз диcкeты, виpycы пpeкpacнo pacпpocтpaняютcя и пo лoкaльным ceтям.

Чтoбы впocлeдcтвии избeжaть гoлoвнoй бoли, лyчшe вceгo oбecпeчить aвтoмaтичecкoe выпoлнeниe aнтивиpycнoй пpoгpaммы. B этoм cлyчae пpoгpaммa бyдeт зaщищaть вaш кoмпьютep, нe тpeбyя oт вac кaкиx-либo явныx дeйcтвий. Для oбecпeчeния тaкoй зaщиты мoжнo пpи зaпycкe cиcтeмы ycтaнoвить peзидeнтныe aнтивиpycныe пpoгpaммы, a тaкжe иcпoльзoвaть нepeзидeнтныe пpoгpaммы, выпoлняeмыe пpи зaпycкe или пepиoдичecки в yкaзaннoe вpeмя.



Как правильно лечить?

Пpeждe вceгo, пepeзaгpyзитe кoмпьютep, нaжaв кнoпкy Reset. Taкaя пepeзaгpyзкa нaзывaeтcя «xoлoднoй», в oтличиe oт «тeплoй», вызывaeмoй кoмбинaциeй клaвиш Ctrl-Alt-Del. Cyщecтвyют виpycы, кoтopыe cпoкoйнeнькo выживaют пpи «тeплoй» пepeзaгpyзкe.

Зaгpyзитe кoмпьютep c диcкeты, зaщищeннoй oт зaпиcи и c ycтaнoвлeнными aнтивиpycными пpoгpaммaми. Heoбxoдимocть xpaнить aнтивиpycный пaкeт нa oтдeльнoй зaщищeннoй диcкeтe вызвaнa нe тoлькo oпacнocтью зapaжeния aнтивиpycныx пpoгpaмм виpycoм. Чacтeнькo виpyc cпeциaльнo ищeт нa жecткoм диcкe пporpaммy-aнтивиpyc и нaнocит eй пoвpeждeния.

Cтapaйтecь пoчaщe oбнoвлять вaши aнтивиpycныe пporpaммы. Пpичeм кaк oтeчecтвeнныe, тaк и импopтныe. Oтeчecтвeнныe— пoтoмy чтo y нac пишyт виpycы вce кoмy нe лeнь и, чтoбы быcтpo paзpaбoтaть aнтивиpycнyю пpoгpaммy, нaдo жить здecь. Импopтныe — пoтoмy чтo вce cильнee cливaютcя «нa-шe» и «иx» инфopмaциoнныe пpocтpaнcтвa, вce бoльшe зaпaдныx виpycoв пpoникaeт к нaм пo глoбaльным кoмпьютepным ceтям.

Пpи oбнapyжeнии зapaжeннoгo фaйлa жeлaтeльнo cкoпиpoвaть eгo нa диcкeтy и лишь зaтeм лeчить aнтивиpycoм. Этo дeлaeтcя для тoro, чтoбы в cлyчae нeкoppeктнoro лeчeния фaйлa, чтo, к coжaлeнию, cлyчaeтcя, пoпытaтьcя пoлeчить фaйл дpyгим aнтивиpycoм.

Ecли вaм пoнaдoбилacь пpoгpaммa из вaшиx cтapыx apxивoв или peзepвныx кoпий, нe пoлeнитecь пpoвepить ee. He pиcкynтe. Лyчшe пpeyвeличить oпacнocть, чeм нeдooцeнить ee.



Классификация вирусов по деструктивным возможностям

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

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

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

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

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



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

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



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

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

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

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

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

Наибольшее распространение в нашей стране  получили  программы-детекторы,а вернее программы, объединяющие в себе  детектор  и доктор. Наиболее известные представители этого класса - Aidstest, Doctor Web,MicroSoft AntiVirus. Антивирусы-детекторы расчитаны на конкретные вирусы и основаны на сравнении последовательности кодов содержащихся в теле  вируса  с кодами проверяемых программ.Такие программы нужно  регулярно  обновлять, так как они быстро устаревают и  не  могут  обнаруживать новые виды вирусов.

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

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



32

Введение



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

- файловые вирусы;

- загрузочные вирусы;

- комбинированные файлово-загрузочные вирусы.

Кроме того, вирусы бывают макрокомандные, резидентные и нерезидентные, полиморфные и маскирующиеся (стелс-вирусы).

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

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

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

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

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

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

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

1. Антивирусная программа Aidstest



Антивирусная программа Aidstest (зарегистрированная торговая марка АО ДиалогНаука (DialogueScience), автор Лозинский Д.Н.). Программа Aidstest предназначена для обнаружения и исправления программ, зараженных определенными типами вирусов, а именно типами, известными в настоящее время автору. В комплект поставки входит несколько файлов. Перечень опознаваемых вирусов дается в файле aidsread.me, а их краткое описание - в файле aidsvir.txt, также поставляемом в комплекте с антивирусной программой. Этот набор вирусов постоянно пополняется по мере появления у автора новых вирусов. В процессе исправления программные файлы, которые исправить невозможно, стираются.

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

Aidstest довольно надежно контролирует собственное здоровье относительно большинства типов вирусов. При обнаружении собственного заражения новым типом вируса Aidstest выдает соответствующее сообщение и прекращает работу.

Антивирусная программа Adinf. (зарегистрированная торговая марка АО ДиалогНаука (DialogueScience)). Поскольку Aidstest обнаруживает только уже известные автору вирусы, полезно иметь и программу, обнаруживающую появление на диске новых вирусов. АО ДиалогНаука предлагает один из эффективных и надежных ревизоров - ADinf Д.Мостового, который за несколько секунд просматривает весь диск и сообщает обо всех подозрительных происшествиях.



2. Антивирусная программа Doctor Web



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



3. Аппаратно-программный комплекс Sheriff



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

Norton AntiVirus for Windows 95 (Copiright Symantec). Пакет включает в себя резидентный мониторинг (Auto-Protect – автозащиту), сканер (Scanner), запускаемый вручную или периодически с помощью планировщика (Scheduler) и проверку при включении компьютера (StartUp) “критических” файлов (config, autoexec, command ит.п.).

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



4. Антивирусный пакет AntiViral Toolkit Pro



Антивирусный пакет AntiViral Toolkit Pro (AVP) для Windows 95 (Windows NT) ЗАО “Лаборатория Касперского” является лучшей программа в своей области. Эта программа - новый шаг в борьбе с компьютерными вирусами. Она представляет из себя полностью 32-х разрядное приложение, оптимизированное для работы в популярной во всем мире среде Microsoft Windows 95 (Windows NT) и использующее все ее возможности. AVP имеет удобный пользовательский интерфейс, характерный для Windows 95, большое количество настроек, выбираемых пользователем, а также одну из самых больших в мире антивирусных баз (свыше 30000), что гарантирует надежную защиту от огромного числа самых разнообразных вирусов.

В ходе работы AVP сканирует: оперативную память (DOS, XMS, EMS), файлы, включая архивные и упакованные, системные сектора, содержащие Master Boot Record, загрузочный сектор (Boot-сектор) и таблицу разбиения диска (Partition Table).

Основные особенности AVP:

Детектирование и удаление огромного числа самых разнообразных вирусов, в том числе:

- полиморфных или самошифрующихся вирусов;

- стелс-вирусов или вирусов-невидимок;

- новых вирусов для Windows 3.XX и Windows 95;

- макро вирусов, заражающих документы Word и таблицы Excel.

Сканирование внутри упакованных файлов (модуль Unpacking Engine).

Сканирование внутри архивных файлов (модуль Extracting Engine).

Сканирование объектов на гибких, локальных, сетевых и CD-ROM дисках.

Эвристический модуль Code Analyzer, необходимый для детектирования неизвестных вирусов.

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

Проверка объектов на наличие в них изменений.

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

Заключение



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

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

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

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

35

35.1

Свойства алгоритма



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

дискретностью;

определенностью;

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

массовостью.

Дискретность – последовательное выполнение простых или ранее определённых (подпрограммы) шагов. Преобразование исходных данных в результат осуществляется дискретно во времени.


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


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


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


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

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

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

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

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

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

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


Понятия алгоритма и программы разграничены не очень чётко. Обычно программой называют окончательный вариант алгоритма решения задачи, ориентированный на конкретного пользователя.


Таким образом, можно дать следующее определение программы для ЭВМ:


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

35.2

Исполнитель алгоритма — это некоторая система, способная выполнить действия, предписываемые алгоритмом.



Характеристики исполнителя:



        сpеда — это "место обитания" исполнителя;

        элементаpные действия — после вызова команды исполнитель совеpшает соответствующее элементаpное действие;

        cистема команд — некий строго заданный список команд, с заданными условиями применимости и описанными результатами выполнения команды;

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



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

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

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

35.3

АЛГОРИТМИЧЕСКИЙ ЯЗЫК. Искусственная система языковых средств, обладающая выразительными возможностями, достаточными для того, чтобы с ее помощью можно было задать любое принадлежащее заранее очерченному классу детерминированное общепонятное предписание, выполнение которого ведет от варьирующих в определенных пределах исходных данных к искомому результату. Такого рода предписания носят название алгоритмов, откуда и сам термин «алгоритмический язык». В систематическое употребление он был введен в 1958 Г.Боттенбрухом. Исторически понятие алгоритмического языка сформировалось в 50-х гг. 20 в. в процессе становления компьютерного программирования как самостоятельной научной дисциплины. Однако теоретические истоки этого понятия прослеживаются еще в работах 30-х гг. С.К.Клини, Э.Л.Поста, А.М.Тьюринга и А.Черча по уточнению общего математического понятия алгоритма. В настоящее время теория алгоритмических языков, а также проблематика, связанная с их разработкой и использованием, составляет один из важнейших разделов информатики.

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

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

37

КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

2.1. Машинно – ориентированные языки

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

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

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

- предсказуемость объектного кода и заказов памяти;

- для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

- трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

- низкая скорость программирования;

- невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.

2.1.1. Машинный язык

Как я уже упоминал, в введении, отдельный компьютер имеет свой определенный Машинный язык (далее МЯ),  ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый  МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

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

2.1.2. Языки Символического Кодирования

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

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

2.1.3. Автокоды

Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.

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

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

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

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

2.1.4. Макрос

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

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

Макрос одинаково может работать, как с программами, так и с данными.

2.2. Машинно – независимые языки

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

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

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

2.2.1.  Проблемно – ориентированные языки

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

Проблемных языков очень много, например:

Фортран, Алгол – языки, созданные для решения математических задач;

Simula, Слэнг - для моделирования;

Лисп, Снобол – для работы со списочными структурами.

Об этих языках я расскажу дальше.

2.2.2. Универсальные языки

Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ.

Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.

2.2.3. Диалоговые языки

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

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

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

Одним из примеров диалоговых языков является Бэйсик.

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

2.2.4. Непроцедурные языки

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

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

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

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

37.2

Трансля́тор — программа или техническое средство, выполняющее трансляцию программы[1][2][3][4][2].

Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.[1]

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.[1]

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

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

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

Интерпрета́тор (языка программирования) —

Программа или техническое средство, выполняющее интерпретацию.[1]

Вид транслятора, осуществляющего пооператорную (покомандную) обработку и выполнение исходной программы или запроса (в отличие от компилятора, транслирующего всю программу без её выполнения).[2]

Программа (иногда аппаратное средство), анализирующая команды или операторы программы и тут же выполняющая их.[3]

Языковый процессор, который построчно анализирует исходную программу и одновременно выполняет предписанные действия, а не формирует на машинном языке скомпилированную программу, которая выполняется впоследствии.[4]

Типы интерпретаторов

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

Интерпретатор компилирующего типа — это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки — большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как Java, PHP, Python, Perl (используется байт-код[источник не указан 593 дня]), REXX (сохраняется результат парсинга исходного кода[5]), а также в различных СУБД (используется p-код[источник не указан 593 дня]).

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

Некоторые интерпретаторы (например, для языков Лисп, Scheme, Python, Бейсик и других) могут работать в режиме диалога или так называемого цикла чтения-вычисления-печати (англ. read-eval-print loop, REPL). В таком режиме интерпретатор считывает законченную конструкцию языка (например, s-expression в языке Лисп), выполняет её, печатает результаты, после чего переходит к ожиданию ввода пользователем следующей конструкции.

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

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

Алгоритм работы простого интерпретатора

прочитать инструкцию;

проанализировать инструкцию и определить соответствующие действия;

выполнить соответствующие действия;

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

[Достоинства и недостатки интерпретаторов

[Достоинства

Бо́льшая переносимость интерпретируемых программ — программа будет работать на любой платформе, на которой есть соответствующий интерпретатор.

Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.

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

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

Недостатки

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

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

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

38

Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов).

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

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

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

Прототип — это объект-образец, по образу и подобию которого создаются другие объекты.

Обзор принципов объектно-ориентированного программирования

Мы уже многое повидали.

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

При объявлении классов мы знаем, в чём состоят различия между статическими и нестатическими членами, нам известно назначение деструкторов и особенности различных вариантов конструкторов.

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

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

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

Многое нам ещё предстоит узнать, но то главное, что собственно и делает C++ объектно-ориентированным языком, уже известно.

39

ОБЗОР

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

Данная статья предполагает наличие знаний о:

Использовании Windows

Простейших программных конструкциях таких, как переменные, циклы и функции

Структура среды программирования

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна.

Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95.

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

Главные составные части среды программирования

Ниже перечислены основные составные части Delphi:

Дизайнер Форм (Form Designer)

Окно Редактора Исходного Текста (Editor Window)

Палитра Компонент (Component Palette)

Инспектор Объектов (Object Inspector)

Справочник (On-line help)

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

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Прежде чем Вы начнете, убедитесь, что можете распознать эти два важных элемента. Дизайнер Форм показан на рис.1, окно Редактора - на рис.2.



Рис.1: Дизайнер Форм - то место, где Вы создаете визуальный интерфейс программы.



Рис.2: В окне Редактора Вы создаете логику управления программой.

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

Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее "кодируете".

Палитра Компонент (см. рис.3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

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



Рис.3: Палитра Компонент - место, где Вы выбираете объекты, которые будут помещены на вашу форму.

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

Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (рис.4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов.

Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width.

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



Рис.4: Инспектор Объектов позволяет определять свойства и поведение объектов, помещенных на форму.

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

Последняя важная часть среды Delphi - Справочник (on-line help). Для доступа к этому инструменту нужно просто выбрать в системном меню пункт Help и затем Contents. На экране появится Справочник, показанный на рис.5



Рис.5: Справочник - быстрый поиск любой информации.

Справочник является контекстно-зависимым; при нажатии клавиши F1, Вы получите подсказку, соответствующую текущей ситуации. Например, находясь в Инспекторе Объектов, выберите какое-нибудь свойство и нажмите F1 - Вы получите справку о назначении данного свойства. Если в любой момент работы в среде Delphi возникает неясность или затруднение - жмите F1 и необходимая информация появится на экране.

Дополнительные элементы

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

Меню (Menu System)

Панель с кнопками для быстрого доступа (SpeedBar)

Редактор картинок (Image Editor)

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

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



Рис.6: SpeedBar находится слева от Палитры Компонент.

Редактор Картинок, показанный на рис.7, работает аналогично программе Paintbrush из Windows. Вы можете получить доступ к этому модулю выбрав пункт меню Tools | Image Editor.



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

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

Инструментальные средства

В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:

Встроенный отладчик

Внешний отладчик (поставляется отдельно)

Компилятор командной строки

WinSight

WinSpector

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

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

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

Теперь давайте поговорим о компиляторах. Внешний компилятор, называется DCC.EXE, полезен, в основном, если Вы хотите скомпилировать приложение перед отладкой его во внешнем отладчике. Большинство программистов, наверняка, посчитают, то гораздо проще компилировать в среде Delphi, нежели пытаться создать программу из командной строки. Однако, всегда найдется несколько оригиналов, которые будут чувствовать себя счастливее, используя компилятор командной строки. Но это факт - возможно создать и откомпилировать программу на Delphi используя только DCC.EXE и еще одну программу CONVERT.EXE, которая поможет создать формы. Однако, данный подход неудобен для большинства программистов.

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

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

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

Стандартные компоненты

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

На первой странице Палитры Компонент размещены 14 объектов (рис.8) определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты такая же часть Windows, как мышь или окно.

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



Рис.8: Компоненты, расположенные на первой странице Палитры.

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

TMainMenu позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню.

TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши.

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

TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это

составляет 10-20 страниц. (Есть VBX и "родные" компоненты Delphi, где этот предел снят).

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

procedure TForm1.Button1Click(Sender: TObject);

begin

MessageDlg('Are you there?',mtConfirmation,mbYesNoCancel,0);

end;

TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Options | Project, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox'ов.

TRadioButton позволяет выбрать только одну опцию из нескольких. Если Вы опять откроете диалог Options | Project и выберете страницу Linker Options, то Вы можете видеть, что секции Map file и Link buffer file состоят из наборов RadioButton.

TListBox нужен для показа прокручиваемого списка. Классический пример ListBox'а в среде Windows - выбор файла из списка в пункте меню File | Open многих приложений. Названия файлов или директорий и находятся в ListBox'е.

TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен выпадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла.

TScrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox'ах при необходимости прокрутки текста для просмотра.

TGroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).

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

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

Это полный список объектов на первой странице Палитры Компонент. Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта.

Подробнее об Инспекторе Объектов

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

Лучший путь для изучения Инспектора объектов - поработать с ним. Для начала откройте новый проект, выбрав пункт меню File | New Project. Затем положите на форму объекты TMemo, TButton, и TListBox, как показано на рис.9.



Рис.9: Простой объект TForm с компонентами TMemo, TButton, и TListBox.

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

Вернитесь на форму и поставьте значение Ctl3D в True. Теперь нажмите клавишу и щелкните на TMemo и затем на TListBox. Теперь оба объекта имеют по краям маленькие квадратики, показывающие, что объекты выбраны.



Рис.10: Пункт меню Edit дает Вам доступ к двум диалогам для выравнивания выбранного набора компонент. Первый диалог - управление размерами объектов в наборе.

Выбрав два или более объектов одновременно, Вы можете выполнить большое число операций над ними. Например, передвигать по форме. Затем попробуйте выбрать пункт меню Edit | Size и установить оба поля Ширину(Width) и Высоту(Height) в Grow to Largest, как показано на рис.10. Теперь оба объекта стали одинакового размера. Затем выберите пункт меню Edit | Align и поставьте в выравнивании по горизонтали значение Center (см. рис.11).



Рис.11: Диалог Alignment помогает выровнять компоненты на форме.

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

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

Свойство Font работает на манер свойства Color. Чтобы это посмотреть, сначала выберите свойство Font для объекта TMemo и дважды щелкните мышкой на поле ввода. Появится диалог настройки шрифта, как показано на рис.12. Выберите, например, шрифт New Times Roman и установите какой-нибудь очень большой размер, например 72. Затем измените цвет фонта с помощью ComboBox'а в нижнем правом углу окна диалога. Когда Вы нажмете кнопку OK, Вы увидите, что вид текста в объекте TMemo радикально изменился.



Рис.12: Диалог выбора шрифта позволяет Вам задать тип шрифта, размер, и цвет.

В завершение краткого экскурса по Инспектору Объектов дважды щелкните на свойство Items объекта ListBox. Появится диалог, в котором Вы можете ввести строки для отображения в ListBox. Напечатайте несколько слов, по одному на каждой строке, и нажмите кнопку OK. Текст отобразится в ListBox'е.

Сохранение программы

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

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

После создания поддиректории для хранения Вашей программы нужно выбрать пункт меню File | Save Project. Сохранить нужно будет два файла. Первый - модуль (unit), над которым Вы работали, второй - главный файл проекта, который "владеет" Вашей программой. Сохраните модуль под именем MAIN.PAS и проект под именем TIPS1.DPR. (Любой файл с расширением PAS и словом "unit" в начале является модулем.)

TButton, исходный текст, заголовки и Z-упорядочивание

Еще несколько возможностей Инспектора Объектов и Дизайнера Форм.

Создайте новый проект. Поместите на форму объект TMemo, а затем TEdit так, чтобы он наполовину перекрывал TMemo, как показано на рис.13. Теперь выберите пункт меню Edit | Send to Back, что приведет к перемещению TEdit вглубь формы, за объект TMemo. Это называется изменением Z-порядка компонент. Буква Z используется потому, что обычно математики обозначают третье измерение буквой Z. Так, X и Y используются для обозначения ширины и высоты, и Z используется для обозначения глубины.



Рис.13: Объект TEdit перекрывается наполовину объектом TMemo.

Если Вы "потеряли" на форме какой-то объект, то найти его можно в списке Combobox'а, который находится в верхней части Инспектора Объектов.

Поместите кнопку TButton в нижнюю часть формы. Теперь растяните Инспектор Объектов так, чтобы свойства Name и Caption были видны одновременно на экране. Теперь измените имя кнопки на Terminate. Заметьте, что заголовок (Caption) поменялся в тот же момент. Такое двойное изменение наблюдается только если ранее не изменялось свойство Caption.

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

TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

Terminate: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;

В этом фрагменте кнопка TButton называется Terminate из-за того, что Вы присвоили это название свойству Name. Заметьте, что TMemo имеет имя, которое присваивается по умолчанию.

Перейдите на форму и дважды щелкните мышкой на объект TButton. Вы сразу попадете в окно Редактора, в котором увидите фрагмент кода вроде этого:

procedure TForm1.TerminateClick(Sender: TObject);

begin



end;

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

TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

Terminate: TButton;

procedure TerminateClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

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

Теперь самое время написать строчку кода. Это очень простой код, состоящий из одного слова Close:

procedure TForm1.TerminateClick(Sender: TObject);

begin

Close;

end;

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

Прежде, чем перейти к следующему разделу, перейдите в Инспектор Объектов и измените значение свойства Name для кнопки на любое другое, например OK. Нажмите Enter для внесения изменений. Посмотрите в Редактор, Вы увидите, что код, написанный Вами изменился:

procedure TForm1.OkClick(Sender: TObject);

begin

Close;

end;

Заметьте, что аналогичные изменения произошли и в определении класса:

TForm1 = class(TForm)

Edit1: TEdit;

Memo1: TMemo;

Ok: TButton;

procedure OkClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Тьюторы (интерактивные обучающие программы)

Delphi предоставляет тьютор, содержащий несколько тем и который можно запустить из пункта меню Help | Interactive Tutors. Тьютор запускается только если среда Delphi имеет все установки по умолчанию. Если конфигурация была изменена, то проще всего сохранить файл DELPHI.INI под другим именем и скопировать файл DELPHI.CBT в DELPHI.INI.

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

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

Тема 1. Среда визуального программирования DELPHI

Студент должен:

знать: технологию визуального проектирования.

уметь: работать в визуальной среде программирования Delphi.

Запуск Delphi.

Главное окно Delphi.

Пиктографические кнопки.

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

Окно формы.

Окно инспектора объектов.

Окно кода программы.

Основы визуального программирования: настройка Delphi, имена в Delphi, изменение свойств формы.

Размещение нового компонента.

Реакция на событие: модификация формы, обработчик события OnClick, динамические изменения свойств компонента.

Библиотека компонентов.

Краткий конспект

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

Delphi. Основные характеристики продукта

Delphi - это комбинация нескольких важнейших технологий:

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

Объектно-ориентированная модель компонент

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

Масштабируемые средства для построения баз данных

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

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

Событийная модель в Windows всегда была сложна для понимания и отладки. Delphi позволяет легко освоить приемы и методы объектно-ориентированного программирования и программирования с управлением по событиям.

БЫСТРАЯ РАЗРАБОТКА РАБОТАЮЩЕГО ПРИЛОЖЕНИЯ ИЗ ПРОТОТИПОВ

Традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста

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

Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Визуальные компоненты Delphi открыты для надстройки и переписывания.

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

СТРУКТУРНОЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

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

Объектно-ориентированное программирование и программирование с управлением по событиям. Основные понятия

Объекты это некоторые элементы, из которых строится приложение (программное); С объектами связаны так же такие понятия как свойства события и методы, а так же классы объектов и методов.

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

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

Методы способы, которыми объект может реагировать на те или иные события. Говорят, что события управляют методами объектов.

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

На бытовом уровне легко рассмотреть примеры, иллюстрирующие эти понятия (см. табл.1).

Рисунок 1.1. Таблица 1.



увеличить

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

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

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

Интерфейс среды Delphi

Существует два основных вида интерфейса под Windows: MDI и SDI.

MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон ВНУТРИ одного большого окна.

Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI) , и состоит из нескольких отдельно расположенных окон.

Ниже перечислены основные составные части Delphi:

Дизайнер Форм (Form Designer)

Окно Редактора Исходного Текста (Editor Window)

Палитра Компонент (Component Palette)

Инспектор Объектов (Object Inspector)

Справочник (On-line help)

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

Соответственно общий интерфейс среды по умолчанию состоит из 4-х основных окон (Рис .1):

Рисунок 1.2. Рис. 1



увеличить

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор). Прежде чем Вы начнете, убедитесь, что можете распознать эти два важных элемента. Дизайнер Форм показан на Рис.2, окно Редактора - на Рис.3.

Рисунок 1.3. Рис. 2: Дизайнер Форм - то место, где Вы создаете визуальный интерфейс программы



увеличить

Рисунок 1.4. Рис.3: В окне Редактора Вы создаете логику управления программой.



увеличить

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

Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее "кодируете".

Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (Рис.4). Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов.

Рисунок 1.5. Рис. 4: Инспектор Объектов позволяет определять свойства и поведение объектов, помещенных на форму.



Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width.

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

В главном окне принято выделять три основных выделенных элемента (не считая стандартной строки-заголовка):

Срока меню (Menu System)

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

Панель быстрого доступа (SpeedBar)

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

Палитра Компонент (см. Рис.5) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

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

Рисунок 1.6. Рис.5: Палитра Компонент - место, где Вы выбираете объекты, которые будут помещены на вашу форму.



увеличить

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

Рисунок 1.7. Рис.6: SpeedBar находится слева от Палитры Компонент.



Программирование в Delphi. Библиотека визуальных компонентов - часть 1

В данной статье мы кратко остановимся на иерархии классов Delphi и рассмотрим некоторые компоненты VCL Delphi, которые располагаются на закладках Standard и Additional.

Настало время рассмотреть компоненты, входящие в библиотеку визуальных компонентов (Visual Component Library) Delphi. Библиотека визуальных компонентов содержит большое число классов <готовых к употреблению>. Вся VCL построена по иерархическому принципу. Хотя VCL и называется библиотекой визуальных компонентов, на самом деле в нее входят также и невизуальные компоненты. Отметим, что визуальными называются компоненты, которые видны на форме как во время создания приложения, так и во время работы приложения. Невизуальные компоненты - видны только во время разработки приложения.

Все компоненты VCL являются классами. И все они являются потомками базового класса TObject. Данный класс является абстрактным и содержит базовые методы, которые наследуются классами-потомками. Основные методы класса TObject - это:

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

Прямыми потомками класса TObject являются классы TPersistent, TException и TIniFile.

Нам для рассмотрения компонентов Delphi наиболее интересен класс TPersistent, который добавляет к методам класса TObject метод Assign. Этот метод позволяет передавать поля и свойства одного объекта другому.

Потомками класса TPersistent являются классы TComponent, TClipboard и TStrings. Именно класс TComponent является базовым классом для всех компонентов VCL Delphi, расположенных в палитре компонентов.

Сразу после установки Delphi, в палитре компонентов мы видим 19 закладок:



Каждая закладка объединяет стандартные компоненты Delphi в группы по отдельным признакам. Рассмотрим эти закладки:

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



На этой закладке расположены следующие компоненты (слева направо):

Название

Название на русском языке

Краткое описание компонента

Frames

Фреймы

Фрейм - это похожий на форму компонент, который используется для размещения внутри него других компонентов. Может размещаться на формах или других фреймах. Для создания нового фрейма нужно выбрать пункт меню File/New Frame (Файл/Новый Фрейм)

MainMenu

Главное меню

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

PopupMenu

Всплывающее меню

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

Label

Метка

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

Edit

Поле для ввода

Служит для отображения текстовой информации, которую пользователь может изменять. Удобно применять для ввода или редактирования какой-либо текстовой информации

Memo

Многострочное поле

Работает как и поле для ввода, только позволяет вводить (редактировать) несколько строк текста

Button

Кнопка

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

CheckBox

Флажок

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

RadioButton

Переключатель

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

ListBox

Список

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

ComboBox

Выпадающий список

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

ScrollBar

Полоса прокрутки

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

GroupBox

Группа

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

RadioGroup

Группа переключателей

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

Panel

Панель

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

ActionList

Список действий

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

Additional - на этой закладке располагаются дополнительные интерфейсные компоненты.



Данная закладка содержит следующие компоненты (слева направо):

Название

Название на русском языке

Краткое описание компонента

BitBtn

Кнопка с рисунком

Кнопка, которая, помимо текста, может отображать рисунок

SpeedButton

Кнопка быстрого доступа

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

MaskEdit

Поле для ввода по шаблону

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

StringGrid

Таблица со строками

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

DrawGrid

Таблица

Позволяет работать с произвольной информацией в таблице

Image

Рисунок

Служит для отображения графического растрового файла, иконки или метафайла

Shape

Геометрическая фигура

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

Bevel

Фаска

Позволяет украсить ваше приложение, путем размещения <трехмерных> линий или прямоугольников

ScrollBox

Область прокрутки

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

CheckListBox

Список переключателей

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

Splitter

Разделитель

Размещается между двумя выровненными компонентами-контейнерами и позволяет пользователю во время работы приложения изменять размеры этих компонентов с помощью перемещения разделителя

StaticText

Статический текст

Компонент похож на метку, но имеет некоторые дополнительные возможности (о них мы поговорим в дальнейшем)

ControlBar

Панель инструментов

Позволяет быстро создавать панели инструментов

ApplicationEvents

События приложения

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

Chart

Диаграмма

Позволяет отображать диаграммы различной формы и вида

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