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

Строковый тип данных.

Строки в Паскале – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.

Средства языка ТР для преобразования значений простых типов данных в друг друга.

В турбо паскале имя типа можно использовать как функцию преобразования значения к этому типу.

Как уже говорилось, тип переменной позволяет не только устанавливать длину ее внутреннего представления, но и контролировать те действия, которые выполняются над ней в программе. Контроль за использованием переменных еще на этапе компиляции программы - важное преимущество Турбо Паскаля перед другими языками программирования, в которых допускается автоматическое преобразование типов. В Турбо Паскале почти невозможны неявные (автоматические) преобразования типов. Исключение сделано только в отношении констант и переменных типа INTEGER (целые), которые разрешается использовать в выражениях типа REAL (вещественные). Если, например, переменные X и Y описаны следующим образом:

var

х: Integer; 

у: Real;

то оператор

у := х + 2;

будет синтаксически правильным: хотя справа от знака присваивания стоит целочисленное выражение, а слева - вещественная переменная, компилятор сделает необходимые преобразования автоматически. В то же время оператор

х := 2.0;

будет неверным, так как автоматическое преобразование типа REAL (константа 2.0 содержит десятичную точку и, следовательно, принадлежит к типу REAL) в тип INTEGER в Турбо Паскале запрещено.

Разумеется, запрет на автоматическое преобразование типов еще не означает, что в Турбо Паскале нет средств преобразования данных. Они, конечно же, есть, но их нужно использовать явно (подробнее об этом см. гл.4). Для преобразования данных в языке существуют встроенные функции, которые получают в качестве параметра значение одного типа, а возвращают результат в виде значения другого типа. В частности, для преобразования REAL в INTEGER имеются даже две встроенные функции такого рода: ROUND округляет REAL до ближайшего целого, a TRUNC усекает REAL путем отбрасывания дробной части.

Например, ошибочным будет оператор

х := у/х; 

но правильным

х := round(у/х);

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

Для преобразования данных типа CHAR (символ) в целое число предназначена функция ORD, обратное преобразование INTEGER в CHAR осуществляет функция CHR.

Функции для преобразования типов данных:

Int(X) – значением функции является целая часть вещественного числа X.

Frac(x) – значением функции является дробная часть вещественного числа x.

TRUNC(X) – вырабатывает целый результат путем отбрасывания дробной части вещественного числа x в формате longint. Пример: из 21.53 получится 21.

ROUND(X) – вырабатывает целый результат путем округления вещественного числа до ближайшего целого. Пример: из 21.53 получится 22, из 21.3 получится 21.

Hi(x) – старший байт x (x – integer)

lo(x) – младший байт x (x – integer)

swap(x) – оба байта меняются местами (x – integer)