Скачать презентацию Типы данных Укажите раздел опписаний и раздел Скачать презентацию Типы данных Укажите раздел опписаний и раздел

Типы данных, преобразование типа.pptx

  • Количество слайдов: 20

Типы данных Типы данных

Укажите раздел опписаний и раздел операторов Program My. First. Program; {Раздел описаний} begin {Раздел Укажите раздел опписаний и раздел операторов Program My. First. Program; {Раздел описаний} begin {Раздел операторов} end.

 Program, begin и end выделяют две части программы – раздел описаний и раздел Program, begin и end выделяют две части программы – раздел описаний и раздел операторов. Такая структура обязательна для любой программы, что является следствием жесткого требования языка: любой нестандартный идентификатор, используемый в исполняемых операторах, должен быть предварительно описан в разделе описаний.

 Стандартные идентификаторы связаны с предварительно объявленными объектами и входят в стандартную библиотеку Турбо Стандартные идентификаторы связаны с предварительно объявленными объектами и входят в стандартную библиотеку Турбо Паскаля. Таким, например, является идентификатор Write. Ln. Стандартные идентификаторы, если они используются в программе, описывать не нужно

Что значит писать идентификатор? Это значит указать тип связанного с ним объекта программы (константы Что значит писать идентификатор? Это значит указать тип связанного с ним объекта программы (константы или переменной). Понятие типа – одно из фундаментальных понятий Турбо Паскаля.

Назовите известные вам типы данных? INTEGER – целочисленные данные, во внутреннем представлении занимают 2 Назовите известные вам типы данных? INTEGER – целочисленные данные, во внутреннем представлении занимают 2 байта; диапазон возможных значений – от -32768 до +32767; данные представляются точно; – вещественные данные, занимают 6 байт; диапазон возможных значений модуля – от 2. 9 Е-39 до 1. 7 Е+38; точность представления данных – 11… 12 значащих цифр; REAL

 CHAR – символ, занимает 1 байт; STRING – строка символов, занимает МАХ+1 байт, CHAR – символ, занимает 1 байт; STRING – строка символов, занимает МАХ+1 байт, где МАХ – максимальное число символов в строке; BOOLEAN – логический тип, занимает 1 байт и имеет два значения: FALSE (ложь) и TRUE (истина).

Тип константы определяется способом записи ее значения. Например: Const c 1 = 17; с2 Тип константы определяется способом записи ее значения. Например: Const c 1 = 17; с2 = 3. 14; с3 = 'А'; с4 = '3. 14 '; с5 = False; Integer Real Char String Boolean

 ризнаком, позволяющим отнести константу к REAL или к INTEGER, является наличие или отсутствие ризнаком, позволяющим отнести константу к REAL или к INTEGER, является наличие или отсутствие десятичной точки в ее значении. Разумеется, константы С 2 и С 4 относятся к разным типам: С 2 – к REAL (в константе есть десятичная точка), а С 4 – к STRING(константа обрамлена апострофами). Константу С 3 компилятор будет считать относящейся к типу CHAR: одиночный символ в апострофах относится к CHAR, в то время как несколько символов – к STRING.

 В отличие от константы переменная именует объект программы, который может изменять свое значение В отличие от константы переменная именует объект программы, который может изменять свое значение в ходе счета. При описании переменных за идентификатором ставятся двоеточие и имя типа. Несколько однотипных переменных можно объединять в список, разделяя их запятыми. В начале раздела описания переменных должно стоять зарезервированное слово VAR (VARiables – переменные).

Пример: var sigma: Real; а, b, с, d: Char; text 1: String[15]; text 2: Пример: var sigma: Real; а, b, с, d: Char; text 1: String[15]; text 2: String; flag: Boolean; .

Как уже говорилось, тип данных определяет длину внутреннего представления соответствующих переменных. В частности, длина Как уже говорилось, тип данных определяет длину внутреннего представления соответствующих переменных. В частности, длина внутреннего представления переменных типа STRING (строка символов) зависит от максимального числа символов, которые могут составлять строку. В приведенном выше примере переменная text 1 описана с указанием ее максимальной длины (15 символов), а в описании переменной text 2 максимальная длина не указана и компилятор установит для нее предельно допустимую в Турбо Паскале длину – 255 символов.

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

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

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

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

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

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

Пример Program Code_pf_Char; {Программа читает символ с клавиатуры и выводит на экран этот символ Пример Program Code_pf_Char; {Программа читает символ с клавиатуры и выводит на экран этот символ несоответствующий ему внутренний код} var ch: Char; {В эту переменную читается символ} begin Write('Введите любой символ: '); Read. Ln(ch); {Читаем один символ} Write. Ln(ch, ' = ', ord(ch)); {Преобразуем его к целому и выводим на экран} END.

Обратите внимание, при вызове: Write. Lntch, ' = ', ord(ch)); Третьим параметром обращения указан Обратите внимание, при вызове: Write. Lntch, ' = ', ord(ch)); Третьим параметром обращения указан вызов функции ORD (СН), что с точки зрения языка является выражением; как мы увидим дальше (см. гл. 8), во многих случаях при вызове процедур и функций в качестве параметров вызова можно указывать не только переменные или константы, но и выражения с их участием. По мере надобности мы будем знакомиться с другими функциями преобразования типов данных, а сейчас – о тех операциях, которые разрешены над различными типами.