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

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

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

Счетчик (Spin Button) – элемент управления, используемый для изменения числового значения, выводимого в поле. Чаще всего счетчик размещается рядом с полем. Например, поле может отображать количество копий документа, выводимых на печать, а счетчик служит для удобства изменения этого числа. Счетчик, по-существу, состоит из двух кнопок – для увеличения или уменьшения числа, хранимого в виде свойства Value (Значение) на величину, определяемую другим свойством счетчика – свойством Small Change (Малое изменение). Изменение свойства Value инициирует событийную процедуру, которая изменяет поле, отображающее значение счетчика.

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

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

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

Флажок (Check Box) – квадратик, который пользователь может пометить, щелкнув по нему мышью. В помеченном квадратике появляется галочка. Если по флажку щелкнуть мышью повторно, то галочка исчезнет, т.е. пометка будет отменена. Одним из свойств флажка является заголовок (Caption), располагающийся справа от квадратика. Заголовок – это название флажка, поясняющее его смысл. Например, если при использовании текстового редактора Word выбрать пункт меню Сервис/Язык/Расстановка переносов, то появится диалоговое окно, в котором можно пометить флажок Автоматическая расстановка переносов. В зависимости от состояния этого флажка Word поступает по-разному, когда очередное слово не помещается в текущей строке. Если флажок не установлен, то слово целиком перейдет в следующую строку. Если флажок установлен, то слово будет перенесено по слогам.

 

2.3. Типовые диалоги в интерфейсе программных продуктов

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

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

 
 

Диалог Сохранить кактакже всегда используется на начальной стадии создания нового документа – для его первого сохранения. После установки параметров страницы, и внесения в документ нескольких строк рекомендуется выполнить первое сохранение формируемого файла. При этом надо выбрать каталог (папку – см. рис. 2.4) для его размещения, дать ему имя и выбрать тип. Чтобы облегчить эту работу, в диалоговом окне предусмотрены соответствующие поля со списками. Тип документа (файла), по-существу, означает формат его хранения. Например, если документ, подготовленный с помощью Word 2000, записать в формате Word 6.0/95 или RTF, то с ним можно работать на другом компьютере, где установлен Word 6.0. Стандартный диалог Открыть очень похож на диалог Сохранить как, только имя файла надо не назначать, а выбирать из имеющихся. Диалог Печать (см. рис.7.2) позволяет указать, что именно печатать в открытом документе (например, какие страницы), на каком принтере (если их установлено несколько) и сколько экземпляров.

 

Рис. 2.3. Стандартный диалог Параметры страницы

 

 
 

Рис. 2.4. Стандартный диалог Сохранить как

 

 

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


3. Кодирование и хранение информации. Системы счисления

 

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

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

При всех видах кодирования информация представляется в виде битов. Бит – это один двоичный разряд: 0 или 1. Для того чтобы закодировать алфавитно-цифровой символ, число, звук или цвет точки в графическом документе, естественно, не обойтись одним битом. Поэтому для кодирования, хранения и передачи информации биты объединяются в байты – в группы по 8 битов. В одном байте можно закодировать 28 = 256 комбинаций состояний битов – от 0000 0000 до 1111 1111. Следовательно, в 1 байте можно закодировать алфавитно-цифровой символ, а также цвет точки (пиксела), если используется не более 256 цветов или оттенков серого цвета. Для кодирования других элементов информации применяются комбинации байтов (по 2, 4, 8 и более). Поэтому объем данных (хранимых или передаваемых), а также емкость запоминающих устройств принято измерять в байтах, килобайтах (1 Кбайт=1024 байт, примерно полстраницы текста), мегабайтах (1 Мбайт=1024 Кбайт, примерно 500 страниц текста), гигабайтах (1 Гбайт=1024 Мбайт) и терабайтах (1 Тбайт=1024 Гбайт).

