
- •1. Двоичная система счисления.
- •2. Восьмеричная система счисления.
- •3. Шестнадцатеричная система счисления.
- •4. Сложение и вычитание в 2, 8 и 16 c/c.
- •2. Вещественные числа (числа с плавающей запятой).
- •3. Логические данные.
- •2. Зарезервированные слова.
- •X a8 alpha Massiv z52d9 eps Res_52_a ___75
- •6. Метка.
- •2. Целые типы данных.
- •4. Вещественные типы.
- •1. Раздел описания меток.
- •2. Раздел описания констант.
- •3. Раздел описания типов.
- •4. Раздел описания переменных.
- •6. Раздел операторов.
- •7. Последовательность разделов.
- •1. Формульно-словесный способ.
- •2. Блок-схемный способ.
- •Ввод - вывод одномерного массива
- •2. Ввод массива из текстового файла.
- •3. Вывод одномерного массива на экран.
- •Примеры обработки одномерных массивов
- •1. Параметр цикла должен быть ординального типа.
- •2. Параметр должен быть описан в том же блоке, где находится сам оператор цикла.
- •5. В теле цикла параметр не должен изменяться.
- •6. Начальное и конечное значения параметра цикла вычисляются только один раз, до начала цикла.
- •7. При нормальном завершении цикла значение его параметра считается неопределенным.
- •Контроль ординальных переменных
- •Вставка элемента в упорядоченный массив
- •Удаление элементов из массива
- •«Школьный» алгоритм сортировки
- •Группировка массива методом прямой выборки
- •Группировка массива методом прямого обмена
- •Var c : array[1..10,1..15,1..8] of real.
- •1. Ввод элементов матрицы с клавиатуры.
- •2. Ввод матрицы из текстового файла.
- •3. Вывод матрицы на экран.
- •Тождественные и совместимые типы
- •Обработка в процедуре одномерных массивов с различными именами типов
- •Обработка в процедуре матриц с различными именами типов
- •Var s : string[V],
- •Процедуры и функции для обработки строк
- •Определение битовой структуры поля памяти
- •Процедуры и функции для файлов любого типа
- •Var p : pointer;
- •1. Формирование стека из текстового файла.
- •7. Определение значения и местоположения максимального элемента в стеке.
- •8. Удаление из стека максимального элемента.
- •9. Добавление элемента в упорядоченный стек.
- •2. Добавление нового элемента в очередь.
- •3. Удаление элемента из очереди.
- •6. Удаление произвольного элемента из очереди.
- •7. Добавление нового элемента в произвольное место очереди.
- •1. Формирование дека.
- •Var sin : integer;
- •Процедура заполнения FillChar
- •Процедура перемещения данных move
- •Управление экраном в текстовом режиме
- •Сохранение и восстановление экрана
- •Interface
- •Implementation
- •Процедуры управления текстовым режимом экрана
- •Intr(n:byte; Var Reg:Registers),
- •If KeyPressed then
- •Автоматическая оптимизация программ
- •1. Свертывание констант.
- •2. Слияние констант.
- •3. Вычисление по короткой схеме.
- •4. Удаление неиспользуемого кода.
- •If false then
- •5. Эффективная компоновка.
- •Оверлейная структура программы
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Использование сопроцессора
4. Вещественные типы.
Вещественные числа - это числа с плавающей запятой. Широкое их использование характерно для инженерно-технических задач. Тем не менее процессоры 8086, 8088 и другие, на которых были построены первые ПЭВМ малой производительности, не имеют в своем составе операций над числами с плавающей запятой. Такие операции выполняются программным путем. Это означает, что транслятор включает в программу пользователя подпрограммы арифметических операций над числами с плавающей запятой. Тогда вместо выполнения, например, одной машинной команды сложения производится обращение к подпрограмме и выполняется целая группа машинных команд.
Для повышения производительности компьютера при обработке вещественных чисел к нему добавляют сопроцессор. Это небольшая плата, на которой аппаратно реализованы операции с плавающей запятой. При этом скорость выполнения таких операций увеличивается в несколько раз.
При отсутствии сопроцессора реализуется только один вещественный тип - тип real; при наличии сопроцессора реализуются также типы single, double, extended, comp. Вещественные типы отличаются друг от друга количеством разрядов, отводимых для представления мантиссы и порядка. В частности, переменная типа single имеет длину 4 байта, из них три байта - мантисса и один байт - характеристика; для переменной типа double отводится 8 байт памяти и т.д. В дальнейшем при разработке программ в качестве вещественного типа будет рассматриваться только тип real. Информация о других вещественных типах представлена в разделе «Использование сопроцессора».
Значение
числа типа real
в
десятичном представлении может изменяться
в диапазоне от
до
.
Размер мантиссы такого числа обеспечивает
получение 11 – 12 значащих десятичных
цифр.
Для вещественных типов определены четыре арифметические операции:
+ сложение ;
- вычитание ;
* умножение ;
/ деление .
Результатом операций "+", "-", "*" является вещественное значение, если хотя бы один из операндов имеет вещественный тип. Операция "/" дает вещественное значение и в том случае, когда оба ее операнда относятся к целочисленным типам.
Например, 12 / 5 = 2.4 , в то время как 12 div 5 = 2 .
Стандартные функции abs(x) и sqr(x) дают вещественный результат, если их аргумент x имеет тип real. Вне зависимости от типа аргумента следующие стандартные функции всегда дают вещественный результат: sin(x), cos(x), ln(x), exp(x), arctan(x), sqrt(x) (корень квадратный).
Вещественный результат при вещественном аргументе дают также функции:
Int(x) - целая часть вещественного значения x;
Frac(x) - дробная часть вещественного значения x (Frac(x) = x - Int(x)).
Отсутствующие в Турбо Паскале функции arcsin(x), arccos(x), lg(x) могут быть определены следующим образом:
а)
Запись на Паскале:
If abs(x)=1 then
arcsin:=pi/2
Else
arcsin:=arctan(x/sqrt(1-sqr(x)));
б)
На языке Паскаль:
If x=0 then
arccos:=pi/2
Else
arccos:=arctan(sqrt(1-sqr(x))/x)+pi*byte(x<0);
В выражении byte(x<0) используется аппарат приведения типов, который будет рассмотрен позже. В данном случае
byte(x<0) = 1, если x < 0; byte(x<0) = 0, если x 0.
в) lg(x): ln(x)/ln(10).
Степенная функция для вещественного показателя степени вычисляется следующим образом:
exp(b
* ln(a))
С Т Р У К Т У Р А П А С К А Л Ь - П Р О Г Р А М М Ы
Паскаль-программа состоит из заголовка и блока:
Блок Заголовок
программы
Блок содержит разделы описаний, в которых определяются все локальные по отношению к данной программе объекты, и раздел операторов, где заданы действия, которые необходимо выполнить над этими объектами.
Раздел
описания меток Раздел
описания констант
Раздел
описания переменных Раздел
описания типов
Раздел операторов Раздел
описания процедур
и функций
Приведенная синтаксическая диаграмма наглядно показывает, что в блоке может отсутствовать любой из разделов, кроме раздела операторов.
Последовательность описаний, приведенная на синтаксической диаграмме, регламентирована лишь для стандартного Паскаля. В Турбо Паскале она может быть произвольной, любой из разделов описаний может также повторяться несколько раз.
В заголовке программы указывается имя программы:
Идентификатор
Пример 1.
Program Example;