- •Содержание:
- •Порядок выполнения лабораторных работ
- •Оператор присваивания
- •Операторы ввода-вывода
- •Условный оператор
- •Задание к лабораторной работе
- •Программирование разветвляющегося
- •Оператор цикла for
- •Нестандартные типы данных
- •Ограниченные типы данных
- •Оператор выбора варианта
- •Задание к лабораторной работе
- •Лабораторная работа 3 регулярные типы данных. Селективная обработка массивов
- •Регулярные типы данных
- •Сортировка массивов
- •Примеры выполнения задания лабораторной работы
- •Задание к лабораторной работе
- •Лабораторная работа 4 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •Задания к лабораторной работе
- •Лабораторная работа 5 процедуры и функции
- •Процедуры
- •Функции
- •Задание к лабораторной работе
- •Лабораторная работа 6 обработка символьных данных
- •Символьный тип данных
- •Строковый тип данных
- •Процедуры
- •Функции
- •'Abcdef' copy(s,2,3) 'bcd'
- •'System' length(s) 6;
- •Задание к лабораторной работе
- •Лабораторная работа 7 комбинированные типы данных
- •Задание к лабораторной работе
- •Лабораторная работа 8 файлы и файловые типы данных
- •Файловый тип данных
- •Процедуры обработки файлов
- •Файлы с типом
- •Процедуры для работы с файлами с типом
- •Функции для обработки файлов с типом
- •Задание к лабораторной работе
- •Список рекомендованной литературы
Лабораторная работа 6 обработка символьных данных
Цель работы: выработать практические навыки в написании и отладке программ при работе с символьными данными.
Символьный тип данных
Переменная типа char (символьная переменная) может принимать значения из определенной упорядоченной совокупности символов, разрешенных транслятором Паскаля на данной ЭВМ. Символьные переменные описываются идентификатором char, например:
var c,b:char; a:array[1..10]of char;
Литеры, заключенные в апострофы, являются константами символьного типа. Множество литер упорядочено:
A < B < C < … < Z < А < Б < … < Я.
Для символьных данных определены операции сравнения (=,<>,<,>) и присваивания (:=), а также функции преобразования:
ord(x) - выдает номер символа x;
chr(i) - выдает i-й символ последовательности;
succ(x), pred(x) - выдают следующий и предыдущий символы последовательности.
Строковый тип данных
Строка - это последовательность символов. Количество символов в строке (длина строки) может изменяться от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки
type T = string[N];
где T - имя типа; N - длина строки.
Например:
type ST = string[20];
var X:ST; Y:string[10]; Z:string;
Если длина не указана, имеется в виду 255.
Над строковыми данными допустимы операция сцепления (+) и операции отношения (=,<>,<,>).
Например:
X:='группа'+' ИТ98-2';
Z:=X+Y;
'ИВАНОВ'<'ПЕТРОВ'.
Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший код (номер). Результат сравнения имеет булевский тип и принимает значение true или false. В приведенном примере результат true.
Допускается смешение в одном выражении операндов строкового и символьного типа.
К отдельным символам строки можно обратиться по номеру (индексу) данного символа в строке. Например, выражение X[4] обеспечит доступ к четвертому символу переменной X. Запись X[0] дает доступ к нулевому байту, содержащему значение текущей длины строки.
Для обработки строковых данных используются стандартные процедуры и функции.
Процедуры
1) delete(S,POZ,N) - удаление N символов в строке S, начиная из позиции POZ.
'ЭВМ ЕС 1840' delete(S,7,5) 'ЭВМ ЕС' ;
2) insert(S1,S2,POZ) - вставка строки S1 в строку S2, начиная с позиции POZ.
S1:=' ЕС '; S2:='ЭВМ 1840';
insert(S1,S2,4) ;
Значение S2 станет равным 'ЭВМ ЕС 1840';
3) str(R,S) - преобразование числового значения величины R и помещение результата в строку S.
150.2 str(R:6,S) ' 150.2';
4) val(S,R,COD) - преобразование значения S в величину целочисленного или вещественного типа и помещение результата в R. Если во время операции преобразования ошибки не обнаружено, COD=0, если ошибка обнаружена, COD будет содержать номер позиции первого ошибочного символа, а значение R не определено.
'14.2E2' val(S,R,COD) 1420 COD=0;
'52.4A+2' val(S,R,COD) ? COD=5.