Скачать презентацию Pascal ТИПЫ ДАННЫХ Типы данных Концепция типа Скачать презентацию Pascal ТИПЫ ДАННЫХ Типы данных Концепция типа

05 Типы данных.pptx

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

Pascal ТИПЫ ДАННЫХ Pascal ТИПЫ ДАННЫХ

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

Базовые структуры описания данных 1. Простые типы данных Числовые (целые и вещественные) Символьные Логические Базовые структуры описания данных 1. Простые типы данных Числовые (целые и вещественные) Символьные Логические Тип-диапазон Перечисляемые Указательные

Базовые структуры описания данных 2. Структурированные Массивы Строки Записи Файлы Множества 3. Абстрактные типы Базовые структуры описания данных 2. Структурированные Массивы Строки Записи Файлы Множества 3. Абстрактные типы данных Классы

Классификация типов группы целых, символьных и строковых типов подразделяются на две категории: Фундаментальные (fundamental) Классификация типов группы целых, символьных и строковых типов подразделяются на две категории: Фундаментальные (fundamental) типы, формат представления которых в памяти (число битов и наличие знака) строго фиксируются и будут выдерживаться неизменными во всех последующих версиях ОР для любых операционных систем и компьютерных платформ. Родовые (generic) типы, формат представления которых в памяти не фиксируется и будет устанавливаться наиболее оптимальным способом, в зависимости от реализации для конкретной операционной системы и компьютерной платформы.

Простые типы данных 1. порядковые типы 2. вещественные типы 3. типы работающие с датой- Простые типы данных 1. порядковые типы 2. вещественные типы 3. типы работающие с датой- временем.

Порядковые (ordinal) типы данных Множество допустимых значений порядкового типа представляет собой упорядоченную последовательность, каждый Порядковые (ordinal) типы данных Множество допустимых значений порядкового типа представляет собой упорядоченную последовательность, каждый элемент которой имеет свой порядковый номер и для каждого из них можно указать предшествующее и следующее значение. К порядковым типам относятся: Целые Символьные Логические Тип-диапазон Перечисляемые

Функции порядковых типов данных функция Параметр Возвращаемое значение Ord(x) Выражение порядкового типа Порядковый номер Функции порядковых типов данных функция Параметр Возвращаемое значение Ord(x) Выражение порядкового типа Порядковый номер значения выражения в типе Pred(x) Выражение порядкового типа Величина, предшествующая значению данного выражения Succ(x) Выражение порядкового типа High(x) Переменная порядкового типа Величина, следующая для значения данного выражения Максимально возможное значение Минимально возможное значение Low(x) x: =Pred(c); // при с=10 х=9

Порядковые типы данных Для порядковых типов определены процедуры инкремента INC(X) и декремента Dec(X). Эти Порядковые типы данных Для порядковых типов определены процедуры инкремента INC(X) и декремента Dec(X). Эти процедуры соответственно увеличивают или уменьшают на единицу порядковый номер своего аргумента. … X: =5; Inc(x); //х=6 …

Диапазоны: Идентификатор типа Shortint Диапазон значений – 128. . 127 Представление в компьютере 8 Диапазоны: Идентификатор типа Shortint Диапазон значений – 128. . 127 Представление в компьютере 8 -bit со знаком Smallint – 32768. . 32767 16 -bit со знаком Longint – 2147483648. . 2147483647 32 -bit со знаком Int 64 – 263. . 263– 1 64 -bit со знаком Byte 0. . 255 8 -bit без знака Word 0. . 65535 16 -bit без знака Longword 0. . 4294967295 32 -bit без знака

Родовые типы: Идентификатор Диапазон значений типа Представление в компьютере Integer – 2147483648. . 2147483647 Родовые типы: Идентификатор Диапазон значений типа Представление в компьютере Integer – 2147483648. . 2147483647 32 -bit со знаком Cardinal 0. . 4294967295 32 -bit без знак

операторы: 1. Унарные: -; 2. Бинарные *, /, +, -, div, mod 3. Операции операторы: 1. Унарные: -; 2. Бинарные *, /, +, -, div, mod 3. Операции отношения: =, <>, >=, => 4. Поразрядные булевы: and, or, not, xor 5. Поразрядные сдвига: shl, shr

