Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы_алгоритм_и_программир_2курс_ПИ .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
720.9 Кб
Скачать

4. Вещественные типы.

Физические типы:

Обозначение

Диапазон

Число цифр

Real48

2,9х10-39 – 1,7х1038

11-12

Single

1,7х10-45 – 3,4х1038

7-8

Double

5,0х10-324 – 1,7х10308

15-16

Extended

3,6х10-4951 – 1,1х104932

19-20

Comp

-2х1063+1 – 2х1063-1

19-20

Currency

(-922337203685477,5808) – (+922337203685477, 5807)

19-20

Общим является тип Real, который соответствует типу Double.

Запись вещественных чисел возможна в форме с фиксированной точкой (целая часть числа отделяется от дробной точкой) и в форме с плавающей точкой, т.е. указывается порядок числа со знаком, отделенный от мантиссы знаком Е или е (+10е+3, 1.5е+5).

Типы Comp и Currency представляют вещественные числа с фиксированной точкой и введены для точных расчетов денежных сумм. При присваивании переменной типа Comp, значение автоматически округляется до ближайшего целого.

К выражениям вещественных типов применимы следующие функции:

Round(X) – округление значение выражения Х.

Trunc(X) – целая часть значения выражения Х.

Урок № 11. Структурные типы данных: строки, массивы, множества.

Данные структурного типа состоят из данных других типов, в том числе и структурного. К данным структурного типа относятся:

- Строки

- Массивы

- Множества

- Записи

- Файлы

- Классы

1.Строки.

Строки (строковые типы) представлены тремя физическими типами.

Данные типа ShortString представляют собой строку, которая фактически является массивом из 256 элементов. Этот тип введен для совместимости с преды­дущими версиями языка.

Данные типов AnsiString и WideString представляют собой динамические массивы, максимальная длина которых фактически ограничена размером основной памяти компьютера. Данные типа AnsiString кодируются в коде ANSI, а типа WideString - в коде Unicode.

Общим типом является тип string, который может, соответствовать типу ShortString или AnsiString, что определяется директивой компилятора $РРHhhhhH. По умолчанию используется {$H+} и тип String равен типу AnsiString.

2.Массивы.

Массивом называется упорядоченная индексированная совокупность одно­типных элементов, имеющих общее имя. Элементами массива могут быть данные различных типов, включая структурированные. Каждый элемент массива однозначно определяется именем массива и индексом (номером этого элемента в массиве) или индексами, если массив многомерный. Для обращения к отдельному элементу массива указывается имя этого массива и номер элемента, заключенный в квадратные скобки, например, а[4,35].

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

Различают массивы статические и динамические. Статический массив представляет собой массив, границы индексов и размеры кото­рого задаются при объявлении, т. е. они известны до компиляции програм­мы.

Формат описания статического массива:

Array [Тип индексов] of <Тип элементов>;

Пример. Объявление статических массивов

Type tm = Array[l .. 10, 1 .. 100] of real;

Var arrl,arr2: tm;

arr3: Array[20 .. 100] of char;

arr4: Array['a’ .. 'z'] of integer;

Динамический массив представляет собой массив, для которого при объявлении указывается только тип его элементов, а размер массива определяется при выполнении программы. В Delphi использование динамических массивов стало возможным, начиная с версии 4

Формат описания типа динами­ческого массива:

Array of <Тип элементов>;

Задание размера динамического массива во время выполнения программы производится процедурой SetLength (S, L), которая для динамического массива s устанавливает новый размер, равный L – целое число. Выполнять операции с динамическим массивом и его элемента­ми можно только после задания размеров этого массива.

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

Length( ) – определение длинны массива;

Low( ) – минимальный номер элементов;

High( ) – максимальный номер элементов.

Нумерация элементов динамиче­ского массива начинается с нуля, поэтому функция low () для него всегда возвращает значение ноль.

Пример. Описание одномерного динамического массива:

var n: integer;

m: array of real;

. . .

SetLength(m, 100);

for n=0 to 99 do m[n] :=n;

SetLength (m, 200);

Для описания типа многомерного динамического массива (например, дву­мерного) используется конструкция:

Array of Array of <Тип элементов>;

Пример. Описание двухмерного динамического массива:

var

A: array of array of Integer: // Двумерный динамический массив

begin

// Устанавливаем длину первого измерения (количество столбцов):

SetLength(A,3);

// Задаем длину каждого столбца:

SetLength(A[0],3):

SetLength(A[l],3);

SetLength(A[2],3):

end;

Действия над массивом обычно выполняются поэлементно, в том числе операции ввода и вывода. Поэлементная обработка массивов производится, как правило, с использованием циклов.