- •Алгоритмизация и программирование
- •Среда программирования turbo pascal 7.0
- •Структура меню среды
- •Правила оформления программ
- •Команды редактора тп
- •Компиляция и исправление ошибок в программе
- •Элементы языка pascal Алфавит языка
- •Константы. Идентификаторы
- •Операторы Оператор присваивания
- •Оператор безусловного перехода
- •Стандартные функции
- •Условный оператор if
- •Опеpатоp варианта case
- •Составной и пустой операторы
- •Операторы цикла
- •Процедуры прерываний
- •Типизированные константы
- •Структура программы
- •Типы в Турбо Паскале
- •Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •Логический тип
- •Символьный тип
- •Служебные символы
- •Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Перечислимый тип
- •Ограниченный тип (диапазон)
- •Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •Структурированные типы данных. Массивы
- •Технология программирования Этапы подготовки и решения задач на компьютере
- •3.3. Отладка программных средств
- •Зарезервированные слова Turbo Pascal 7.0
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля. Оператор присваивания, процедуры ввода - вывода
- •Приоритет операций в выражении
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7 Программирование алгоритмов обработки двумерных массивов
- •Порядок выполнения лабораторных работ
- •Приложение 1 Обозначения графические в схемах алгоритмов (гост 19.701-0)
- •Приложение 2 Сообщение об ошибках Сообщения об ошибках периода компиляции
- •Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- •Ошибки вода - вывода
- •Критические ошибки
- •Приложение 3 Кодировка символов в соответствии с кодами ascii
- •Альтернативная кодировка госТа для кодов 128...255
- •Приложение 5 Клавиши с кодами из двух частей
- •Содержание
Вещественные типы
В отличие от порядковых типов значения вещественных типов определяют число лишь с некоторой точностью, зависящей от внутреннего формата числа. Вещественное число в памяти ПК представляется в экспоненциальной форме и состоит из знака, мантиссы и порядка числа. Десятичная точка подразумевается перед левым (старшим) разрядом мантиссы (такая мантисса называется нормализованной). При выполнении операций десятичная точка сдвигается путем выполнения умножения мантиссы на E (экспоненту) с порядком:
<Знак><Мантисса>Е<Порядок> или <Знак><Мантисса>*10<Порядок>.
В зависимости от числа разрядов, отводимых под мантиссу и порядок, в ТП различают следующие вещественные типы (табл.5).
Все типы, кроме REAL, могут использоваться только при особых режимах компиляции среды или подключенном сопроцессоре. Подключение сопроцессора производится до выполнения программы указанием ключа $N+; отключает сопроцессор ключ $N-. Арифметический сопроцессор всегда обрабатывает числа в формате EXTENDED, другие типы получаются усечением результатов до нужных размеров.
Таблица 5
Вещественные типы
-
Длина,
байт
Название типа
Значащие цифры мантиссы
Диапазон десятичного порядка
4
6
8
10
8
SINGLЕ
REAL
DOUBLE EXTENDED
COMP
7..8
11..12
15..16
19..20
19..20
-45..+38
-39..+38
-324..+308
-4951..+4932
-2E63+1..2E63-1
Тип COMP трактуется как "большое" целое число со знаком. В то же время в выражениях он полностью совместим с другими вещественными типами и порядковым не считается. Для работы с вещественными типами определены встроенные функции: sin, cos, arctаn, ln, exp, sqr, abs, sqrt, а также функции табл.6.
Операции +,-,*,/ дают вещественный результат, если хотя бы один из аpгументов вещественный.
Таблица 6
Встроенные функции
-
Обращение
Тип параметра
Тип результата
Примечание
Pi
Frac(Х)
Int(x)
Random
Randomize
вещественный
вещественный
вещественный
вещественный
вещественный
вещественный
Pi=3,141592653
Дробная часть Х
Целая часть x
0<x<1 случайное целое число
Инициализация датчика случайных чисел
Структурированные типы данных. Массивы
Массивы – упорядоченная структура однотипных данных, хранящихся последовательно. Массив обязательно имеет размеры. Описывается в разделе TYPE или VAR следующим образом:
Type <имя>=array[индексный тип] of <базовый тип>; или
Var <Имя_переменной>: array [ диапазон_индексов] of <базовыйтип>;
Диапазон индексов может задаваться любым порядковым типом кроме LongInt. Произведение количества компонентов массива, задаваемого диапазоном индексов, на размер компонентов в байтах не может превышать 65520 байт.
Пpимер: TYPE
array10=array[1..10] of integer;
array11=array[11..22] of real;
VAR V:array[-3..2] of char; {массив из 6 элементов}.
В качестве индексов можно использовать любые перечислимые типы как встроенные, так и вводимые программистом. Индексы в этом случае могут задаваться также диапазоном. Если диапазон соответствует всему типу, можно просто указывать имя этого типа. Например:
TYPE
DIAP=1..100;
VECTOR=array[DIAP] of real;
PRIZ=array[Boolean] of char;
При записи сложных массивов индексы разных диапазонов могут принадлежать разным типам. Например:
VAR V: array[0..10,'A'..'C',Boolean] of char;
В качестве значений диапазона могут использоваться идентификаторы, если их значения определены выше. Например:
CONST
K=10; L=5;
VAR
A:ARRAY[1..K] OF INTEGER;
B,С:ARRAY[1..K,1..L] OF REAL;
Массивы хранятся в памяти как сплошные последовательности компонентов, причем быстрее изменяется дальний правый индекс.
Обращение к элементу массива производится указанием имени массива и индексов, заключенных в квадратные скобки:
<имя>[<индексы>].
Пример:
A[1]:=1; B[8,5]:=В[8,1]+B[8,2];
V[1,'B',False] или V[1]['B'][False].
В данном типе определена единственная операция присваивания. Можно присваиваить массив лишь массиву, например: A:=С.
Операции сравнения производятся только поэлементно.
Обнуление элементов массива выполняется циклом
FOR I:=1 TO K DO A[I]:=0.
Разрешается обьявлять массивы массивов, например:
TYPE VECTOR=array[1..5] of real;
MATRIX=array[1..10] of VECTOR;
или
MATRIX=array[1..10] of array[1..5] of real;
или
MATRIX=array[1..10,1..5] of real;
Приведенные три последних вида записей эквивалентны.
Слову array может предшествовать ключевое слово PACKED, которое означает «упакованный». Заметим, что в Турбо Паскале все массивы хранятся в упакованном виде, поэтому PACKED писать не рекомендуется.