- •Лекция 4. Концепция данных языка программирования
- •Алфавит языка
- •1. Латинские буквы (большие и маленькие), знак подчеркивания ’_’
- •2. Цифры 0 ... 9
- •5. Скобки ( ) [ ] { }
- •Выбирайте имена так, чтобы они несли смысловую нагрузку Типы данных
- •Тип данных Integer
- •Тип данных Real
- •Тип данных Сhar
- •Тип данных Boolean
- •IntersectLines(прямая, прямая) точка
- •IntersectLineCircle(прямая, окружность) (точка, точка)
- •Понятие терма
- •Формы записи
Тип данных Integer
Значениями целого типа являются элементы зависящего от реализации подмножества (отрезка) целых чисел. Это означает, что существует стандартная константа с именем MaxInt, такая что для любого данного X типа Integer
- MaxInt-1 <= X <= MaxInt
Наиболее распространенное для 16 разрядных ПЭВМ значение
MaxInt = 215 - 1 = 32767.
Операции:
* - умножение;
div - неполное частное от целочисленного деления;
mod - остаток от целочисленного деления;
+ - сложение;
- - вычитание;
Функции:
Abs(x) - х ;
Sqr(x) - х 2;
Trunc(x) - отбрасывание дробной части от вещественного х;
Round(x) - округление вещественного x;
Succ(x) - х + 1;
Pred(x) - х - 1;
Отношения:
< - меньше <= - меньше или равно
> - больше >= - больше или равно
= - равно <> - неравно
Тип данных Real
Значениями вещественного типа являются элементы зависящего от реализации подмножества вещественных чисел. В ВP диапазон типа Real
[ 2.9*10 -39 ... 1.7*1038 ]
Операции:
* - умножение; / - деление;
+ - сложение; - - вычитание;
Функции:
Abs(x) - модуль х;
Sqr(x) - х в квадрате;
Sqrt(x) - корень из х.
Sin(x) - sin х;
Cos(x) - cos х;
Arctan(x) - arctg х;
Ln(x) - ln х;
Exp(x) - eх;
Отношения: такие же, как и для типа Integer.
Числовые типы Integer и Real совместимы.
Тип данных Сhar
Значениями символьного типа являются элементы конечного и упорядоченного множества символов. Символы этого множества определяются реализацией. Значения типа Char совпадают с некоторым расширением ASCII - символов.
Вне зависимости от реализации множество символов включает:
A, B, C, ... , Z , _ (знак подчеркивания)
0, 1, ... , 9 - (десятичные цифры)
Символ пробела.
Функции:
Ord(x) - порядковый номер x.
Chr(n) - символ с порядковым номером N.
Pred(x) - символ, предшедствующий x.
Succ(x) - символ, следующий за x.
Отношения.
Тип данных Сhar упорядочен. Данные типа Сhar можно сравнивать, как и данные числовых типов, с помощью отношений:
= <> > < >= <= .
Порядок на множестве букв латинского алфавита согласован с алфавитным, а на множестве цифр - с числовым.
Тип данных Boolean
Булевские значения: True (истина) и False (ложь).
Тип данных Boolean упорядочен.
Функции: Ord, Succ, Pred.
имеют место следующие соотношения :
False < True ,
Ord (False) = 0, Ord (True) = 1,
Succ (False) = True, Pred (True) = False.
Операции:
And - логическая коньюнкция ( и )
Or - логическая дизньюнкция ( или )
Not - логическое отрицание ( не )
Эти операции определяются следующими таблицами истинности:
|
And |
False |
True |
|
Or |
False |
True |
|
x |
Not (x) |
|
False |
False |
False |
|
False |
False |
True |
|
False |
True |
|
True |
False |
True |
|
True |
True |
True |
|
True |
False |
Отношения =, < > , <= , < , > , >= , in
являются операциями, результат которых имеет тип Boolean
Функции
Odd(Х) { Odd(Х) = True, если Х - целое нечетное число
Odd(Х) = False, если Х - целое четное число}
Eoln(F) { конец строки текстового файла}
Eof(F) { конец файла}
Вычислительные структуры как формальные средства описания данных
Вычислительная структура ЯП состоит из семейства множеств, называемых носителями, и семейства отображений (операций, функций) между носителями.
Понятие вычислительной структуры используют для описания совокупности типов данных, определенных в ЯП, как единого целого.
Проектирование и реализация структур данных осуществляется в терминах АТД и ВС сверху-вниз, а описания – снизу вверх.

Задача: Построить систему визуализации хода решения задачи на построения с помощью циркуля и линейки
Пример АТД Планиметрия (лекция 1)
Примитивные типы объектов: точка, прямая, окружность.
Имена типов (Паскаль) Point, Line, Circle
Примитивные операции и заголовки функций и процедур (Паскаль):
Line: (точка, точка) прямая
Procedure DoLine (A, B: Point; var p: Line)
Circle: (точка, точка) окружность
Procedure DoCircle (A, B: Point; var c: Circle)
CircleRad: (точка, точка, точка) окружность
Procedure DoCirRad (A, B, C: Point; var c: Circle)
Аналогично определяются процедуры для:
