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

Билет 3

  1. Встроенные процедуры и функции с целочисленными аргументами.

  2. Цикл while.

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

При работе с данными целого типа необходимо следить за тем, чтобы значения переменных или выражений не выходили за допустимые границы диапазона значений. По умолчанию действует директива компилятора {SR-}, означающая, что проверка выхода значений из допустимого диапазона отменена. Это приводит к тому, что при выходе за допустимые границы значение будет изменяться циклически, то есть величина цикла бу­дет равна количеству значений, входящих в диапазон значений для соответствующего типа. Для того чтобы контролировать выход за границы диапазона значений, следует в про­грамме поместить директиву компилятора {SR+}. В этом случае при выходе за границы диапазона будет генерироваться исключение и на экран будет выведено сообщение об ошибке.

2) Оператор цикла с предусловием while имеет следующий формат: while < логическое выражение > do < оператор >; Выполняется оператор следующим образом. Вначале вычисляется значение логичес­кого выражения. Если это значение равняется true, то выполняется оператор, стоящий после слова do. После этого управление вновь передается на начало оператора, снова вычисляется значение логического выражения и процесс повторяется. Цикл прекраща­ется, если при очередном вычислении логического выражения его значение окажется равным false. Если при первом вычислении значения логического выражения окажется, что оно равно false, то оператор цикла не выполнится ни разу. Поскольку логическое выражение вычисляется при выполнении каждой итерации, его следует делать по возможности более простым. Если в цикле нужно выполнить не один оператор, а несколько, то их следует заклю­чить в операторные скобки begin...end, т.е. использовать составной оператор.

Замечу, что для правильного выхода из цикла условие выхода должно меняться внутри операторов, составляющих тело цикла while или repeat... until. Следующий цикл никогда не завершится «естественным» способом:

while True do begin

end;

Для гибкого управления циклическими операторами for, while и repeat в состав Object Pascal включены две процедуры без параметров:

break - реализует немедленный выход из цикла; действие проце­дуры заключается в передаче управления оператору, стоя­щему сразу за концом циклического оператора;

continue - обеспечивает досрочное завершение очередного про­хода цикла; эквивалент передачи управления в самый конец циклического оператора.

Билет 4

  1. Данные вещественного типа. Представление в ЭВМ. Операции над вещественными данными.

  2. Оператор выбора (переключатель).

1)Вещественные типы предназначены для представления действительных чисел, т.е. чисел, имеющих дробную часть. Поскольку данные в компьютере хранятся в виде дво­ичных кодов, то действительные числа представляются приближенно, хотя и с большой степенью точности. Если провести сравнение с целыми данными, то в отличие от дей­ствительных чисел, данные целого типа представляются в двоичном виде точно. В Delphi имеется семь вещественных типов, которые позволяют получить нужный ре­зультат практически с любой заданной степенью точности. Вещественное число в Object Pascal занима­ет от 4 до 10 смежных байт и имеет следующую структуру в памяти ПК:

Здесь s - знаковый разряд числа; е - экспоненциальная часть; со­держит двоичный порядок; m - мантисса числа.

Наибольшая производительность центрального процессора достигается при исполь­зовании типа Real. В Delphi 6 ему эквивалентен тип Double. Тип Real48 предназначен только для совместимости с ранними версиями Delphi. При его использовании производительность процессора минимальна. Если требуется (в целях совместимости) использовать 6-байтный Real, можно указать директиву компилято­ра {SREALCOMPA TIBIUTY ON}. Тип Extended позволяет производить расчеты с максимальной точностью. Более того, арифметический сопроцессор выполняет операции с действительными числами, представленными в формате Extended. Если же мы пользуемся типами Real, Single или Double, то результат вычислений усекается до соответствующей точности. Однако при использовании типа Extended следует помнить, что данные этого типа занимают в опе­ративной памяти ПК больше всего места ­­­- 10 байт. Типы Comp и Currency применяются для бухгалтерских расчетов. В типе Comp дроб­ная часть отсутствует, а в типе Currency она ограничена четырьмя знаками. В оператив­ной памяти ПК значения этих типов представляются как данные целого типа, занимаю­щие X байт. Это позволяет минимизировать ошибки округления в денежных расчетах. С другой стороны, значения типов Comp и Currency совместимы со значениями других вещественных типов, т.е. над ними могут выполняться все вещественные операции и им можно присваивать значения переменных и выражений других вещественных типов. Но при этом нельзя забывать о том, что будет происходить усечение значений до четырех зна­ков в дробной части для типа Currency и полное отбрасывание дробной части для типа Comp.

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

При условии, что хотя бы один из операндов вещественного типа (другой может быть и целым), операции *, /, +, - дают вещественный результат. Также можно применить к вещественным типам операцию взятия адреса @, её результатом будет указатель. К вещественным данным можно применить операции отношения < > <= >= <> =. Результатом такой операции будет логическое значение.

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