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

Рассмотрим такую ситуацию, пусть заданы типы Т1 и Т2, а также описаны переменные р1 и р2 следующим образом:

Var p1 : T1; p2 : T2;

Возникает вопрос, когда можно записать р1 := р2?

Чтобы ответить на этот вопрос, рассмотрим совместимость простых типов по присваиванию.

Операция р1 := р2 является допустимой, если истинно одно из следующих утверждений:

Т1 и Т2 - тождественные типы.

Типы являются тождественными, если они описаны одним и тем же идентификатором или происходят от одного и того же идентификатора.

Например,

Type

T1 = Real;

T2 = Real;

T3 = T1;

T4 = (red, gren, blue, black, white);

T5 = (red, gren, blue, black, white);

T6 = T4;

Здесь Т1, Т2 и Т3 - идентичные типы, Т4, Т5 - не идентичны, поскольку (red, gren, blue, black, white) не являются идентификатором типа, Т4, Т6 являются идентичными. Т2 является поддиапазоном типа Т1.

Например,

Type

T1 = Real;

T2 = Integer;

(множество целых чисел входит в диапазон вещественных чисел).

Т1 и Т2 - являются отрезками одного и того же типа.

Например,

Type

T1 = 1..100;

T2 = -3..20;

week = (d1, d2, d3, d4, d5, d6, d7);

working_week = (d1..d5).

Совместимость по присваиванию станет более понятна, если вспомнить, что переменные в памяти занимают определённое число байт.

Так, переменная типа Integer занимает 2 байта, типа - Real 6 байтов, а в большее число ячеек всегда можно поместить меньшее, а наоборот не всегда.

Совместимость типов необходима также в выражениях и операциях сравнения.

Program Example;

Var a : Byte;

b : Integer;

c : Longint;

Begin

Writeln('Введите 2 числа:(Byte, Integer)');

Readln(a, b);

c:=a + b;

Writeln(c);

End.

Контрольные вопросы

  1. Классификация типов данных
  2. Порядковые типы
  3. Целые типы
  4. Символьные типы
  5. Перечислимые типы
  6. Ограниченные типы
  7. Вещественные типы
  8. Примеры использования
  9. Способы преобразования типов, примеры
  10. Совместимость типов, примеры

Задания для самостоятельной работы

Используя среду программирования Delphi осуществить вычисления следующих выражений

  1. 7,3*10,5+7,3*15+2,7*10,5+15*2,7
  2. Преобразование типов. Совместимость типов - student2.ru
  3. (32+62)/25
  4. (42- Преобразование типов. Совместимость типов - student2.ru )2
  5. Преобразование типов. Совместимость типов - student2.ru
  6. Преобразование типов. Совместимость типов - student2.ru

Тема 2.2.1. Операторы языка Паскаль.

Операторы языка. Простые и составные операторы. Операторы ввода и вывода. Оператор присваивания. Составной оператор.

После изучения темы студент должен

знать:

- Основные операторы;

- Оператор ввода-вывода;

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

- Составной оператор;

Уметь

- Составлять программы линейной структуры.

Операторы - это синтаксические конструкции, предназначенные как для записи алгоритмических действий по преобразованию данных, так и для задания порядка выполнения других действий.

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

Язык содержит следующие операторы:

§ Оператор ввода и вывода

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

§ Оператор процедуры

§ Оператор перехода

§ Составной оператор

§ Оператор варианта

§ Оператор цикла с постусловием

§ Оператор цикла с предусловием

§ Оператор цикла с параметром

§ Оператор над записями

§ Пустой оператор

Первые три оператора считаются простыми операторами, остальные структурными. Последнее означает, что в состав этих операторов могут входить другие операторы. Операторы входящие в структурные, в свою очередь могут быть структурными. «Глубина вложенности » операторов не ограничивается.

Любому оператору может предшествовать метка. В этом случае метка отделяется от оператора символом ‘:’. Метки можно использовать для передачи управления на помеченные операторы из других точек программы.

Помимо перечисленных операторов , язык Pascal содержит два оператора специального вида:

§ Машинный код

§ Ассемблерный оператор

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

Наши рекомендации