Для того чтобы записать состояние байта, можно использовать 8 двоичных, 3 десятичных или 2 шестнадцатеричных цифры, т.е. можно воспользоваться одной из систем счисления, применяемых в информационных технологиях. Система счисления – это способ именования и изображения чисел с помощью символов, имеющих определенные количественные значения. В двоичной системе два таких символа: 0 и 1. Эта система удобна для хранения информации в электронных устройствах, в которых обычно четко фиксируются два состояния: намагничено – не намагничено, проводит – не проводит и т.п. В десятичной системе счисления 10 символов: 0,1,2,3,4,5,6,7,8,9, а в шестнадцатеричной - 16: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Повсеместное распространение именно десятичной системы, по-видимому, связано с тем, что человек учился считать на пальцах, а их у него оказалось 10. Для записи содержимого памяти компьютеров гораздо удобнее шестнадцатеричная система. Так содержимое одного полубайта в двоичной, десятичной и шестнадцатеричной системах счисления записывается следующим образом (см. табл. 3.1).

Таблица 3.1

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

 

Двоичная система Десятичная система Шестнадцатеричная система
A
B
C
D
E
F

 

Поскольку байт состоит из двух полубайтов, то содержимое 1 байта памяти всегда можно записать двумя шестнадцатеричными цифрами. Например, если для кодирования алфавитно-цифровой информации применяется код ASCII (American Standard Code for Information Interchange), то шестнадцатеричным кодом цифры 0 будет 30, кодом латинской буквы A – 41 и т.п. На персональных компьютерах код ASCII используется при работе под управлением дисковой операционной системы (DOS), а также в текстовом редакторе Блокнот, работающем под управлением операционной системы Windows. Для кодирования символов в большинстве других программ, работающих под управлением различных версий Windows, применяется код ANSI, отличающийся от ASCII, в основном, в части кодирования букв национальных алфавитов, не совпадающих с английским. Общей чертой этих и некоторых других встречающихся кодировок текста является использование 1 байта для кодирования 1 символа. Для перекодирования текстовой информации (ASCII ®ANSI, ANSI®ASCII и т.п.) используются специальные программы.

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

123708 = 1E33C (16) = 0001 1110 0011 0011 1100 (2)

Рассматриваемые системы счисления являются позиционными: значение каждой цифры зависит от ее позиции в числе. Позиция 0 (крайняя справа в целом числе) подразумевает умножение стоящей в ней цифры на основание системы, возведенное в степень 0. Цифра в позиции 1 должна быть умножена на основание системы, возведенное в степень 1 и т.д. Например, цифра 7 в десятичном представлении числа 123708 находится во второй позиции и, следовательно, означает 7 . 102 = 700. Шестнадцатеричное представление числа 123708 можно пояснить следующей записью:

1E33C (16) = 1*16 4 + 14*16 3 + 3*16 2 + 3*16 1 +12*16 0 = 65536+57344+768+48+12 =123708

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

Целые числа обычно хранятся в двухбайтовом (Integer - целое) или четырехбайтовом (Long – длинное целое) формате. В n байтах можно разместить целое положительное число от 0 до 256 n - 1. Поскольку один из разрядов требуется для кодирования знака числа, то максимальное по модулю целое число, которое можно закодировать в двух байтах, равно 32767 , а в четырех байтах - 2147483647. При размещении целого числа на регистре арифметического устройства процессора число как бы прижимается к правому краю регистра – считается, что десятичная точка зафиксирована справа от младшего разряда. Поэтому по способу представления целые числа называют еще числами с фиксированной точкой.

Действительные числа кодируются сложнее. По способу представления в разрядной сетке их называют числами с плавающей точкой. Такие числа обычно хранятся в четырехбайтовом (Single – одинарная точность) или в восьмибайтовом (Double – двойная точность) формате. В первом байте кодируются знак числа, знак его порядка и сам порядок, а в остальных байтах мантисса. Например, если бы число 19705.0001 представлялось в разрядной сетке в десятичной системе счисления, то его порядок был бы равен 5, а мантисса 0.197050001, т.е. 19705.0001=105 . 0.197050001. Мантисса в разрядной сетке арифметического устройства как бы прижимается к левому краю, причем ноль перед десятичной точкой и сама точка в разрядную сетку не заносятся, а только подразумеваются. Человек, имеющий дело с вычислениями, должен представлять себе, как такие числа складываются и вычитаются. Пусть к рассмотренному уже числу требуется прибавить число 0.0001. В нормализованном виде, т.е. с порядком и мантиссой, прижатой к левому краю разрядной сетки, оно будет иметь вид 10-3 . 0.1. Чтобы сложить наши числа, процессор сначала увеличит порядок второго числа до 5, сдвинув мантиссу вправо на 8 разрядов, т.е. денормализует второе число с целью выравнивания порядков. Теперь, когда это число примет вид 105 . 0.000000001 , процессор сложит мантиссы и при необходимости нормализует результат, прижав его мантиссу к левому краю разрядной сетки с соответствующей коррекцией порядка. Критическим моментом в этой последовательности операций является денормализация меньшего слагаемого. В этот момент младшие разряды его мантиссы могут вытолкнуться из разрядной сетки, если она недостаточно велика, а это приведет к потере точности результата. Поэтому при выборе форматов накапливаемых и хранимых данных (например, в таблицах баз данных) специалист должен представлять диапазон значений признаков – параметров объектов, часто называемых атрибутами.

