|
|||
ЛЕКЦИЯ №6. ПРЕОБРАЗОВАНИЕ ТИПОВ И ДЕЙСТВИЯ НАД НИМИСтр 1 из 3Следующая ⇒
ЛЕКЦИЯ №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.
|
|||
|