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

Типы, переменные и константы

Данные в программе делятся на переменные и константы. Константы бывают двух типов: именованные (Pi) и неименованные (3.14). Каждая переменная и константа имеют определенный тип. Тип определяет, как данные хранятся в памяти, диапазон значений типа и операции, которые можно выполнять над данными этого типа .

Основные типы данных языка Pascal

Тип

Размер

Диапазон

Дополнительная информация

integer (целое)

4 байта

(2 байта в Turbo Pascal)

-2*109...2*109

максимальному значению переменной данного типа  соответствует типизированная константа MaxInt=231. Операции: + - / * (бинарные), + - (унарные), > < >= <= = <> (отношения), and or xor not (побитовые), div mod (целочисленное деление), shl shr (сдвига)

byte (целое без знака)

1 байт

0...255

Операции: те же, что и для integer

real (вещественный)

8 байт

5.0*10-324...1.7*10308

Операции: + - / * (бинарные), + - (унарные), > < >= <= = <> (отношения)

char (символьный)

1 байт

'c'    ' ' операция + (слияние); char+char=string

string (строковый)

'hello' операция + (слияние); string+char=string

boolean (логический)

1 байт

переменные этого типа могут принимать всего два значения: True и False. Операции: and or not xor

Основные типы образуют естественную иерархию "меньше"-"больше": byte < integer < real; char < string. Эта иерархия используется в правилах неявного преобразования типов. В Delphi имеется также ряд дополнительных целых и вещественных типов, различающихся объемом занимаемой памяти, наличием знака (для целых), диапазоном возможных значений и количеством значащих цифр (для вещественных): это целые типы word, longword, smallint, shortint, int64 и вещественные типы single, extended, comp, currency (они также "встраиваются" в указанную выше иерархию).

Раздел описаний

Любой объект в программе (переменная, константа, именованный тип, подпрограмма, метка) перед использованием должен быть описан в разделе описаний. Он состоит из разделов описания переменных, констант, типов, меток, подпрограмм, чередующихся в произвольном порядке.

Раздел описания переменных

var i,j: integer;     s: string;     b: boolean;     r1,r2: real;     c: char;

Раздел описания именованных констант

const Pi = 3.141592;       Space = ' ';       ProcName = 'Athlon';       r: real = 2; // типизированная константа

Тип нетипизированной константы определяется типом присваиваемого ей значения.

Раздел описания типов

type int = integer;      IArr = array [1..100] of real;

Операторы, обеспечивающие линейную структуру программы

Оператор присваивания

Оператор присваивания имеет вид:

имя переменной := выражение

Пример 1. Вычислить x16.

x:=x*x;  // x^2 x:=x*x;  // x^4 x:=x*x;  // x^8 x:=x*x;  // x^16

Пример 2. Вычислить x15=(x5)3.

y:=x*x;   // x^2 z:=y*x;   // x^3 a:=y*z;   // x^5 a:=a*a*a; // x^15

Присваивание переменной некоторого начального значения называется инициализацией этой переменной.

Если переменной можно присвоить выражение, то говорят, что они совместимы по присваиванию. Переменная и выражение совместимы по присваиванию:

  • если они имеют один тип;

  • если переменная и выражение имеют целый тип (например, выражение имеет тип byte, а переменная - тип integer или наоборот);

  • если выражение имеет целый, а переменная - вещественный тип;

  • если выражение имеет символьный, а переменная - строковый тип.

Во всех случаях, кроме первого, происходит неявное преобразование типов, в процессе которого может меняться внутреннее представление данных. Заметим также, что при присваивании типа integer типу byte может произойти выход за границы диапазона меньшего типа byte.

Пример.

var i: integer; ... i:=2.0; // неверно!

Для преобразования вещественного в целое следует использовать функции round и trunc.

i:=round(2.0); i:=trunc(2.0);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]