Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatika-otvety.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.46 Mб
Скачать

  1. Данные. Обзор типов данных. Особенности численных данных.

Каждый элемент данных относится к одному из конечного множес­тва типов, допустимых для конкретной версии языка программирова­ния. Тип - это множество значений, которые могут принимать объ­екты программы, и совокупность операции, допустимых над этими значениями. Например, значения 1 и 2 относятся к целочисленному типу. их можно складывать, умножать и выполнять другие арифмети­ческие операции. Для описания типа в общем слу­чае используется зарезервированное слово Type.

Формат: Type <Имя типа> = значения типа>.

Все типы данных разделяются на две группы: скалярные (прос­тые) и структурированные (составные). Скалярные типы в свою очередь подразделяются на стандартные и пользовательские, стан­дартные типы предлагаются пользователям разработчиками системы Turbo Delphi.

К стандартным скалярным относятся целочисленные, веществен­ные, литерные, булевские типы данных и указатели.

Данные целочисленных типов могут быть представлены как в де­сятичной. так и в шестнадцатеричной системах. Если число предс­тавлено в шестнадцатеричной системе перед ним без пробела запи­сывается знак S. Диапазон изменении шестнадцатеричных чисел от $0000 до $FFFF.

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

Вещественные десятичные числа с фиксированной точкой записы­ваются по обычным правилам арифметики. Целая часть от дробной отделяется десятичной точкой. Если десятичная точка отсутствует, число считается целым. Перед числом может находиться знак "+" или "-•' Если знак отсутствует, по умолчанию число считается по­ложительным .

Пример:

112 - целое десятичное число

3FF - шестнадцатеричное число

124.674 - вещественное число

-12.3 - отрицательное вещественное число

Вещественные десятичные числа в форме с плавающей точкой представлены в экспоненциальном виде: тЕ+р, где т - мантисса (целое или дробное число с десятичной точкой), Е- означает '•де­сять в степени", р - порядок (целое число),

Пример:

5.18E+02= 5.18 * 102 = 518

Пользовательские типы - перечисляемый и интервальный - разра­батываются самим программистом.

Структурированные типы в своей основе имеют один или несколь­ко скалярных типов данных. К структурированным типам относятся строки, массивы, множества, записи, файлы и данные совершенно новой природы: процедурного типа и типа object, двум последним типам трудно поставить в соответствие данные в обычном понимании этого слова.

Скалярные типы данных.

Целочисленные типы. Целочисленные типы данных представляют собой значения, ко­торые могут использоваться в арифметических выражениях и зани­мать в памяти от 1 до 4 байт.

Тип

Диапазон

Требуемая память (бит)

Byte

0..255

8

Shortint

-128..127

8

Smallint

-32768..32767

16

Integer

-32768..32767

16

Longint

-2147483648..

2147483647

32

Word

0..65535

16

Пример:

Var

XI, Х2 : byte;

YI : integer;

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

Тип

Диапазон

Мантиса

Требуемая память

Real

2.9*10-39..1.7*1038

11-12

6

Single

1.5*10-45..3.4*1038

7-8

4

Double

5.0*10-324..1.7*10308

15-16

8

Extended

3.4*10-4932..1.1*104932

19-20

10

Пример:

Var

XI, Х2 : real;

YI : double;

  1. Данные. Обзор типов данных. Особенности строковых данных.

Строковый тип представлен в виде набора символов из той или иной кодовой страницы и различаются по размеру и способу обращения. По размеру различают строки конечной и бесконечной длины.

Конечные строки бывают двух типов: ShortString (состоит из 255 символов) и String[ ] (в квадратных скобках указывается количество символов в строке).

Бесконечные строки задаются ключевым словом String.

Пример: Var

S1 : String;

S2, s3: String[27];

S4: ShortString;

  1. Данные. Обзор типов данных. Особенности пользовательских данных.

Пользовательские типы

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

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

Перечислимый тип

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

Var Season: (winter,spring,summer,autum );

Temp: (23,24,25,26);