Функции x: =abs(x) 2. x: =sqr(x) 3. r: =sqrt(x), r: вещественное число 4. с: Функции x: =abs(x) 2. x: =sqr(x) 3. r: =sqrt(x), r: вещественное число 4. с: =chr(b), b: цел с: символ возвращает символ по его коду 5. b: =odd(l), где b: лог l: цел Возвращает true, если аргумент -нечетное число 5. random(x) Генератор сл чисел Randomize; 1.

Пример программы, в которой значение выходит из допустимого диапазона var k: Word; begin k Пример программы, в которой значение выходит из допустимого диапазона var k: Word; begin k : = 65535; // Максимальное значение типа Word k : = k+1; // По правилам математики k=65536 writeln(k); // На самом деле k=0! end;

Логические типы Тип Длина, байт Boolean 1 Byte. Bool 1 Bool 2 word. Bool Логические типы Тип Длина, байт Boolean 1 Byte. Bool 1 Bool 2 word. Bool 2 Long. Bool 4

Логические типы Значения логического типа: False (ложь) или True (истина). Для них справедливы правила: Логические типы Значения логического типа: False (ложь) или True (истина). Для них справедливы правила: False<>True; Ord(False) = 0; Ord(True) <> 0; Succ(False)= True; Pred(True) = False.

Символьные типы Ansi. Char 1 байт Символ кода ANSI Wide. Char 2 байта Символ Символьные типы Ansi. Char 1 байт Символ кода ANSI Wide. Char 2 байта Символ кода Unicode Char 1 байт Родовой тип Ansi. Char

Код ANSI (American National Standard Institute) коды 0. . . 127 коды 128. . Код ANSI (American National Standard Institute) коды 0. . . 127 коды 128. . . 255 меняется для различных шрифтов. Стандартные Windows-шрифты Arial Cyr, Courier New Cyr и Times New Roman для представления символов кириллицы (без букв “ё” и “Ё”) используют последние 64 кода Коды 192. . 223 - “А”. . . “Я”, Коды 224… 255 “а”. . . “я”

Операции и функции Операции отношения (<, =, > и т. д. ), сравнивается код Операции и функции Операции отношения (<, =, > и т. д. ), сравнивается код C: =Сhr (b) – c: char; b: Byte символ по коду при b=48 с=‘ 0’; Up. Case(CH) - функция типа char; возвращает прописную букву, если сн - строчная латинская буква, в противном случае возвращает сам символ сн. C 1: = Up. Case(C) при с=‘e’ c 1=‘E’

Тип-диапазон (ограниченный или интервальный тип ) Тип-диапазон представляет собой диапазон (интервал) значений какого-либо типа Тип-диапазон (ограниченный или интервальный тип ) Тип-диапазон представляет собой диапазон (интервал) значений какого-либо типа (базового). Тип-диапазон наследует все свойства своего базового типа, но с ограничениями, связанными с его меньшей мощностью. Тип-диапазон задается границами своих значений внутри базового типа: <мин. знач. >. . <макс. знач. >

Тип-диапазон (ограниченный или интервальный тип ) type digit = '0'. . '9'; dig 2 Тип-диапазон (ограниченный или интервальный тип ) type digit = '0'. . '9'; dig 2 = 48. . 57; Тип-диапазон можно указывать непосредственно при объявлении переменной, например: var date : 1. . 31; month: 1. . 12; Ichr : 'А'. . 'Z'; левая граница диапазона не должна превышать его правую границу

Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение идентификатор и Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение идентификатор и располагается в списке, в круглыми скобками, например: type colors = (red, white, blue); Все значения типа пронумерованы, начиная с 0. Это пользовательский тип, то есть определяется пользователем.

Перечисляемый тип Максимальная мощность перечисляемого типа составляет 65536 значений. Если множество значений меньше 256, Перечисляемый тип Максимальная мощность перечисляемого типа составляет 65536 значений. Если множество значений меньше 256, то для хранения переменной выделяется 1 байт памяти, если больше – 2 байта Для данного типа не применимы операторы Read (Readln) и Write(Writeln)

Перечисляемый тип type colors = (black, red, white); ordenal= (one, two, three) ; Ord(black)=0, Перечисляемый тип type colors = (black, red, white); ordenal= (one, two, three) ; Ord(black)=0, . . . , Ord(white)=2, Ord(one)=0, . . . , Ord(three)=2,

