Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

инфопособие2011

.pdf
Скачиваний:
39
Добавлен:
27.02.2016
Размер:
6.34 Mб
Скачать

Информатика

113

 

 

Рисунок 8.5 Таблица Unicode

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

Для кодировки символов кириллицы используются несколько таблиц KOI8-R и другие таблицы.

В 1756 г. выдающийся русский ученый Михаил Васильевич Ломоносов (1711 – 1765) впервые высказал мысль, что для воспроизведения любого цвета в природе достаточно смешать в определѐнных пропорциях три основных цвета: красный, зелѐный, синий. Теория трѐхкомпонентностицвета, опираясь на многочисленные опыты, утверждает, что в зрительной системе человека возникают нервные возбуждения трѐх типов, каждое из которых независимо от остальных. Многообразие цветовых ощущений при зрительном восприятии можно объяснить многообразием комбинаций трѐх типов возбуждений. Эта теория лежит в основе большинства практических методов воспроизведения цветных изображений: в фотографии, телевидении, кино и т. п.

114

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

 

 

а) нормально отображаемая веб-страница

б) сбой кодировки веб-страницы Рисунок 8.6. Вид веб-страницы в разных кодировках

Информатика

115

 

 

Компьютерное кодирование изображений также построено на этой теории. Картинка разбивается вертикальными и горизонтальными линиями на маленькие прямоугольники. Полученная матрица прямоугольников называется растром, а элементы матрицы – пикселями (от англ. picture'selement – «элемент изображения»). Цвет каждого пикселя представлен тройкой значений интенсивности трѐх основных цветов. Чем больше битов выделено для каждого основного цвета, тем большую гамму цветов можно хранить про каждый элемент изображения. В стандарте, называемом truecolor(реальный цвет), на каждую точку растра тратится 3 байта, но 1 байту на каждый основной цвет. Таким образом, 256 уровней яркости красного цвета, 256 уровней яркости зелѐного и 256 уровней яркости синего дают вместе примерно 16,7 млн различных цветовых оттенков (кодировка RGB), это превосходит способность человеческого глаза к цветовосприятию.

Чтобы хранить всю картинку, достаточно записывать в некотором порядке матрицу значений цветов пикселей, например слева направо и сверху вниз, часть информации о картинке при таком кодировании потеряется. Потери будут тем меньше, чем мельче пиксели. В современных компьютерных мониторах с диагональю 15—17 дюймов разумный компромисс между качеством и размером элементов картинки на экране обеспечивает растр от 768* 1024 точки; а отечественное телевидение стандарта SECAM — 625 линий на кадр).

Так как визуальное восприятие цвета является трѐхкомпонентиым, то всякий цвет может быть задан не менее чем тремя параметрами. Во многих программах обработки изображения используется более приближѐнная к человеческому восприятию схема кодирования HSV (от англ. hue– «цветовой тон», saturation– «насыщенность» и value– «величина», «яркость»).

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

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

116

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

 

 

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

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

На рисунке 8.7 представлен скриншот приложения работы с графикой Paint.NET на котором видна цветовая палитра закодированная с помощью RGB и HSV схем.

Рисунок 8.7 Иллюстрация RGBиHSVкодирования

Информатика

117

 

 

Кодирование звуков состоит в том,

что звук, вначале преобразуется

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

затем через очень маленькие

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

вдвоичном коде. Этот процесс называется дискретизацией, а устройство для его выполнения – аналого-цифровымпреобразователем (АЦП). Типичный восьмибитный АЦП преобразует напряжение в диапазоне от-500 мВ до 500 мВ

ввосьмиразрядные двоичные числа в диапазоне от -12810до 12710.

Обратный процесс – воспроизведение закодированного звука производится с помощью цифро-аналогового преобразователя (ЦАП). Тогда двоичные числа из диапазона от -12810до 12710преобразуются в напряжение из диапазона от -500мВдо500мВ.

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

На качество воспроизведения закодированного звука в основном влияют два параметра – частота дискретизации и размер в битах, отводимый под запись значения амплитуды. Например, при записи на компакт-диски (CD) используются 16-разрядные значения, а частота дискретизации равна 44 032 Гц. Эти параметры обеспечивают превосходное качество звучания речи и музыки.

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

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

Контрольные вопросы и задания:

1.Почему информация в ЭВМ представляется в виде 0 и 1?

2.Какие имена носят логические элементы?

3.Какие системы исчисления кроме двоичной вам известны?

4.Где сегодня применяют двенадцатеричную систему счисления?

118

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

5.Когда и где применялась алфавитная система счисления?

6.Какие системы счисления относятся к позиционным?

7.Переведите в двоичную систему число текущего года, вашего года рождения, номер вашего студенческого билета.

8.Сложите, затем перемножьте следующие числа, а результаты переведите в десятичную систему: 1000111011100; 1000111111.

9.Что называется основанием системы счисления?

10.Какое число называют основанием десятеричной системы счисления?

11.Приведите примеры алфавитных систем счисления.

12.Зачем понадобилось использовать родственные двоичной системы счисления?

13.Почему понадобилось использовать родственные двоичной системы счисления?

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

15.Какие названия могут носить ячейки памяти?

16.Что из себя представляет система ASCII, для чего она нужна? 17.Какие существуют кодировки кириллицы?

18. Что нужно сделать при сбое представления веб-страницы?

19.На какой теории основано компьютерное кодирование изображений?

20.Что такое растр?

21. Что называется пикселем?

22.Какое количество информации тратится на растр?

23.Какой процесс называется дискретизацией?

24.Какие параметры влияют на качество звука при кодировании?

Информатика

119

 

 

Глава 9. ЯЗЫКИ ПРОГРАММИРОВАНИ. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ

9.1 Понятие программы

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

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

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

120

Глава 9.ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ

 

 

9.2 Машинный язык и языки программирования высокого уровня

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

Если нам надо сложить два числа, хранящиеся в ячейках А и В, команду на машинном языке мы должны записать в виде трех элементов КАВ, где К - код (номер) операции «сложить», А и В (номера) ячеек памяти (ОЗУ), где хранятся слагаемые (операнды).

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

Например: 0010000001010. машина прочитает так: «Сложить число из ячейки номер десять в оперативной памяти с числом, стоящим в сумматоре».

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

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

Информатика

121

 

 

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

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

Вот пример программы, записанной с помощью символьных обозначений:

СЛЖ

П№1,

П№2

> П№3

ДЕЛ

П№3,

2

> П№3

Что означает СЛоЖить ячейки Памяти №1 и №2, результат поместить в ячейку Памяти №3. Потом ячейку Памяти №3 разДЕЛить на 2 и результат снова поместить и ячейку Памяти №3.

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

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

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

122

Глава 9.ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ

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

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

Первым языком программирования, при создании которого применялся новый способ – разработка языка по предварительной спецификации, описанию, стал язык ФОРТРАН, разработанный сотрудниками фирмы IBM в 1956 году. Этот язык основан не на машинных кодах, а как язык удобный для человека.

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

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

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

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

(рис. 9.1 и 9.2)

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