русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Характеристики вещественных типов данных


Дата добавления: 2015-08-14; просмотров: 973; Нарушение авторских прав


 

Имя типа Разрядность мантиссы (кол-во значащих цифр) Длина в байтах Диапазон десятичного порядка
SINGLE 7..8 -45 .. +38
REAL 11 .. 12 -39 .. + 38
DOUBLE 15 .. 16 -324 .. +308
EXTENDED 19 .. 20 -4932 .. +4932
COMP 19 .. 20 -2**63+1 .. +2**63-1

 

Чтобы сделать доступными типы SINGLE, DOUBLE, EXTENDED, необходимо соответствующим образом настроить компилятор ( с помощью директивы {$N+}).

Тип COMP воспринимается как вещественное число без экспоненциальной и дробной частей, т.е. фактически как целое с большим количеством значащих цифр. Это делает весьма эффективным использование данного типа в денежных (бухгалтерских) расчетах, требующих высокой точности.

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

Примеры:

75.05 -231.2 0.00789 -0.955

100.0

Но не 100 (!), т.к. это уже будет целый тип.

 

3. Логический тип- BOOLEAN.

 

В оперативной памяти занимает 1 байт и задается одним из значений:

TRUE– истина;

FALSE– ложь.

Причем TRUE> FALSE (порядковый номер TRUE=1, а FALSE=0).

 

1. Символьный типCHAR.

Его значением может быть один из символов расширенного

кодового набора ASCII (American Standard Code for Information Interchange), заключенный в апострофы. Сам апостроф удваивается при записи.

 

Примеры:

`T` `*` `!` `t` `+` ````

 

Отдельные символы набора ASCII имеют порядковые номера и упорядочены по ним от 0 до 255. Поэтому `A` < `B`, `D`<`F` и т.д.



В оперативной памяти значению символьного типа отводится 1 байт.

 

2. Перечисляемый и интервальный типы.

 

Язык Турбо-Паскаль дает возможность программисту работать с ограниченным множеством однородных данных, используя т.н. перечисляемый и интервальный типы данных. Число элементов в них – не > 256, каждому элементу отводится 1 байт памяти.

 

а). Перечисляемый тип.

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

Объявление перечисляемых типов данных приводится до описания переменных (в VAR) по следующему синтаксису:

 

TYPE<имя типа>=(<идентификатор>[,<идентификатор> …]);

 

где: <имя типа>::=<идентификатор>

 

Например:

 

TYPE PTK=(EIE,ET,ETB,ES);

GRUP=(EIS_111, EIS_112, EIS_211, EIS_212, EIS_311,

EIS_312, EIS_411, EIS_412, EIS_511, EIS_512);

NEDEL =(PND,VTR,SRD,CTV,PTN,SBT,VSK);

 

Отдельные элементы (значения) рассматриваемого типа являются самостоятельными объектами (не путать с константами), составляющими упорядоченный список в порядке перечисления. При этом первый элемент имеет номер 0, второй – 1 и т.д. Поэтому справедливо:

EIE < ET < ETB < ES

 

Замечание: каждый элемент из списка перечисляемого типа является

значением своего типа и не может принадлежать другому

типу в программе. Т.е , например, EIE из типа PTK не

может быть включен в тип GRUP.

 

Переменные, принадлежащие к типам, объявленным в разделе TYPE c помощью имен типов, должны быть описаны в разделе VAR:

 

VAR POTOK: PTK;

ST_GR: GRUP;

DAY: NEDEL;

 

Это означает, что скалярная переменная РОТОК может принимать одно, любое из перечисленных значений в объявлении типа РТК, т.е. EIE,ET,ETB,ES (и только!). Аналогично для ST_GR и ST_GR.

Т.е. допустимы присваивания:

 

POTOK:=EIE;

ST_GR:=EIE_111;

DAY := VSK;

 

Но недопустимо:

 

POTOK:=EIE_111; (разные типы!)

 

