Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_TP.doc
Скачиваний:
10
Добавлен:
22.12.2018
Размер:
1.4 Mб
Скачать

Простые структурированные ссылочные процедурные объектные

1-ограниченный 1-массив-ARRAY

2-скалярный: 2- множество-SET OF

а) перечислимый 3-запись структуры-RECORD

б) стандартный: 4-файловый-FILE

  • целый-INTEGER(BYTE)

  • вещественный-REAL(SINGLE)

  • логический-BOOLEAN(BYTE BOOL, WORD BOOL, LONG BOOL)

  • строковой-STRING

  • символьный-CHAR

Под типом понимается множество значений и операций ,допустимых для переменной. Базовым типом являются простые типы. Структурные типы строятся на базе простых.

Целый тип.

Целые числа в машине представлены как двоичные числа с фиксированной точкой. Для них используется разрядная сетка длиной в 2 Байта. Диапазон целых чисел от –32767 до 32767, от - (2^15 - 1) до (2^15 – 1). В знаковом разряде стоит ноль, если число положительно, и единица, если отрицательно. Число 89 представляется в компьютере:

0 1 2 3 4 5 6 7 8 9 10 12 14

0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1

Мантисса числа

Знак мантиссы

В TURBO PASCAL 7.0 имеется пять целочисленных типов. Справочная информация этих типов с указанием диапазона этих значений, требуемых для их размещения в области памяти, приведена в следующей таблице

Длина (Бт)

Название

Диапазон значения

1

BYTE

0..255

1

SHORNINT

-128..127

2

WORD

0..65535

2

INTEGER

- 32768..32768

4

LONGINT

-2147483648..

Множество допустимых операций: арифметические, встроенные функции по таблице для целых аргументов, целочисленное деление (понадобится для определения четных, нечетных номеров элементов или их значений).

Понятие целочисленного выражения.

Для кодирования выражения используется знаки математических действий DIV и MOD. Уровень вложенности скобок – произвольный (только круглые). Выражение можно записывать в одну или несколько строк. При переносе знак не повторяется. При использовании модуля числа следует брать встроенную функцию ABS.

Пример выражения:

VAR I, J, K, L : BYTE;

BEGIN

L:=(I+J) DIV (K*K + 1);

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

Вещественные числа в языке изображаются в виде десятичных дробей и для отделения целой части от дробной используется точка. У вещественных чисел существует экспоненциальная форма записи, для которой используется экспонента Е. Эта форма состоит из двух частей: мантисса, Е- порядок, где мантисса записывается в виде десятичной дроби, а порядок – это целое число. Мантисса умножается на 10 в соответствующей степени. Как порядок, так и мантисса могут иметь знак.

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

Пример:

VAR A, B, C : REAL

В Турбо Паскале определено 5 вещественных типов.

Длина (Бт)

Название

Диапазон значений

4

SINGLE

6

REAL

2,9*10-39..1.7*10+38

8

DOUBLE

10

EXTENDED

8

COMP

Действия над типами с одинарной точностью SINGLE , с двойной точностью DOUBLE , с повышенной точностью EXTENDED и сложной COMP могут выполняться при наличии числового сопроцессора и создании директив компилятора (дополнительные опции компилятора).

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

Пример программы: определить сумму элементов в одномерном массиве.

PROGRAM

VAR A:ARRAY [1..10] OF INTEGER;

SUM, I:INTEGER;

BEGIN

WRITELN (‘введите элементы массива‘);

SUM:=0;

FOR I:=1 TO10 DO {цикл }

READ (A[I]);{ввод элемента массива }

FOR I:=1 TO 10 DO

SUM:= SUM + A[I];

WRITELN (‘сумма равна‘, SUM);

END.

Пример: задан одномерный массив из 10-ти элементов. Отсортировать его в порядке возрастания и результат вывести на экран.

PROGRAM

VAR I, G, C : BYTE;

A:ARRAY [1..10] OF BYTE;

BEGIN

FOR I:=1 TO 10 DO

READ (A[I]);

FOR J:=1 TO10 DO

FOR I:=1 TO 10-J DO

IF A[I]>A[I+1] THEN

BEGIN

C:=A[I];

A[I]:=A[I+1];

A[I+1]:=C;

END;

FOR I:=1 TO 10 DO

WRITELN (A[I],’ ’);

END.

Пример: вывод матрицы на экран.

VAR A:ARRAY [1..5,1..4] OF BYTE;

I, J : BYTE; {только целые }

BEGIN

… {основное тело программы }

FOR I :=1 TO 5 DO

BEGIN {начало операторских скобок }

FOR J:=1 TO 4 DO WRITE (A[I, J],’ ’);

WRITELN;

END;