1
Типы данных.
2
Типы данных
В языке Паскаль все данные, используемые программой, должны принадлежать к какому-либо заранее известному типу данных.
Тип данных определяет:
• формат представления данных в памяти ЭВМ;
• множество допустимых значений;
• множество допустимых операций.
Данные
• исходные (предназначены для обработки);
• результаты (получаются в процессе выполнения программы.
.
3
Описание типов данных
Язык Turbo Pascal строго типизирован – программист должен описать все объекты программы, указывая их типы, и использовать объекты только в соответствии с этими типами. Это предотвращает анархию, помогает создавать надежные и качественные программы. В случае внесения изменений в описание переменных вся корректировка будет выполняться в одном месте – разделе описания типов данных.
4
Типы данных
Простые(скалярные)
Структурированные(составные)
Стандартные Пользовательские
5
Стандартныетипы данных
Числа Символы Логические
Целые Вещественные
Стандартные типы данных предлагаются программисту разработчиками Турбо Паскаль
6
Пользовательскиетипы данных
ПеречисляемыйОграниченный(интервальный)
Типы, определяемыепользователем
Используются для большего ограничения количества значений, принимаемых переменными порядкового типа.
7
ПОРЯДКОВЫЕ типы данных
ЦЕЛЫЙ
ЛОГИЧЕСКИЙ
СИМВОЛЬНЫЙ
ПЕРЕЧИСЛЯЕМЫЙ
ОГРАНИЧЕННЫЙ (интервальный)
Особая группа данных -
Они имеют ограниченное количество значений, идущих по порядку.
Общее для них – в компьютере они представляются целым числом.
8
Структурированные типы данных - множества значений или переменных с одним общим именем. В своей основе имеют скалярные типы данных.
Структуриро-ванные
Массивы Строки Записи Файлы Множества
9
КонстантыКонстанта – это величина, которая не изменяет
своего значения в процессе выполнения программы. Константа может быть обозначена именем и описана в разделе описания констант. Компилятор помещает значение константы прямо в текст исполняемой программы.
Например,
Const N=25; K=38; D=(N+K) Div 2; Letter=‘f’; M=5E15;
Тип константы автоматически опознается по форме их записи.
Присвоение имен константам делает программу более удобной для понимания и внесения исправлений в программу.
10
Именованные константы
ConstИмяКонстанты = ЗначениеКонстанты;
Например:ConstG=9.8; {Вещественная константа}
Count=maxint/2+1; {maxint – зарезервированная константа}
Nmax=100; {Целая константа}
Nmin=-nmax;S=‘абвгд’; {Строковая константа}
Kod=$123; {Шестнадцатеричная константа}
Идентификатор, используемый для определения константы, можно употреблять при задании следующих констант. Его значение нельзя изменять по ходу выполнения программы.
11
Типизированные константыСуществуют наряду с переменными и константами.
Эквивалентны переменным с заранее заданным значением. При описании указывается тип.
Const ИмяКонстанты: Тип = Значение;Например, Const N:Integer=15; ch:Char=#87; ocenka:byte=5; predmet:string=‘Информатика’;Типизированные константы являются одновременно
переменными. В частности, они могут изменять свое значение в процессе выполнения программы. К преимуществам можно отнести и то, что они инициализируются в начале программы.
12
ПОРЯДКОВЫЙтип данных
В математике порядковым числом называется номер элемента при
перечислении.
- тип данных, областью значений которых является упорядоченное счетное множество. Каждому элементу такого множества соответствует некоторое порядковое число, являющееся как раз его номером при перечислении.
НАПРИМЕР: Множество цифр десятичной системы счисления.
0,1,2,3,4,5,6,7,8,9
Для каждого значения, кроме первого, существует предшествующее значение, и для каждого значения кроме
последнего, существует последующее значение.
В языке Паскаль существуют стандартные функции:
13
Pred(x)– определяет предыдущее значение величины х;
Succ(x) – определяет последующее значение величины х;
Ord(x) – возвращает порядковый номер величины х;
Chr(x) – определяет символ по его порядковому номеру.
Функции:
14
Численные данныев языке Паскаль представлены целым и
вещественным типом.Целый тип – это интервал целых чисел. Операции
над целыми числами определены лишь тогда, когда данные (операнды) и результат лежат в этом интервале. Иначе возникает ситуация, называемая переполнением.
Вещественные числа представляются конечным множеством значений. Например, внутреннее представление типа real (6 байт) может дать 248 = 281 474 976 710 656 возможных комбинаций значащих разрядов в отведенных для него 6 х 8 = 48 битах.
15
ЦЕЛОЧИСЛЕННЫЕ типы
Описание типа
Диапазон возможных значений
Формат
Shorting -128 .. 127 1 байт со знаком
Integer -32 768 .. 32 767 2 байта со знаком
Longint -2 147 483 648 ..
2 147 483 647
4 байта со знаком
Bite 0 .. 255 1 байт без знака
Word 0 .. 65 535 2 байта без знака
- это интервалы целых чисел
16
ВЕЩЕСТВЕННЫЕ типы
Описание типа
Диапазон возможных значений
Точность Формат
Real 2.9E-39 .. 1.7E38 11-12 знаков 6 байт
Single 1.5E-45 .. 3.4E38 7-8 знаков 4 байта
Double 5.0E-324 .. 1.7E308 15-16 знаков 8 байт
Extended 3.4E-4932 .. 1.1E4932
19-20 знаков 10 байт
Comp -9.2E18 ..9.2E18 19-20 знаков 8 байт
- это конечное множество значений
17
ЛОГИЧЕСКИЙ (булевский) тип данных
– символически обозначенная логическая величина, которая может принимать всего два значенияTRUE (ИСТИНА, да, 1 ) или FALSE (ЛОЖЬ, нет, 0 )
(1 байт памяти)
На языке программирования Паскаль описывается:
Var B:boolean; {B - переменная логического типа}
FALSE < TRUE
18
СИМВОЛЬНЫЙ (литерный) тип данных
Диапазон значений: символы кодовой таблицы ASCII – это буквы, цифры, знаки препинания и специальные символы.
В памяти компьютера каждому символу соответствует индивидуальный числовой код от 0 до 255(10) (1 байт памяти);
( 0 – FF(16); 0 – 1111 1111(2))
• Описание: Char;
19
ОГРАНИЧЕННЫЙ (интервальный) тип или диапазон
Задается своим минимальным и максимальным значениями. Может быть определен на основе любого порядкового типа.
Например:
М = 1..12;
L = ‘a’..’z’;
Для каждой операции с переменной интервального типа автоматически выполняется проверка: остается ли значение переменной внутри установленного для нее диапазона. Это позволяет программисту не отвлекаться на организацию собственного контроля.
20
ПЕРЕЧИСЛЯЕМЫЙ тип данныхЗадается перечислением своих значений. Например, в виде строковых констант:
Type Week=(mondey, tuesday, wednesday, thursday, friday, saturday, sanday);Var day: week; season: (Winter, Spring, Summer, Autumn);
Cоздается новый (нестандартный) тип данных Week. Переменные этого типа могут принимать всего 7 значений: mondey, tuesday, wednesday, thursday, friday, saturday, sanday. Первая константа имеет порядковый номер 0, вторая – 1, и т.д.Day описывается через тип Week, season задается перечисляемым типом данных из 4 значений.
21
Объявление пользовательских типов данных происходит в разделе объявления типов, который открывается словом Type (англ. – тип):
Type ИмяТипа = ОписаниеТипа;Задание типа означает, что теперь в разделе описания
переменных можно пользоваться вновь введенным идентификатором.
Например, TypeMatr = array [1..N,1..M] of real;Week=(mondey, tuesday, wednesday, thursday, friday, saturday,
sanday);Work_week= mondey .. friday;Day=1..31;VarM: Week; R: Work_week; mas:matr;
Типы, определяемые пользователем