Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kitkat_otvety.doc
Скачиваний:
4
Добавлен:
01.08.2019
Размер:
3.29 Mб
Скачать

Билет 21

  1. Представление двоичных чисел с плавающей фиксированной запятой. Нормализованное число.

  2. Особенности использования массивов в качестве параметров процедур и функций.

1) Вещественные типы предназначены для представления действительных чисел, т.е. чисел, имеющих дробную часть. Поскольку данные в компьютере хранятся в виде дво­ичных кодов, то действительные числа представляются приближенно, хотя и с большой степенью точности. Если провести сравнение с целыми данными, то в отличие от дей­ствительных чисел, данные целого типа представляются в двоичном виде точно. Вещественное число в Object Pascal занима­ет от 4 до 10 смежных байт и представляется в виде числа с плавающей запятой. Форма представления чисел с плавающей запятой называют представление числа в виде двух множителей N = A * Bp, где А – мантисса числа, В – основание системы счисления, р – порядок, записываемый в выбранной системе счисления. Если А удовлетворяет неравенству 1/В≤А<1, то число N и само представление называется нормализованными. В любой системе счисления это неравенство означает, что мантисса числа меньше 1, но её первая цифра после запятой отлична от 0, при этом порядок числа может быть как положительным, так и отрицательным.

Здесь s - знаковый разряд числа; е - экспоненциальная часть; со­держит двоичный порядок; m - мантисса числа. Мантисса m имеет длину от 23 (для Single) до 63 (для Extended) двоичных разрядов, что и обеспечивает точность 7...8 для single и 19...20 для Extended десятичных цифр. Десятичная точка (запятая) подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение сдвигается влево или вправо в со­ответствии с двоичным порядком числа, хранящимся в экспоненци­альной части, поэтому действия над вещественными числами назы­вают арифметикой с плавающей точкой (запятой).

2) Если массив передается в подпрограмму, то необходимо первоначально описать его тип. Требование описать любой тип-массив перед объ­явлением подпрограммы, на первый взгляд, кажется несуществен­ным. Действительно, в рамках простейших вычислительных задач обычно заранее известна структура всех используемых в программе данных, поэтому статическое описание массивов не вызывает про­блем. Однако разработка программных средств универсального на­значения связана со значительными трудностями.

Динамический массив передается в подпрограмму, в которой соответствующий формальный параметр объявлен как открытый массив. Открытый массив представляет собой формальный параметр подпрограммы, описывающий базовый тип элементов массива, но не определяющий его размерности и границы. Внутри подпрограммы такой параметр трактуется как одномер­ный массив с нулевой нижней границей. Верхняя граница открытого массива возвращается стандартной функцией High. Используя 0 как минимальный индекс и значение, возвращаемое функцией High, как максимальный индекс, подпрограмма может обрабатывать одно­мерные массивы произвольной длины.

Открытый массив аналогичен динамическому. В подпрограмме реальная длина массива может быть определена с помощью функции Length – длина массива, либо при помощи функции High – наибольшее значение индекса. High(<Массив>)=Length(<Массив>)-1. В качестве фактического параметра для открытого массива может выступать и статический массив. Если минимальный индекс в статическом массиве не равен 0, то первый элемент статического массива все равно будет соответствовать нулевому элементу открытого массива. При использовании открытых массивов вы должны включить соответствующее указание компилятору – {$P+}. Есть некоторые ограничения в использовании открытых массивов. Во-первых, открытые массивы могут быть только одномерными. Во-вторых, их элементы передаются через стек, что замедляет работу программы и может послужить причиной переполнения стека.

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

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