Графическая информация представляется в растровых или векторных форматах. В векторных форматах записываются как бы команды для плоттера или принтера: выбрать такой-то цвет, встать в точку с такими-то координатами, провести отрезок прямой в точку с другими координатами и т.п. Такой способ кодирования графических документов (по-существу, в виде команд, хранимых в текстовом файле) компактен, точен, позволяет легко изменять масштаб изображения, но применяется только для представления формализованной информации – графиков, схем, чертежей, карт. Растровый способ позволяет закодировать любое изображение – картину, фотографию и т.п. Файл, содержащий изображение в растровом формате, обычно получают с помощью цифрового фотоаппарата или сканера – периферийного устройства компьютера, которое оптически сканирует картинку с определенным шагом между линиями сканирования и точками на этих линиях. Для каждой точки запоминается оттенок серого или цвет. При разрешении 600 dpi (точек на дюйм) на каждый дюйм (2.54 см) приходится 600 точек. Следовательно, при сканировании картинки размером 25 . 25 см2 должно быть закодировано около 36 млн точек. Если цвет одной точки кодировать в двух байтах (стандарт High Color – 65536 цветов), то для хранения такой картины потребуется примерно 70 Мбайт памяти. Поэтому все форматы хранения графических образов предусматривают сжатие информации, которое может осуществляться без потерь (форматы BMP, GIF, PCX, TIFF) или с потерями (формат JPEG). В последнее время все чаще применяется формат JPEG (имена файлов имеют расширение JPG), уменьшающий объем данных в десятки раз с потерями, которые не заметны для человеческого глаза. В основе методов сжатия информации чаще всего лежит замена многократного повторения величины указанием числа повторений, а также замена часто повторяющихся величин короткими кодами (метод Хаффмана). Сжатие с потерями основывается на том, что незаметными для глаза флюктуациями цветовых оттенков можно пренебречь, уменьшив тем самым количество кодируемых изменений оттенков цвета.

Аудио информация представляется следующим образом: с определенной регулярностью измеряется амплитуда электрического сигнала, и полученные в каждый момент результаты записываются в виде двоичных чисел (оцифровываются). Для высококачественной оцифровки на представление каждого числа отводятся 2 байта. Например, при записи на музыкальный CD (Compact Disk) стандартом является «44.1 Кгц 16 бит стерео». Это означает, что при оцифровке за каждую секунду звучания делается 44100 отсчётов по 16 бит на каждый из двух каналов. Таким образом, для хранения одной секунды идеального стереозвука требуется 44100 (отсчётов) . 2 (байта) . 2 (канала) = 176400 байт, или 172.3 Кбайта. Разумеется, подобный размер не всегда приемлем, и, как и в случае с графической и видеоинформацией, применяются различные способы сжатия. В настоящее время наиболее популярен формат MP3, в которых применяется сжатие с потерями. Этот формат разработан международной организацией MPEG (Motion Pictures Expert Group), занимающейся разработкой стандартов для цифрового сжатия видео и аудиоинформации. При сжатии в 11-12 раз в формате MP3 для записи 1 секунды звучания требуются 128 Кбит, или 16 Кбайт, т.е. в 1 Гбайт памяти «влезает» 18 часов музыки. Такое сжатие считается оптимальным. Допустимы и большие степени сжатия, но тогда потери становятся заметны многим слушателям.

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

В настоящее время графика в формате JPG и звук в формате MP3 поддерживаются не только компьютерными программами (ACDSее, WinAMP и др.), но и почти всеми DVD-плейерами.

 

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


