Основные логические типы данных — КиберПедия 

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Основные логические типы данных

2017-12-13 370
Основные логические типы данных 0.00 из 5.00 0 оценок
Заказать работу

Тип Обозначение Размер, байт Диапазон значений
Логический Boolean   Принимают только два значения: 1) true (истина или «1»); 2) false(ложь или «0»)
ByteBool   Истинным считается любое отличное от нуля значение

Пример. Описание переменных логического типа.

varf,p:boolean;

6. Адресный тип данных. Стандартный адресный (ссылочный) тип данных обозначается ключевым словомpointer. Величины данного типа – указатели – предназначены для хранения адресов данных произвольного типа. Указатель – это переменная, хранящая адрес области памяти. Адрес занимает четыре байта и хранится в виде двух слов, одно из которых определяет сегмент памяти, второе – смещение.

Пример. Описание указателей.

var p:pointer;

7. Файловые типы данных. Файловые типы данных используются для работы с внешними устройствами – файлами на диске, портами, принтерами и др. К стандартным файловым типам относятся текстовый файл (text) и бестиповый файл (file).

Пример. Описание файлов.

var f:text;

result:file;

Типы данных, определяемые пользователем

 

Описанные ранее типы данных являются стандартными, кроме них пользователь может создавать свои собственные типы данных, используя оператор type. Задать собственный тип данных можно двумя способами.

Первый способ – объявить собственный тип данных вразделе описания типов type. При объявлении нового типа данныхзадается его имя и после знака равно его определение. После этого пользовательский тип данных можно использовать в разделе описания переменных так же, как стандартные типы данных:

type имя_типа = описание_типа;

var имя_переменной=имя_типа;

Второй способ – непосредственно при описании переменных. В этом случае указывается имя переменной и после двоеточия задается определение пользовательского типа данных:

var имя_переменной:описание_типа;

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

 

Простые типы данных, определяемые пользователем

 

1. Перечисляемый тип данных. При написании программ иногда возникает потребность использовать связанные между собой константы. Для этого удобно использовать перечисляемый тип данных, значения которого задаются списком констант:

type имя_типа =( список имен констант );

Константы в списке перечисляются через запятую. Имена констант в программе или подпрограмме должны быть уникальными.

Пример. Описание перечисляемых типов данных.

type menu=(file,edit,view,help);

type color=(red,orange,yellow,green,blue,violet);

var main_menu:menu;

а:color;

Переменная main_menu может принимать значения:file,edit,view,help. Переменная a может принимать значения: red,orange,yellow,green,blueиviolet.

2. Интервальный тип данных. С помощью интервального типа данных задается диапазон какого-либо типа:

type имя_типа = константа_1 .. константа_2;

Константы разделяются двумя точками. Обе константыконстанта_1 и константа_2должны быть одного и того же порядкового типа, при этом величина первой константы должна быть меньше второй.

Над переменными, относящимися к интервальному типу, могут выполняться все операции и применяться все стандартные функции, которые допустимы для соответствующего базового типа.

Пример. Описание интервальных типов.

type hour=0..25;

interval=–100..100;

symbol='a'..'z';

3. Адресный тип данных. Пользователь может задать свой собственный адресный тип данных, определив в разделе type указатель на данные или подпрограмму конкретного типа, например:

type pword=^word;

var p:pword;

Теперь в переменной р можно хранить адреса величин типа word.

 

Составные типы данных, определяемые пользователем

 

В табл. 1.4 перечислены базовые составные типы данных, на основе которых пользователь может создать свой собственный тип данных.

Таблица 1.4

Составные типы данных

Тип Обозначение Описание
Массивы Array Массив – это набор величин одинакового типа, обозначаемых одним именем. Положение элемента в массиве задается его порядковым номером (индексом)
Строки String Строки определенной и динамической длины
Записи Record Запись – это набор величин разных типов, обозначаемых одним именем. Элементы записи называются полями
Множества Set Множества – это совокупность элементов одного типа, обозначаемых одним именем, элементы множества не повторяются. Доступ к элементам множества производится через специальные функции
Файлы File Типизированные (компонентные) файлы – файлы, состоящие из компонент любого типа, кроме файлового
Процедурный   Процедурный тип данных позволяет использовать заголовки процедур и функций (procedure и function) при объявлении новых типов данных и описывать процедурные переменные
Объектный Object Объект, как тип данных

 

1. Массивы. Для обработки большого объема данных одинакового типа вводят специальный тип данных – массив. Массив – это упорядоченная последовательность величин одинакового типа, обозначаемая одним именем. Положение элемента в массиве задается его порядковым номером (индексом).