Переменные перечисляемого типа можно описывать и непосредственно в VAR:

 

VAR POTOK: (EIE,ET,ETB,ES);

 

К операндам перечисляемого типа применимы только операции сравнения. Поэтому они чаще всего используются в логических выражениях для управления логикой программы (в условных операторах и операторах цикла):

 

FOR ST_GR:=EIE_111 TO EIE_312 DO …

WHILE DAY <> SBT AND DAY <> VSK DO …

IF POTOK=EIS THEN …

 

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

 

IF POTOK=1THEN …

Что здесь понимать под 1? Ясно, что предыдущая форма записи точнее!

 

б). Интервальный тип (иначе, тип-диапазон, ограниченный тип, отрезки типов).

Такой тип задается двумя константами, разделенными двумя горизонтальными точками и определяющими допустимый интервал (диапазон) значений от минимального до максимального.

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

Синтаксис объявления:

 

TYPE<имя типа>=<1-ая константа>..<2-ая константа>;

 

где: <имя типа>::=<идентификатор>;

 

«1-ая константа» задает нижнюю границу допустимых значений интервала, а «2-ая константа» - верхнюю. Причем «2-ая » > «1-ой»

 

Примеры:

 

TYPE SP1=1..100; {базовый тип BYTE }

SP2=-10000..+10000; { - « - « - INTEGER}

SP3=`A`..`Z`; { - « - « - CHAR }

RDN=PND..PTN; { - « - « - перечисляемый}

 

Переменные интервального типа должны быть объявлены в VAR:

 

VAR INT: SP1;

DIAP: SP2;

ALF: SP3;

RAB_DNI: RDN;

 

Допускается короткое описание переменных интервального типа, без TYPE:

 

VAR INT: 1..100;

DIAP: -10000..+10000;

ALF: `A`..`Z`;

RAB_DNI: PND..PTN;

 

Можно и так:

CONST MIN=-10000;

MAX=10000;

VAR DIAP: MIN..MAX;

 

В целом использование перечисляемых и интервальных типов:

- повышает восприятие программ;

- позволяет программными средствами контролировать данные на

допустимость их значений;

- облегчает отладку программ.

 

6. Строчный тип – STRING[(N)].

Он определяет строку из N символов (1<N<255), заключенных в апострофы. Если N опущено, то предполагается, что N=255. Полезные апострофы в строке удваиваются.

Например:

`группа ЭИЭ-112`, `кафедра ``ИСЭК`` МИИТа`,

`ОТЧЕТ ф.ЦО-12`

 

Объявляется строчный тип обычным образом:

 

TYPE GR=STRING(14);

KF=STRING(20);

VAR N_GR, OTCH: GR;

KAFDR: KF;

 

Или непосредственно в VAR:

 

VAR N_GR, OTCH: STRING(14);

KAFDR: STRING(20);

 

Строго говоря, строку можно воспринимать как единое целое, И тогда это простой тип. Однако фактически строка представляется цепочкой символов, каждый из которых имеет свой индекс от 1 до 255 с добавлением 0-ого (самый первый байт), где постоянно хранится текущая длина строки. Поэтому ее можно трактовать как массив (сложный, структурированный тип) и, соответственно, манипулировать отдельными ее элементами, обращаясь к ним путем точного указания индекса:

 

IF N_GR[14]=`2` THEN …

 

На каждый символ строки в оперативной памяти отводится 1 байт. «Плюс» 1 байт на текущую длину. Поэтому на строку `поезд` будет отведено 6 байт памяти (5 + 1).

 

Строки можно сцеплять с помощью знака «+»:

Например,

 

пусть А:=`компания `;

 

Тогда С:=А+`I`+`B`+M`;

или С:=А+`IBM`; дадут текст: `компания IBM`

 



<== предыдущая лекция | следующая лекция ==>
Характеристики целых типов данных | Совместимость и преобразование типов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.949 сек.