русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Скалярные типы


Дата добавления: 2013-12-24; просмотров: 856; Нарушение авторских прав


Строковый тип

 

Строковый тип STRING представляет собой последовательность символов. Максимальная длина строковой переменной равна 255 символов. Описать строковую переменную можно следующим образом:

VAR

S1 : STRING;

S2 : STRING[5];

Переменная S2 имеет максимальную длину в 5 символов, а S1 – в 255 символов. При этом в памяти под переменную отводится на 1 байт больше. Дело в том, что после того, как строковая переменная получила какое-то значение, нулевой байт содержит фактическую длину строки. Имеется возможность доступа к любому элементу строки, указав его номер. Например, если

S1:= ‘abcdef’

то S1[1]=’a’

S1[2]=’b’

S1[0]=#6

Наиболее частая операция над строками их объединение:

S1:=S1+S2 , где S1 и S2 – переменные типа STRING, или:

S1:=S1+’cde’

Объединение строк можно выполнить и с помощью функции CONCAT(S1,S2,…SN).

Функция LENGHT(S) определяет длину строковой переменной S и имеет тип INEGER.

Процедура DELETE(S,IND,N) удаляет N символов из строковой переменной S начиная с символа с номером IND.

Процедура INSERT(SUBS,S,IND) вставляет подстроку SUBS в строку S начиная с символа с номером IND.

Функция COPY(S,IND,N) копирует N символов из строки S, начиная с символа с номером IND.

Функция POS(SUBS,S) типа INTEGER отыскивает в строке S первое вхождение подстроки SUBS и выдаёт номер этой позиции в строке S. Если подстрока SUBS не найдена в строке S, то функция возвращает ноль.

Строковые переменные можно сравнивать с помощью операций отношений. Сравниваются при этом коды символов, начиная с первых символов строк. Если первые символы одинаковы, сравниваются вторые и так далее.

‘ALEXEY’ < ‘SERGEY’

‘BOY’ < ‘GIRL’

Для примера рассмотрим работу программу STRING_T.PAS.

 

 

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



 

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

COL = (BLACK, RED, BLUE, WHITE). Порядок значений в таком наборе определен последовательностью, в которой перечисляются идентификаторы. Первая константа BLACK имеет порядковый номер 0, вторая – RED – номер 1 и т.д.

При применении функции ORD(X) к значению перечисляемого типа она возвращает целое число, являющееся номером этого значения в списке, например ORD(BLUE)=2.

Можно использовать также функцию PRED(X), которая возвращает предыдущее порядковое значение: PRED(BLUE) = RED, и функцию SUCC, которая возвращает следующее порядковое значение: SUCC(BLUE) = WHITE.

Если описать переменную A1 типом COL, то эквивалентны следующие операторы:

A1 : = BLACK;

A1 : = PRED(RED);

A1 : =COL(0).

К перечисляемому типу справедливы операции отношения, например, BLACK < RED. Переменные любого перечисляемого типа можно объявить в разделе описаний переменных.

Тип-диапазон задается границами своих значений внутри базового типа, например:

DIGIT = ‘0’..’9’

DATE = 1..31

При определении типа-диапазона нужно руководствоваться следующими правилами:

- два символа .. рассматриваются как один символ и между ними недопустимы пробелы;

- левая граница диапазона не должна превышать его правую границу.

Тип-диапазон наследует все свойства своего базового типа, но с ограничениями, связанными с меньшим диапазоном его значений.

 

Совместимость и преобразование типов

 

Во многих выражениях в ТУРБО-ПАСКАЛЕ допускается использовать только совместимые типы. Два типа являются совместимыми если выполняется одно из следующих условий:

· оба типа являются одинаковыми;

· оба типа являются вещественными типами;

· оба типа являются целочисленными типами;

· оба типа являются отрезками одного и того же базового типа;

· один тип является поддиапазоном другого;

· оба типа являются множественными типами с совместными базовыми типами.

В случае нарушения совместимости типов компилятор выдает на экран сообщение “Type mismatch”.

Исключение сделано лишь для переменных и констант типа INTEGER (целые), которые разрешается использовать в выражениях типа REAL “вещественные”:

 

VAR

X : INTEGER;

Y : REAL;

begin

Y:=X+2;

 

В этом случае в правой части выражения стоит целочисленное выражение, которое автоматически преобразуется в вещественное. Однако оператор X:=2.0 будет неверным, так как нельзя автоматически преобразовать вещественное выражение к целому типу. Для этого необходимо использовать функции ROUND(X), которая округляет вещественное число X до ближайшего целого или функцию TRUNC(X), которая усекает вещественное число X путём отбрасывания дробной части.

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

Для преобразования числа X вещественного или целого типа в строку символов S используется процедура STR(X,S).

Обратное преобразование строки S во внутреннее представление целой или вещественной переменной X используется процедура VAL(S,X,CODE). Параметр CODE содержит 0, если преобразование выполнено успешно.

При вычислении выражения любого типа приоритет вычислений определяется расставленными скобками, а при их отсутствии в соответствии с табл.3.

 

 

Таблица 3

 

Приоритет Операции
NOT
* , / , DIV, MOD , AND
+ , - , OR , XOR
= ,<> , < , > , <= , >=

 

Логические операции в ТУРБО-ПАСКАЛЕ имеют более высокий приоритет чем операции отношения. Поэтому в сложных логических выражениях обычно необходимо расставлять скобки. Если A, B, C: INTEGER , то выражение A=B AND A<C будет ошибочным. Правильно (A=B) AND (A<C).

 

 



<== предыдущая лекция | следующая лекция ==>
Простые типы данных | Лекция 3


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.