Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Po_distsipline_programmirovanie.doc
Скачиваний:
24
Добавлен:
07.02.2015
Размер:
140.29 Кб
Скачать

9. Обработка символьных данных.

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

Символы с кодами от 0 до 127 построены по стандарту ASCII (American Standard Code for Information Interchange — Американский стандартный код обмена информацией, читается "аски"). Вторая половина таблицы (коды 128 ... 255) в нашей стране содержит русские буквы (кириллицу) и символы псевдографики.

Для того, чтобы определить по этим таблицам код того или иного символа, нужно сложить номер строки с номером столбца, в которых он расположен. Так, код цифры 5 равен 05+048 = 053.

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

Для данных символьного и литерного типов применимы операции сцепки (соединения, конкатенации) и сравнения (<, >, <=, >=, =, <>).

Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Так, строка "стол" меньше строки "стул", строка "teacher" больше строки "pupil" , а строка "пар" меньше строки "парад".

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.

Сoncat ( S1 [ , S2 , ... , SN ] ): String Выполняет сцепку (конкатенацию) последовательности строк.

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).

10. Обработка файловых структур данных.

Файл – динамическая структура данных, размер которой может меняться в процессе выполнения над ним каких-либо действий (он может быть равен нулю, что соответствует пустому файлу). Вообще-то, понятие файла используют и как абстракцию данных, хранящихся в памяти, что позволяет единообразно определить их общие характеристики и операции над ними. Однако свойства физического файла почти полностью совпадают со свойствами АТД файла, из-за чего абстракция в данном случае теряет весь смысл. Файл – структура, состоящая из последовательности компонент одного типа. Свойства последовательности определяет последовательный доступ к элементам, т.е. в каждый момент времени может быть доступен только один элемент файла. Основная операция над файлами – конкатенация (или слияние) файлов – позволяет создавать файлы неограниченной длины. Существует несколько видов файлов в Паскале. Текстовые файлы трактуются как последовательности строк переменной длины. В конце каждой строки ставится специальный признак конца строки EOLN. Типизированные файлы – последовательности компонент определенного типа. Длина любого элемента типизированного файла строго постоянна, что дает возможность организовать прямой доступ к каждому компоненту. В некоторых СП Паскаля это действие реализуется процедурой SEEK. Также, в отличие от текстовых файлов, здесь не работают процедуры READLN и WRITELN, поскольку нет нужды в переводе строки. Нетипизированные файлы объявляются предложением FILE и отличаются тем, что для них не указан тип компонент. Такой подход делает нетипизированные файловые переменные совместимыми с файлами любых типов, а также позволяет организовать высокоскоростной обмен данными между оперативной и внешней памятью. При инициации таких файлов процедурами RESET или REWRITE нужно указывать их длину в байтах, причем для достижения максимальной скорости обмена лучше, если эта длина кратна размеру физического сектора на внешней памяти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]