
- •Строковый тип данных.
- •Int(X) – значением функции является целая часть вещественного числа X.
- •Вопрос №15. Структура программ и подпрограмм.
- •Вопрос№18. Обработка массивов.
- •Вопрос №19. Пример обработки текстов.
- •Вопрос №21. Стандартные файлы ввода-вывода.
- •Вопрос №22. Процедуры и функции ввода-вывода. Типы данных и форматы вывода.
- •IоResult ¦ Возвращает целое значение, являющееся состоянием
- •Вопрос №23. Организация и использование процедур в языке Паскаль.
Строковый тип данных.
Строки в Паскале – это данные типа 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)