Интервальный тип

Интервальный тип позволяет задавать две константы,определяющие границы диапазона значений для каждой переменной.Обе константы должны принадлежать одному и тому же стандартному типу (кроме real). Например,

Var S:1..30;

Сh:'a'..'f';

Указательный тип

Указательные типы - их значениями являются адреса памяти. В отличие от стандартного указательного типа Pointer, пользовательский тип определяет множество значений, которые указывают на динамические переменные определенного типа , называемого базовым типом. Указатель на какой-либо тип может быть описан до объявления самого типа:

Type PtStack=^Stack;

Stack=array[1..40] of real;

Процедурный тип

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

Type Tproc1=procedure (var x,y:real);

Tproc2=function ( x:real):real;

  1. Данные. Обзор типов данных. Объявление переменных и констант.

  1. Арифметические операции с данными.

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

Арифметические операции

Операция

Действие

Типы операндов

Тип результата

Пример

Бинарные

+

Сложение

Целый

Вещественный

Целый

Вещественный

1 + 5 = 6

1.5 + 5.3 = 6.9

-

Вычитание

Целый

Вещественный

Целый

Вещественный

6 – 1 = 5

7.2 – 4.1 = 3.1

*

Умножение

Целый

Вещественный

Целый

Вещественный

3 * 5 = 15

3.2 * 2 = 6.4

/

Деление

целый

Вещественный

Вещественный

30 / 5 = 6

30 / 60 = 0.5

Div

Целочисленное

Деление

Целый

Целый

12 div 5 = 2

11 div 3 = 3

1 div 3 = 0

Mod

Остаток

целый

Целый

11 mod 5 = 1

10 mod 3 = 1

14 mod 5 = 4

And

Арифметическое И

Целый

Целый

1 and 1 = 1, 1 and 0 = 0, 0 and 1=0, 0 and 0 = 0

12 and 22 = 4

Or

Арифметическое ИЛИ

Целый

Целый

1 or 1 = 1, 1 or 0 = 1,

0 or 1 = 1, 0 or 0 = 0,

12 or 22 = 30

Унарные

+

Сохранение знака

Целый

Вещественный

Целый

Вещественный

+(-12) = -12

+(34) = 34

-

Отрицание знака

Целый

Вещественный

Целый

Вещественный

-(-17) = 17

-(24) = -24

Not

Арифметическое отрицание

Целый

Целый

Not 0 = -1

Not 78 = -79

Операции сложения (+), вычитания (-), умножения (•) и деления (/) выполняются так же, как и в обычных арифметических выражени­ях. Целочисленное деление (div) отличается от обычной операции деления тем, что возвращает целую часть частного, дробная часть отбрасывается. Перед выполнением операции оба операнда округля­ются до целых значений. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.

Деление по модулю (mod) восстанавливает остаток от выполнения целочисленного деления.

Арифметическое И (and) производит логическое умножение опе­рандов.

Операнды записываются в десятичной форме,но во время выполне­ния переводятся в двоичную форму. Результат представлен в деся­тичной форме.

Пример. Вычислить результат выражения A and В, если А=12 и В=22. А и В занимают в памяти 2 байта и в двоичной форме имеют вид: 000000000001100 и 000000000010110. В результате выполнения операции 0000000000001100 and 0000000010110 в соответствии с таблицей истинности получим результат 0000000000000100, или 4 в десятичной форме. Следовательно. 12 and 22 = 4.

Логическое сложение (or) выполняет сложение операндов в дво­ичной форме.

Пример. Вычислить результат выполнения выражения 12 or 22. 12 и 22 занимают в памяти по 2 байта и в двоичной форме имеют вид 0000000000001100 и 0000000000010110 соответственно.. Выполнив сложение в соответствии с таблицей истинности, получим двоичное значение суммы 0000000000011110, что соответствует числу 30 в десятичной форме. Следовательно, 12 or 22 = З0.

Применение операции not к данным целочисленных типов вызывает побитную инверсию соответствующего данному числу двоичного кода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]