Схема типов данных

Стандартные типы данных:
Integer – целый тип данных (2 байта)
Данный тип определяет подмножество целых чисел со знаком
Диапазон возможных значений: -32768…32767;
Константы: 15, -89
Описание: Var x, y: integer;
Операции:
«+» - сложение;
«-» - вычитание;
«*» - умножение;
div – целочисленное деление (целая часть от деления двух целых чисел)
mod – целое как остаток от деления двух целых чисел
Функции:
Succ(x) – следующее целое число за значением х;
Pred(x) – предыдущее целое число перед значением х.
Встроенные процедуры и функции, применимые к целым типам
Обращение | Действие |
abs(x) | IхI |
odd(х) | Результат имеет тип boolean |
random(w) | псевдослучайное число, равномерно распределенное на интервале 0<=x<w |
sqr(x) | х2 |
Примеры:
Succ(-13)=> -12; Succ(13)=>13;
Pred(7)=>6; Pred(-7)=>-8;
Дополнительные целые типы
Длина, байт | Название типа | Диапазон значений |
1 | byte | 0…255 |
1 | shorting | -128…127 |
2 | word | 0…65535 |
2 | integer | -32768…32767 |
4 | longint | -… |
Real – вещественный тип данных (6 байт)
Элементы данного типа представляют собой подмножество дробных чисел
Диапазон:
Константы: используются 2 вида вещественных констант: с фиксированной и плавающей точкой.
Константа с фиксированной точкой: 1
Константа с плавающей точкой используется для записи очень больших и малых чисел: -0.25Е20 0.5Е-15
Описание: Var z, sum: real;
Операции: +, -, *, /, >, < , >=, <=, <>
Функции:
Trunc(x) | целое число как целая часть дробного числа x |
Round(x) | целое число как округление числа x |
Sqrt(x) | Квадратный корень из х |
Sqr(x) | х2 |
ArcTan(x) | Arctn x) |
cos(x) | Cos x |
Sin(x) | Sin x |
exp(x) | ex |
frac(x) | дробная часть числа |
int(x) | целая часть числа, результат – целое число. |
In(x) | Ln x |
Pi | пи=3,... |
Random | равномерное псевдослучайное число 0<=x<1 |
Дополнительные вещественные типы
Длина, байт | Название типа | Количество значащих цифр | Диапазон десятичного порядка |
4 | single | 7…8 | -45…+38 |
6 | real | 11…12 | -39…+38 |
8 | double | 15…16 | -324…+308 |
10 | extended | 19…20 | -4951…+4932 |
8 | comp | 19…20 | -263+1…+263-1 |
Char – символьный тип данных (1 байт)
Подмножество всех допустимых символов кодовой таблицы
Константы: 'a', '*', ' '
Диапазон: 256 символов с кодами 0..255
Операции над символами: <, <=, >, >=, =, <>
Функции над символами:
Succ(x) – следующее целое число за значением х;
Pred(x) – предыдущее целое число перед значением х;
Ord(c) – порядковый номер символа с в кодовой таблице;
Сhr(n) – символ, который расположен в n позиции кодовой таблице.
Например: Ord(‘1’)=>’49’;Chr(‘49’)=>’1’;
Описание: Var c:char;
Boolean – логический тип данных
Диапазон: данный тип включает всего два значения и используется для хранения результата логических выражений.
Константы: True, False
Описание: Var t, b: boolean;
Операции:
> - больше;
< - меньше;
>= - больше или равно;
<= - меньше или равно;
<> - не равно;
not – логическое отрицание (не);
and – логическое умножение (и);
or – логическое сложение (или);
Дополнительные логические операции
A | B | Not A | A and B | A or B | xor |
false | false | true | false | false | false |
false | true | true | false | true | true |
true | false | false | false | true | true |
true | true | false | true | true | false |
Массивы
Массив – это ограниченный набор элементов одного типа. Для массива характерно следующее:
- доступ к элементам массива, осуществляется путем указания идентификатора массива и местоположение элемента в массиве.
- размер массивов определяется при его описании и в дальнейшем не изменяется.
Формат записи
type <имя типа> =array[<тип индекса>] of<тип элементов>;
Пример:
var x.:mas;
y.:os;
Тип индекса – это любой порядковый тип, кроме типа real. Для указания типа индекса наиболее удобным являются отрезки типов. Количество типов индексов может быть любым.
Например если используется
один индекс – массив называется одномерным (как в математике вектор)
Var x : array [1..5] of integer;
y : array [‘a’…’f’] of real;
два индекса – двумерный массив, использующийся для описания табличных данных. Первый индекс указывает номер строки, второй – номер столбца на пересечении которых расположен элемент массива.
Var x : array [1..2, 1..5] of integer;
Y : array [‘a’…’f’] of real;
три индекса – трехмерный массив, использующийся для описания объема для данных. Для работы с глубиной используется третий индекс.
![]() |
Тип элементов – это любой тип данных языка Паскаль (кроме типа файл), который определяет содержимое массива.
Операции над массивами
Все операции над элементами массива определяются в их типом. Кроме обычных операций для массивов можно использовать операцию присваивания элементов одного массива другому, при условии, что массивы описаны одним и тем же типом.
Var x, y: mas;
x: =y;
Все операции по обработке элементов массивов, включая ввод и вывод предполагают использование циклов с известным числом повторений.
Рассмотрим задачу:
Произведены замеры загрязнения окружающей среды по n предприятиям города. Каждый замер веществ число. Норма загрязнения определяется значением k и вводится пользователем. Вывести на экран номера предприятий, которые превысили допустимый уровень загрязнения и вывести саму величину превышения.
Program A;
Var x: array [1..50] of real;
i, n: integer;
k: real;
Begin
write (‘Кол-во проверенных предприятий’);
readln (n);
write (‘Норма загрязнений :’);
for i: =1 to n do
begin
write (‘Данные’, i, ‘предприятия :’);
read (x[i])
end;
writeln (‘Нарушители:’);
for i:=1 to n do
begin
if x[i]>k,
then writeln (i,’ – превышение ’,x[i]-k)
end;
End.
Двумерные массивы, матрицы.
Var x:array [1..10;1..10] of real;
i, j,n, m:1..10;
Begin
{ Цикл ввода элементов матрицы }
write (‘Кол-во строк?:’); readln (n);
write (‘Кол-во столбцов?:’); readln (m);
for i:=1 to n do
begin
write (‘Элементы строки ’,i,’: ‘);
for j:= 1 to m do read (x[i;j])
end;
{ Цикл вывода элементов матрицы }
writeln (‘Полученная матрица’);
for i:= 1 to n do
begin
write (‘Элементы строки’,I,’: ‘);
for j=1 to m do write ([i;j]:5:1)
writeln
end;
End.
Особенности обработки квадратных матриц
Файлы
Файл - это поименованная область дискового пространства для хранения данных.
Для работы с файлами выделяют 2 группы операций:
1. подготовительные
2. операции обработки элементов файлов
Подготовительные операции
Assign, Reset, Rewrite, Close
Формат записи файлов
Var f: file of < тип элементов >;
Тип элементов - любой стандартный тип, и тип запись
f: file of integer;
g: file of real;
Assign (f, < путь к файлу >)- процедура, устанавливающая связь между файловой переменной f и конкретным файлом на диске
assign (f ‘a|11|a. txt’)
Reset (f); открыть файл для чтения.
- при этом текущий указатель файла устанавливается на первый элемент файла. Если указанный файл не существует, фиксируется сообщение об ошибке.
Rewrite (f); открыть файл для записи.
-если такого файла не существует, он автоматически создается. При этом текущий указатель совпадает с признаком конца файла. Если файл существует, то все его содержимое теряется, и он создается вновь.
Close (f); закрытие файла после его обработки. При создании нового файла эта операция обязательна при его закрытии.
Следует отметить, что файл, открытый для чтения процедурой reset можно использовать и для перезаписи его элементов.
Операции обработки элементов файла.
Формат записи файла в языке.
Var f: file of < тип элементов файла >;
В качестве типа может быть выбран любой стандартный тип, а так же тип запись. Указанное описание файла определяет понятие титуированного файла. Эти файлы содержат данные во внутреннем формате ЭВМ и обычными средствами операционной системы не могут быть рассмотрены.
Обработка элементов таких файлов производится только программно. Для удобства работы и вывода элементов в наглядном виде могут использоваться файлы, называемые текстовыми. Они представляют собой последовательность символов, среди которых могут встречаться признаки конца строки, поэтому текстовые файлы часто определяются, как последовательность строк. Любой текстовый файл может быть создан с помощью редактора(Turbo Pascal или Блокнот).
Формат записи
Элементы текстовых файлов обрабатываются в соответствии с тем типом, который определен для используемой переменной. При обработке элементов файла используется 2 операции:
w read (< файловая переменная >,< список переменных >);
w write (< файловая переменная >,< список переменных >);
read (f, x, y);
Операции обработки элементов файлов:
Типизированные файлы | Текстовые файлы |
Стандартные операции ввода/вывода | |
read (f, <список переменных>) write (f, <набор данных>) | |
Дополнительные операции | |
FileSize (f):longint; функция, определяющая количество элементов файла Seek (f, i); - процедура, которая устанавливает текущий указатель файла на позицию i | readln (f);-чтение значений из файла и переход на следующую строку в файле writeln (f,…);вывод элементов в текстовый файл, можно использовать форматы вывода данных Writeln (f: x: 1). append (f);-процедура, которая устанавливает указатель файла в его конец для дозаписи элементов в файл |
При обработке элементов файла можно использовать функцию
true, если обнаружен признак конца файла
Eof (f) = false, если признак не зафиксирован
Замечания: в языке существует 2 стандартных текстовых файла:
- Input-файл ввода данных с клавиатуры
-Output-файл вывода данных на экран.
Эти файлы открываются и закрываются автоматически, поэтому никакие подготовительные операции для них пользователь не использует, а само название файлов в операции ввода и вывода можно не писать.
При этом справедлива запись:
read (input, x,y) = read(x, y)
write (output, сумма =, S) = write (сумма=,S)



