Что такое символьная информация приведите примеры
Символьная информация. Понятие о знаках и знаковых системах
Знаки представляют материальное замещение понятий, которыми человек пользуется, чтобы упорядочить и упростить свои представления о внешнем мире (так, понятие “человек” обобщает множество индивидуальностей разного возраста, пола, расы и т.д., а этому понятию может соответствовать определенный знак, например, пиктограмма).
Обычно знаки образуют систему. Примером знаковой системы являются различные языки – от живого языка человеческого общения до алгоритмического языка для записи программ или языка химических формул. Другие примеры – набор цветов светофора, знаков дорожного движения и т.д. Существуют и внесистемные знаки, которые обычно тоже являются «обломками» знаковых систем (например жесты или междометия).
По своей природе знаковые системы дискретны, то-есть, используют ограниченный набор элементов.
Другой аспект – связь формы знака и его смысла. Знаки, форма (вид), которых непосредственно связана с их смыслом называют символами. Таковы, например, гербы и пиктограммы. Если подобная связь отсутствует (как в случае слов естественного языка или знаков математических операций), знаки называют диакритиками. Обычно знаковые системы состоят из диакритических знаков, хотя в ряде случаев можно проследить их символические корни (например, некоторых букв и иероглифов).
Законы построения знаковых систем изучает семиотика, которая включает ряд направлений.
Синтактика занимается правилами соединения знаков (например, построения фраз).
Семантика изучает смысл – соответствие знака (слова) и понятия. Фраза «Глокая куздра штеко будланула бокра и кудлачит бокренка» построена синтаксически верно, однако она бессмысленна, поскольку словам не соответствуют понятия.
Прагматика занимается полезностью и истинностью. Фраза «Сегодня хорошая погода» синтаксически правильна и семантически корректна. Однако истинность и ценность информации, которую она передает, зависит от конкретных условий.
Сигматика изучает вопросы обозначений.
В нашем курсе использование знаков рассматривается с точки зрения передачи информации. С этих позиций они представляют собой условное изображение элементов сообщения. Типичный случай сообщения, ссотоящего из знаков – текст.
Дата добавления: 2015-09-18 ; просмотров: 1085 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Конспект по дисциплине Архитектура ЭВМ на тему «Символьная информация»
В общем объеме вычислительных действий все большая доля приходится на обработку символьной информации, содержащей буквы, цифры, знаки препинания, математические и другие символы. Каждому символу ставится в соответствие определенная двоичная комбинация. Совокупность возможных символов и назначенных им двоичных кодов образует таблицу кодировки. В настоящее время применяется множество различных таблиц кодировки. Объединяет их весовой принцип, при котором коды цифр возрастают по мере увеличения цифры, а коды символов увеличиваются в алфавитном порядке. Так код буквы «Б» на единицу больше кода буквы «А». Это способствует упрощению обработки в ЭВМ.
До недавнего времени наиболее распространенными были кодовые таблицы, в которых символы кодируются с помощью восьмиразрядных двоичных комбинаций (байтов), позволяющих представить 256 различных символов:
американский стандартный код для обмена информацией ASCII (American ‘ Standard Code for Information Interchange).
Код EBCDIC используется в качестве внутреннего кода в универсальных ЭВМ фирмы IBM. Он же известен под названием ДКОИ (двоичный код для обработки информации).
Стандартный код ASCII – 7-разрядный, восьмая позиция отводится для записи бита четности. Это обеспечивает представление 128 символов, включая все латинские буквы, цифры, знаки основных математических операций и знаки пунктуации. Позже появилась европейская модификация ASCII, называемая Latin 1 (стандарт ISO 8859-1). В ней «полезно» используются все 8 разрядов. Дополнительные комбинации (коды 128-255) в новом варианте отводятся для представления специфических букв алфавитов западноевропейских языков, символов псевдографики, некоторых букв греческого алфавита, а также ряда математических и финансовых символов. Именно эта кодовая таблица считается мировым стандартом де-факто, который применяется с различными модификациями во всех странах.
Хотя код ASCII достаточно удобен, он все же слишком тесен и не вмещает множества необходимых символов. По этой причине в 1993 году консорциумом компаний Apple Computer, Microsoft, Hewlett-Packard, DEC и IBM был разработан 16-битовый стандарт ISO 10646, определяющий универсальный набор символов (UCS, Universal Character Set). Новый код, известный под названием Unicode, позволяет задать до 65536 символов, то есть дает возможность одновременно представить символы всех основных «живых» и «мертвых» языков. Для букв русского языка выделены коды 1040-1093.
Наряду с UCS-2 в рамках Unicode существуют еще несколько вариантов кодировки Unicode (UTF, Unicode Transformation Formats), основные из которых UTF-8 и UTF-7. В кодировке UTF-8 коды символов меньшие, чем 128, представляются одним байтом. Все остальные коды формируются по более сложным правилам. В зависимости от символа его код может занимать от двух до шести байтов, причем старший бит каждого байта всегда имеет единичное значение. Иными словами, значение байта лежит в диапазоне от 128 до 255. Ноль в старшем бите байта означает, что код занимает один байт и совпадает по кодировке с ASCII.
В UTF-7 код символа также может занимать один или более байтов, однако в каждом из байтов значение не превышает 127 (старший бит байта содержит ноль). Многие символы кодируются одним байтом, и их кодировка совпадает с ASCII, однако некоторые коды зарезервированы для использования в качестве преамбулы, характеризующей последующие байты многобайтового кода.
Стандарт Unicode обратно совместим с кодировкой ASCII, однако если в ASCII для представления схожих по виду символов (минус, тире, знак переноса) применялся общий код, в Unicode каждый из этих символов имеет уникальную кодировку. Впервые Unicode был использован в операционной системе Windows NT.
Параллельно с развитием Unicode исследовательская группа ISO проводит работы над 32-битовой кодовой таблицей, однако ввиду широкой распространенности кодировки Unicode дальнейшие перспективы новой разработки представляются неопределенными.
^
Символьная информация и строки
Для символьных данных в Си++ введен тип char. Для представления символьной информации используются символы, символьные переменные и текстовые константы.
const char c=’c’; //символ – занимает один байт, его значение не меняется
char a,b;//символьные переменные, занимают по одному байту, значения меняются
const char *s=“Пример строки\n” ;//текстовая константа
A | \0 | A |
“A” строка (2байта) | ‘A’ символ (1байт) |
Рис.2. Представление строки и символа
Присвоить значение строке с помощью оператора присваивания нельзя. Поместить строку в массив можно либо при вводе, либо с помощью инициализации.
cout >s;//ввод строки из стандартного потока
scanf(“%s”,s);//ввод строки из стандартного потока
printf(“%s”,s);//вывод строки в стандартный поток
Результат работы программы:
При вводе строки “123 456 789”, чтение байтов осуществляется до первого пробела, т. е. в строку s занесется только первое слово строки “123/0”, следовательно, выведется: 123. Т. к. s – имя массива, т. е. адрес его первого элемента, операция & в функции scanf не используется.
Для работы со строками существуют специальные библиотечные функции, которые содержатся в заголовочном файле string.h. Рассмотрим некоторые из этих функций:
Прототип функции | Краткое описание | Примечание |
unsigned strlen(const char*s); | Вычисляет длину строки s. | |
int strcmp(const char*s1, const char *s2); | Сравнивает строки s1 и s2. | Если s1 s1 – результат положительный. |
int strcnmp(const char*s1, const char *s2); | Сравнивает первые n символов строк s1 и s2. | Если s1 s1 – результат положительный. |
char*strcpy(char*s1, const char*s2); | Копирует символы строки s1 в строку s2. | |
char*strncpy(char*s1, const char*s2, int n); | Копирует n символов строки s1 в строку s2. | Конец строки отбрасывается или дополняется пробелами. |
char*strcat(char*s1, const char*s2); | Приписывает строку s2 к строке s1 | |
char*strncat(char*s1, const char*s2); | Приписывает первые n символов строки s2 к строке s1 | |
char*strdup(const char*s); | Выделяет память и переносит в нее копию строки s | При выделении памяти используются функции |
Дана строка символов, состоящая из слов, слова разделены между собой пробелами. Удалить из строки все слова, начинающиеся с цифры.
Алгоритмы обработки символьной информации (Введение)
Соответствие символов и байтов задается таблицей кодировки, в которой для каждого символа указывается соответствующий байт.
(кодировка ASCII)
(модифицированный
альтернативный вариант)
Для того, чтобы определить по этим таблицам код того или иного символа, нужно сложить номер строки с номером столбца, в которых он расположен. Так, код цифры 5 равен 05+048 = 053.
Типы данных, используемые для обработки
символьной информации
Язык | Тип, ключевое слово | Примеры использования |
Школьный АЯ | Символьный сим | a:=» f » ; b:=»+» ; c:=»5″ If a=» » then k:=k+1 |
Литерный лит | t:=»Литерная величина» s:=» » (пустая строка) | |
Turbo Pascal | Символьный Char | a:=‘ f ‘ ; b:=’+’ ; c:=’5′ ; If a=’ ‘ then k:=k+1 |
Литерный String | t:=’Литерная величина’ ; f:=’ ‘ ; (пустая строка) | |
QBasic | Литерный | t$:=»Литерная величина» f$:=» » (пустая строка) |
Функции и команды обработки строк
Школьный АЯ
Функция длин(S) Возвращает количество символов в строке S.
Операция вырезка позволяет «вырезать» из строки группу соседних символов. Вырезка из строки S подстроки, начинающейся с i-ой и кончающейся j-ой позицией, обозначается S [ i : j]. Вырезка из строки S одного i-го символа обозначается S[i].
Команда присваивания вырезке S[N : M] := SubS. Часть строки S, начиная с позиции N и кончая позицией M, заменяется на подстроку SubS такой же длины.
Turbo Pascal
Процедуры
Delete(Var S:String; N,M:Integer) Удаляет M символов из строки S, начиная с позиции N.
Insert(SubS: String; Var S:String; N:Integer) Вставляет подстроку SubS в строку S, начиная с позиции N.
Str(X:Integer; Var S:String) Возвращает представление числа X в его символьной форме S.
Val(S:String; Var X, Code: Integer) Возвращает представление символов строки S в ее числовой форме X. Параметр Code содержит признак ошибки преобразования (если Code = 0, ошибки нет).
Функции
Chr(X:Byte): Char Возвращает символ с заданным порядковым номером X.
Copy(S: String; N,M: Integer): String Возвращает подстроку из строки S, начиная с позиции N и длиной M символов.
Length(S: String): Byte Возвращает количество символов в строке S.
Ord(X: Char): LongInt Возвращает порядковый номер символа X в таблице кодов символов.
Pos(SubS, S: String): Byte Возвращает номер позиции, начиная с которой в строке S располагается подстрока SubS (если значение функции равно нулю, то S не содержит SubS).
QBasic
Функции
ASC(X$) Возвращает порядковый номер символа X$ в таблице кодов символов.
CHR$(N) Возвращает символ с заданным порядковым номером N.
INSTR([N,] X$,Y$) Возвращает номер позиции строки X$, начиная с которой в ней размещается подстрока Y$. Если подстрока не найдена, то значение функции равно нулю. Поиск подстроки ведется с позиции N, а если N не задано, то с начала строки.
LEFT$(X$,N) Возвращает подстроку, составленную из первых N символов строки X$.
LEN(X$) Возвращает количество символов в строке X$.
MID$(X$,N [,M]) Возвращает подстроку, составленную из M символов строки X$, начиная с позиции N (если параметр М опущен, то возвращаются все символы, начиная с позиции N).
RIGHT$(X$,N) Возвращает подстроку, составленную из последних N символов строки X$.
STR$(N) Возвращает представление числа N в символьной форме.
VAL(X$) Возвращает представление символов строки X$ в числовой форме.
Операторы
MID$(X$,N,M) = Y$ Часть строки X$, начиная с позиции N, длиной M позиций заменяется на строку Y$. Длина X$ не изменяется.
SWAP X$,Y$ Строки X$ и Y$ обмениваются своими значениями.
3. Формы представления информации
Сигнал называется непрерывным (или аналоговым), если его параметр может принимать любое значение в пределах некоторого интервала
Если обозначить Z- значение параметра сигнала, at- время, то зависимость Z(t) будет непрерывной функцией (рис.1.2,а).
Рис. 1.2. Непрерывные (а) и дискретные (б) сигналы
Сигнал называется дискретным, если его параметр может принимать конечное число значений в пределах некоторого интервала.
Пример дискретных сигналов представлен на рис. 1.2,б. Как следует из определения, дискретные сигналы могут быть описаны дискретным и конечным множеством значений параметров
Принципиальным и важнейшим различием непрерывных и дискретных сигналов является то, что дискретные сигналы можно обозначить, т.е. приписать каждому из конечного чисел возможные значения сигнала знак, который будет отличать данный сигнал от другого.
Вся совокупность знаков, используемых для представления дискретной информации, называется набором знаков.
Таким образом, набор есть дискретное множество знаков.
Набор знаков, в котором установлен порядок их следования, называется алфавитом.
Понятия знака и алфавита можно отнести только к дискретным сообщениям.
Так как имеются два типа сообщений, между ними, возможны четыре варианта преобразований (см. рис. 1.3):
Рис. 1.3. Варианты преобразований
Осуществимы и применяются на практике все четыре вида преобразований. Примерами устройств, в которых осуществляется преобразование типа N1 → N2 являются микрофон (звук преобразуется в электрические сигналы); магнитофон и видеомагнитофон (чередование областей намагничения ленты превращается в электрические сигналы, которые затем преобразуются в звук и изображение); телекамера (изображение и звук превращаются в электрические сигналы); радио- и телевизионный приемник (радиоволны преобразуются в электрические сигналы, а затем в звук и изображение); аналоговая вычислительная машина (одни электрические сигналы преобразуются в другие). Особенностью данного варианта преобразования является то, что оно всегда сопровождается частичной потерей информации. Потери связаны с помехами (шумами), которые порождает само информационное техническое устройство и которые воздействуют извне. Эти помехи примешиваются к основному сигналу и искажают его. Поскольку параметр сигнала может иметь любые значения (из некоторого интервала), то невозможно отделить ситуации: был ли сигнал искажен или он изначально имел такую величину. (В ряде устройств искажение происходит в силу особенностей преобразования в них сообщения, например в черно-белом телевидении теряется цвет изображения; телефон пропускает звук в более узком частотном интервале, чем интервал человеческого голоса; кино- и видеоизображение оказываются плоскими, они утратили объемность.)
Развертка по времени состоит в том, что наблюдение за значением величины Z производится не непрерывно, а лишь в определенные моменты времени с интервалом Δt:
Совместное выполнение обеих операций эквивалентно нанесению масштабной сетки на график Z(t), как показано на рис.1.4. Далее, в качестве пар значений
Рис. 1.4. Дискретизация аналогового сигнала за счет операций развертки по времени и квантования по величине
Ответом на эти сомнения служит так называемая теорема отсчетов, доказанная в 1933г. В. А. Котельниковым (по этой причине ее иногда называют его именем), значение которой для решения проблем передачи информации было осознано лишь в 1948г. после работ К. Шеннона. Теорема, которую примем без доказательства, но результаты будем в дальнейшем использовать, гласит:
Непрерывный сигнал можно полностью отобразить и точно воссоздать по последовательности измерений или отсчетов величины этого сигнала через одинаковые интервалы времени, меньшие или равные половине периода максимальной частоты, имеющейся в сигнале.
Комментарии к теореме:
Теорема касается только тех линий связи, в которых для передачи используются колебательные или волновые процессы.
Смысл теоремы в том, что дискретизация не приведет к потере информации и по дискретным сигналам можно будет полностью восстановить исходный аналоговый сигнал, если развертка по времени выполнена в соответствии со следующим соотношением:
Можно перефразировать теорему отсчетов:
Развертка по времени может быть осуществлена без потери информации, связанной с особенностями непрерывного (аналогового) сигнала, если шаг развертки не будет превышать Δt, определяемый в соответствии с (1.2).
Например, для точной передачи речевого сигнала с частотой до Vm = 4000 Гц при дискретной записи должно производиться не менее 8000 отсчетов в секунду; в телевизионном сигнале Vm ≈ 4 МГц, следовательно, для его точной передачи потребуется около 8000000 отсчетов в секунду.
Выбор шага развертки по времени и квантования по величине сигнала лежат в основе оцифровки звука и изображения. Примерами устройств, в которых происходят такие преобразования, являются сканер, модем, устройства для цифровой записи звука и изображения, лазерный проигрыватель, графопостроитель. Термины «цифровая запись», «цифровой сигнал» следует понимать как дискретное представление с применением двоичного цифрового алфавита.
Таким образом, преобразование сигналов типа N → D, как и обратное D → N, может осуществляться без потери, содержащейся в них информации.
Таким образом, за исключением N1 → N2 в остальных случаях оказывается возможным преобразование сообщений без потерь содержащейся в них информации. При этом на первый взгляд непрерывные и дискретные сообщения оказываются равноправными. Однако на самом деле это не так. Сохранение информации в преобразованиях N → D и D → N обеспечивается именно благодаря участию в них дискретного представления. Другими словами, преобразование сообщений без потерь информации возможно только в том случае, если хотя бы одно из них является дискретным. В этом проявляется несимметричность видов сообщений и преимущество дискретной формы. К другим ее достоинствам следует отнести:
• простоту и, как следствие, надежность и относительную дешевизну устройств по обработке информации;
• точность обработки информации, которая определяется количеством обрабатывающих элементов и не зависит от точности их изготовления;