4. Алгоритмы. Роль алгоритмизации в решении задач и формализации знаний. Информационные ресурсы

 

Решение задач на ЭВМ реализуется программным способом – путем выполнения последовательности операций, предусмотренных алгоритмом решения задачи. Алгоритм – это точная запись конечного числа действий, приводящих к решению задачи. Алгоритм определяет процесс преобразования информации от исходных данных к результатам. Рассмотрим пример простой задачи. Пусть поезд вышел из пункта A в момент времени t1 и прибыл в пункт B в момент tn. Во время следования поезда в моменты времени t1, t2, … ti, …, tn измерены значения скорости его движения v1, v2, … vi, …, vn. Требуется найти расстояние S от пункта A до пункта B.

Решение этой задачи, как и всякой другой, начато с построения модели явления (объекта). Как уже отмечалось в разделе 3, построение модели состоит в учете только существенных для рассматриваемых задач характеристик, описываемых ограниченным набором параметров. В нашем примере такими параметрами являются S, n и числовые массивы значений ti и vi , где i = 1, 2, …, n. Если мы хотим получить точное решение задачи, то требуется детальная модель, в рамках которой значения времени и скорости чаще регистрируются на тех участках пути, где скорость быстро изменяется.

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

Символы * и / при описании алгоритмов означают умножение и деление. Следовательно, для вычисления расстояния от точки i до точки i+1 время движения на этом интервале умножается на среднюю скорость.

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

В блоке 1 выполняются начальные присваивания: в начальный момент, когда поезд еще в точке A, i=1, а S=0. Операция присваивания очень важна для понимания компьютерной реализации алгоритмов. Дело в том, что при разработке программы для ЭВМ считается, что i и S – это не только обозначения математических переменных, но и обозначения ячеек памяти компьютера. Операция присваивания – это занесение нового значения в соответствующую ячейку. Присваивание отображает изменение значения соответствующей переменной в процессе реализации алгоритма. Чтобы отличать присваивание от обычного математического равенства, в некоторых языках программирования, например, в Паскале, операция присваивания обозначается не знаком равно (=), а двумя значками – двоеточием и равно (:=). В этом, вообще говоря, нет необходимости, т.к. знак равенства в математическом смысле при записи алгоритмов применяется только для проверки условий.

  S = S + (ti+1 – ti) * (vi + vi+1) / 2    

S = 0; i = 1
1

 

 
 


 
 

 


i = i + 1  
3

 

 
 

 


4

 

       
   
 
 


да нет

 

 

Рис. 4.1. Изображение алгоритма в виде блок-схемы

 

На блок-схемах проверка условий помещается в особые – логические блоки, обозначаемые не прямоугольником, а ромбом (см. блок 4 на рис. 4.1), а в программах инструкции по проверке условий начинаются со слова IF (если).

В блоке 2 (см. рис. 4.1) пройденный путь получает приращение: в ячейку S помещается новое значение, равное прежнему, плюс значение пути за время от ti до ti+1. В блоке 3 наращивается значение i, т.к. мы собираемся повторить вычисления в блоке 2 для следующего интервала – при новом значении индекса i, увеличенном на 1. Но ведь последнее значение i, при котором надо вычислять приращение пути, равно n-1. Вот поэтому и проверяется условие ( i < n? ) в логическом блоке 4. До тех пор, пока это условие выполняется, повторно будут работать блоки 2, 3. Как только условие не выполнится, алгоритм завершит работу – к этому моменту в ячейке S накопится значение пройденного пути.

В рассмотренном алгоритме блоки 2-4 работают n-1 раз, т.е. выполняются циклически, и при каждом исполнении цикла переменные (содержимое ячеек) i и S обновляются. Именно циклы позволяют кратко записывать алгоритмы, в которых многие операции повторяются сотни, тысячи и даже миллионы раз.

Алгоритм решения задачи имеет ряд обязательных свойств [ 4 ]:

· дискретность - разбиение процесса обработки на более простые шаги,

· определенность – однозначность выполнения каждого шага,

· выполнимость - возможность получения результата за конечное число шагов,

· массовость – пригодность алгоритма для решения некоторого класса задач.

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

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