Хелпикс

Главная

Контакты

Случайная статья





ЛЕКЦИЯ №6. ПРЕОБРАЗОВАНИЕ ТИПОВ И ДЕЙСТВИЯ НАД НИМИ



 

 

ЛЕКЦИЯ №6

ПРЕОБРАЗОВАНИЕ ТИПОВ И ДЕЙСТВИЯ НАД НИМИ

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

VAR  X:INTEGER;

     Y:REAL;

То оператор Y:=X+2; будет синтаксически правильным; хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная. Турбо Паскаль сделает необходимые преобразования автоматически. В то же время оператор X:=2.0; будет неверным, так как автоматическое преобразование типа REAL (константа 2.0 содержит десятичную точку и, следовательно, принадлежит к типу REAL) в тип INTEGER в Турбо Паскале запрещено.

Разумеется, запрет на автоматическое преобразование типов еще не означает, что в Турбо-Паскале нет средств преобразования данных.

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

1). ROUND округляет REAL до ближайшего целого;

2). TRUNC усекает REAL путем отбрасывания дробной части.

Например, ошибочным будет оператор X:=Y/X; но правильным X:=ROUND(Y/X);.

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

Как уже отмечалось, Турбо Паскаль – это типизированный язык. Он построен на основе строгого соблюдения концепции типов, в соответствии с которой все применяемые в языке операции определены только над операндами совместимых типов. Совместимость типов приобретает особое значение в операторах присваивания. Преобразование типов может быть явным или неявным. При явномпреобразовании типов используются вызовы специальных функций преобразования, аргументы которых принадлежат одному типу, а значение – другому. Таковыми являются уже рассмотренные функции: ORD, TRUNC, ROUND, CHR.

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

1.    Все символы хранятся в компьютере в виде кодов.

2.  Каждому символу соответствует свой код.

3. Для преобразования символов в коды и обратно применяют функции ord и chr.

4. Для получения следующего и предыдущего символа используют соответственно функции succ и pred.

 

   Обращение к каждому элементу массива идет по имени массива и по индексу (номеру) элемента в массиве.

   Оператор inc(k) увеличивает значение указанной переменной на единицу. То есть оператор inc(k) аналогичен оператору k:=k+1. По аналогии с inc, в Turbo Pascal имеется еще оператор dec. Он уменьшает значение указанной переменной на единицу. dec(k) аналогичен   k:=k-1.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.