Var col : colors; num : ordenal; допустимы операторы col : = black; num Var col : colors; num : ordenal; допустимы операторы col : = black; num : = Succ(two); недопустимы col : = one;

эквивалентны следующие присваивания: col : = black; col : = colors (0) ; Переменные эквивалентны следующие присваивания: col : = black; col : = colors (0) ; Переменные перечисляемого типа можно объявлять без предварительного описания этого типа, например: var col: (black, white, green);

Вещественные типы Double 8 ± 5. 0*10 -324 до ± 1. 7*10308 Real 48 Вещественные типы Double 8 ± 5. 0*10 -324 до ± 1. 7*10308 Real 48 6 ± 2. 9*10 -39 до ± 1. 7*1038 Single 4 ± 1. 5*10 -45 до ± 3. 4*1038 Extended 10 ± 3. 6*10 -4951 до ± 1. 1*104932 Comp 8 -263 до 262 Currency -922337203685477. 5808 до 922337203685477. 5807

Встроенные математические функции 1. 2. 3. 4. abs (x) int(x)- цел часть r : Встроенные математические функции 1. 2. 3. 4. abs (x) int(x)- цел часть r : = Int(123. 456); R=123. 0 frac(x)-дробная часть рез-т вещ число r : = frac(123. 456); R=0. 456 trunc(x) – отбрасывает дробную часть рез-т цел число r : = trunc(123. 456); R=123

5. 6. 7. 8. 9. cos (x), sin (x) exp(x) ln(x) sqrt(x) 5. 6. 7. 8. 9. cos (x), sin (x) exp(x) ln(x) sqrt(x)

Тип дата-время TDate. Time Назначение: одновременное хранение и даты, и времени. Внутреннее представление: вещественное Тип дата-время TDate. Time Назначение: одновременное хранение и даты, и времени. Внутреннее представление: вещественное число с фиксированной дробной частью ~Double (8 байт). Целая часть числа - дата, Дробная часть - время

Дата определяется количеством суток, прошедших с 30 декабря 1899 года, время - часть суток, Дата определяется количеством суток, прошедших с 30 декабря 1899 года, время - часть суток, прошедших с 0 часов. Функции: Now – возвращает сегодняшнее число и время; Date – возвращает сегодняшнюю дату; Time – возвращает время; Date. Time. To. Str – переводит дату и время в строку; Date. To. Str – переводит дату; Time. To. Str – переводит время в строку.

function Now: TDate. Time; Возвращает текущую дату и время Writeln( Now); Writeln( Date. To. function Now: TDate. Time; Возвращает текущую дату и время Writeln( Now); Writeln( Date. To. Str(Now));

Процедура Decode. Time Выделяет из переменной TDate. Time часы минуты, секунды и миллисекунды Decode. Процедура Decode. Time Выделяет из переменной TDate. Time часы минуты, секунды и миллисекунды Decode. Time(Time, Hour, Min, Sec, MSec); Hour, Min, Sec, MSec типа Word Time типа TDate. Time

var Present: TDate. Time; Year, Month, Day, Hour, Min, Sec, MSec: Word; Begin Present: var Present: TDate. Time; Year, Month, Day, Hour, Min, Sec, MSec: Word; Begin Present: = Now; Decode. Date(Present, Year, Month, Day); end.

Преобразование (приведение) типов Для использования одного итого и того же значения переменных разного типа Преобразование (приведение) типов Для использования одного итого и того же значения переменных разного типа данных необходимо осуществить его приведение к необходимому формату (типу). Типы преобразования: не явное (для совместимых типов); явное (для совместимых и несовместимых типов).

Неявное преобразование Для совместимых типов осуществляется компилятором автоматически в процессе присваивания. Пример Var I: Неявное преобразование Для совместимых типов осуществляется компилятором автоматически в процессе присваивания. Пример Var I: integer; W: word; R: real; I: =W ; (всегда) W: =I; (иногда) R: =I; (всегда) I: =R; (никогда)

Явное преобразование Для совместимых типов осуществляется программистом при помощи конструкции <идентификатор типа>(<выражение>) Можно использовать Явное преобразование Для совместимых типов осуществляется программистом при помощи конструкции <идентификатор типа>(<выражение>) Можно использовать как в правой так и в левой частях оператора присваивания. Пример: var c: char; i: byte; c: =char(i); byte(c): =I; Явное преобразование несовместимых типов осуществляется с помощью функций round, trunc и т. д.