Количество элементов и структура массива определяют его размерность. В случае одномерных массивов для нумерации элементов используется один индекс, двумерных – два, трехмерных – три и т.д.

Ввод, вывод и обработка массивов осуществляется с помощью оператора цикла. Применение массивов и циклов существенно сокращает текст программы.

Тип элементов массива может быть любым, кроме файлового. Тип индексов массивов может быть интервальным, перечисляемым или byte.

При описании массива указывают его имя, способ нумерации элементов массива и тип элементов массива:

type имя_типа_массива =array[ тип_индекса ] of тип_элементов;

var имя_массива:имя_типа_массива;

Пример. Описаниемассивов.

type color=array[1..5] of real;

mas_color=array[byte] of color;

menu=(file,edit,view,help);

active=array[menu] of boolean;

В примере color – это массив, состоящий из вещественных элементов, которые нумеруются от 1 до 5. Элементами второго массива mas_color являются массивы типа color. Нумерация элементов массива mas_color определяется типом byte, т.е. от 0 до 255. Индексы массива active принимают значения, определяемые типом menu, т.е. file,edit,view,help, при этом сами элементы могут принимать значения true или false.

Более детально обработка массивов описана в главе «Массивы».

2. Строки. Строка, имеющая стандартный тип string, содержит до 255 символов и занимает в памяти 256 байт. Для коротких строк стандартный тип string использовать не эффективно, а для строк, содержащих больше 255 символов невозможно. В Паскале существует возможность самостоятельно задавать длину строки и создавать строки динамической длины.

Пример. Описание строк.

const n=2;

type s10=string[9];

s=string[n];

Строка s10 содержит 9 символов. Длина строки s определяется значением константы n.

3. Записи. Запись – это набор величин разных типов, обозначаемых одним именем. Элементы записи называются полями. При описании записи указывают ее имя, имена полей записи и их тип:

type имя_типа_записи= record

имя_поля_1:тип_поля_1;

имя_поля_2:тип_поля_2;

...

имя_поля_n:тип_поля_n;

end;

var имя_записи:имя_типа_записи;

Пример. Описание записи.

type order=record

name_goods:string;

price:real;

number:integer;

end;

Доступ к полю записи осуществляется двумя способами. В первом случае указывается имя_записи.имя_поля. Во втором случае используют специальный оператор with.

Пример. Доступ к полям записи.

order.number:=12;

with order dobegin

order.price:=250;

order.number:=12;

end;

Инициализация записей выполняется в разделе констант.

4. Множества. Множества – это совокупность элементов одного типа, обозначаемых одним именем, элементы множества не повторяются. Доступ к элементам множества производится через специальные функции. В множестве не может быть более 256 элементов, а их порядковые имена могут изменяться от 0 до 256. Элементы множества могут иметь перечисляемый тип, интервальный или byte.

Описание множества:

type= имя_множества setof базовый_тип;

Пример. Описаниемножеств.

type colors=set of (red,orange,yellow,green,blue);

number=set of byte;

letters=set of byte 'a'..'z';

5. Файлы. Пользователь может определить файл, состоящий из компонент любого типа, кроме файлового. Такие файлы называются компонентными или типизированными:

var f: file of тип_компонент;

Обработка файлов выполняется с помощью специальных операций.

Пример. Описаниетипизированногофайла.

type mas:array of [1..100] of real;

my_record=record

a,b,c:real;

end;

var f1:file of mas;

f2:file of my_record;

6. Процедурный тип данных. Последние версии Паскаля содержат ряд расширений начальной версии Паскаля. Процедурный тип данныхвыходит за рамки первоначальной концепции данных. Процедурный тип данных позволяет использовать заголовки процедур и функций при объявлении новых типов данных и описывать процедурные переменные. Синтаксис описания процедурного типа соответствует синтаксису обычного заголовка процедуры или функции – используются те же зарезервированные слова procedure и function,и приводится описание параметров. Как и другие пользовательские типы данных, процедурный тип можно задать двумя способами. Первый способ – объявить собственный тип данных и далее в разделе описания переменных описать переменные данного типа. Второй способ – непосредственно при описании переменных. (Работа с процедурным типом в учебном пособии не рассматривается.)

Пример. Описание и использование переменной процедурного типа.

program example;

type fun=function(a:real):real;

var f:fun;

x,y:real;

{F+}

function tan(angle:real):real;

begin

tan:=sin(angle)/cos(angle);

end;

{F-}

Begin

writeln('Введитех');

read(x);

f:=tan;

y:=f(x);

writeln('y=',y);

end.

7. Объекты. Объекты предназначены для создания программ в концепции объектно-ориентированного программирования. (Работа с объектами в учебном пособии не рассматривается.)

 


Поделиться с друзьями:

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

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

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.033 с.