lec_02.ppt
- Количество слайдов: 51
Алфавит языка программирования – совокупность допустимых символов A. . Z, a. . z, _ (цифры) 0. . 9 (цифры) + - * / = < >. , : ; @ ‘ ( ) [ ] { } # $ ^ (специальные символы) пробел, Enter, Tab (общие разделители) 1
Базовые элементы языка Служебные, или зарезервированные слова Произвольные идентификаторы, или имена Изображения - числа, символьные строки и другие значения. Знаки операций - образуются из специальных символов или зарезервированных слов Знаки пунктуации - образуются из специальных символов. 2
Общая структура pascal-программы Заголовок Раздел объявления (описания) данных Раздел описания действий с данными 3
Заголовок программы: program идентификатор; Раздел объявления данных может включать : Раздел объявления используемых модулей (обязательно на первом месте и только один): uses список модулей ; Список - один элемент или несколько, перечисленных через запятую. 4
Раздел объявления констант (несколько, произвольно расположенных): const идентификатор= изображение значения ; ……. . идентификатор = изображение значения ; идентификатор: тип = изображение значения ; (Типизированные константы – аналог переменных, но инициализируются 1 раз ) 5
Раздел объявления типов (несколько, произвольно расположенных): type идентификатор=определение типа; идентификатор =определение типа; ……. . идентификатор =определение типа; 6
Раздел объявления переменных (несколько, произвольно расположенных): var список идентификаторов: идентификатор или определение типа; ………. . идентификатор: тип= изображение значения; 7
Раздел описания действий с данными (тело программы): begin оператор pascal ………. . . оператор pascal end. 8
Классификация типов данных (первый принцип) Стандартные, или предопределенные, или встроенные, типы. Пользовательские типы, или типы, определяемые программистом. 9
Классификация типов (второй принцип) Простые, или элементарные типы Структурированные, или составные типы Указатели, или ссылочные типы Процедурные типы Классы 10
Простые типы данных Простой тип всегда определяет упорядоченное множество значений. Каждое значение - единственная, скалярная величина. Стандартные простые типы данных Целые Вещественные Логические Символьные 11
Конкретный ТД определяет спецификация. Основные элементы спецификации: 1) атрибуты, характеризующие ОД этого типа 2) множество допустимых значений для ОД этого типа; 3) операции, определяющие возможные манипуляции над ОД этого типа. 12
Помимо спецификации необходимо конкретизировать реализацию ТД. Реализация определяет: 1) способ представления ОД этого типа в памяти в процессе выполнения программы; 2) способ представления операций, определенных для ТД, через конкретные алгоритмы. 13
Целые типы (основные) идентификаторы типов, память Идентификатор Размер в байтах Short. Int, Byte* 1 Small. Int, Word* 2 Integer = Long. Int 4 Cardinal, Long. Word* 4 Int 64 8 * беззнаковые типы данных 14
Целые типы изображение десятичное 1, -2, 0 16 -тиричное $10, $FF цифры 0 1. . 9 A B C D E F и символа $ перед записью числа. 15
Реализация Обычно целые типы реализуются на основе аппаратного представления и аппаратно реализованных операций 16
17
Целые типы операции Арифметические операции, не выводящие за целые типы: умножение * сложение + вычитание - деление нацело div остаток от деления нацело mod 18
Побитовые операции, не выводящие за целые типы: And Bit 1 and Bit 2 =1 ↔ Bit 1=1 и Bit 2=1 Or Bit 1 or Bit 2 =1 ↔ Bit 1=1 или Bit 2=1 Xor Bit 1 xor Bit 2 =1 ↔ Bit 1≠ Bit 2 Not not 0=1, not 1=0 Shl сдвиг влево на k битов (умножение на 2 k) Shr сдвиг вправо на k битов (деление на 2 k) 19
Примеры 11110000 and 10111101 = 10110000 11110000 or 10111101 = 11111101 11110000 xor 10111101 = 01001101 00001111 shl 2 = 00111100 11101111 shr 3 = 00011101 20
Операции, выводящие за целые типы: деление / результат - вещественное значение сравнения < > = <= >= <> результат - логическое значение true, false (истина или ложь) 21
Вещественные типы (с плавающей точкой): идентификаторы типов, точность, память single Точность 7 - 8 цифр Размер в байтах 4 double Точность 15 - 16 цифр Размер в байтах 8 extended Точность 19 - 20 цифр Размер в байтах 10 22
Вещественные типы: изображение: с фиксированной точкой: целая часть. десятичная часть с плавающей точкой: мантисса E порядок 23
Реализация Хранение основано на аппаратном представлении, Область памяти разбивается на 2 части: мантиссу (M) - хранятся значащие цифры, порядок, или экспоненту (E) - хранится показатель степени X = M 2 E, M- вещ. число, E- целое число. 24
25
Общепринятое определение формата вещественных чисел с плавающей точкой: стандарт IEEE - Standard 754, Определяет 32 - и 64 -битовое представление IEEE - Институт инженеров по электротехнике и электронике (англ. Institute of Electrical and Electronics Engineers) (I triple E — «Ай трипл и» ) — международная некоммерческая ассоциация, мировой лидер в области разработки стандартов по радиоэлектронике и электротехнике. 26
Числа представлены с помощью трех полей S, E, M: S - однобитовое поле, хранящее знак числа. 0 соответствует неотрицательным числам. E - 8 -битовое поле, хранящее экспоненту. 256 различных значений используются со сдвигом на 127 для степени 2: от – 127 до 128. M - 23 -битовое поле, хранящее мантиссу. В нормализованной форме первый бит всегда равен 1 – его можно опустить и вставлять автоматически аппаратными средствами. Тогда точность увеличится до 24 -битного представления. 27
Вещественные типы операции: не выводящие за вещественные типы: сложение + вычитание умножение * деление / выводящие за вещественные типы: сравнения < > = <= >= <> (результат - логическое значение истина или ложь) 28
Логические типы (множество значений: true, false) Идентификатор Boolean Byte. Bool Word. Bool Long. Bool Размер в байтах 1 1 2 4 29
Аппаратная реализация: представление данных False - число 0, записанное в указанное выше количество байтов. True - число 1 для типа Boolean, любое число, отличное от 0, для других типов. операции: Сравнения < > = <= >= <> Отрицание not (выражение логического типа) 30
Сложение логических значений (или) (выражение 1) or (выражение 2) Умножение логических значений (и) (выражение 1) and (выражение 2) Сложение логических значений по модулю 2 (исключающее или) (выражение 1) xor (выражение 2) 31
Приоритет операций Операция Приоритет @ not первый(высший) ---------------------------* / div mod and shl shr as второй ----------------------------+ - or xor третий -----------------------------= <> < > <= >= in is четвертый(низший) 32
Символьные типы Char, Ansi. Char Размер в байтах 1 (char в новых версиях м. б. 2 байта!) Множество значений: символы ANSI Wide. Char Размер в байтах 2 Множество значений: символы Unicode - 256 первых совпадают символами в ANSI кодировке 33
Изображение: через графическое представление символа: ' символ ' через код символа : # код Операции выводящие за символьный тип: сравнения < > = <= >= <> (результат определяется из сравнения кодов), сложение + (результат - строка из символов-слагаемых) 34
Простые пользовательские типы Перечисляемый тип. Тип-диапазон, или интервальный тип. 35
Перечисляемый тип Задается набором идентификаторов, с которыми могут совпадать значения переменных этого типа. объявление типа: type идентификатор типа = (список идентификаторов-значений); Размер отводимой памяти - 1 байт (возможно до 256 значений), директивой компилятора можно увеличить до 2 {$Z 2} или 4 {$Z 4} байтов. 36
операции выводящие за перечисляемый тип: сравнения < > = <= >= <> (результат определяется из порядка перечисления идентификаторов при объявлении типа). 37
Порядковые типы Все простые типы, кроме вещественных, являются порядковыми: для любого значения (кроме минимального) однозначно определено предшествующее ему значение; для любого значения (кроме максимального) однозначно определено следующее за ним значение. 38
Тип-диапазон Образуется сужением допустимого диапазона значений любого порядкового типа. объявление типа: type идентификатор типа = мин. значение. . макс. значение ; 39
Оператор присваивания идентификатор переменной : = выражение; Порядок выполнения оператора: вычисление значения выражения, присваивание (передача) полученного значения переменной. Примечание. Должны выполняться правила согласования типов значения выражения и переменной 40
Условный оператор if логическое выражение then оператор или составной оператор else оператор или составной оператор; if логическое выражение then оператор или составной оператор; 41
Составной оператор, или блок begin оператор … оператор end; 42
Оператор выбора CASE case выражение of список констант и/или диапазонов: оператор; . . . список констант и/или диапазонов: оператор; else оператор end; 43
case выражение of список констант и/или диапазонов: оператор; . . . список констант и/или диапазонов: оператор; end; Выражение-селектор должно иметь порядковый тип, а используемые для ветвления константы и диапазоны включаться в этот тип. 44
Оператор цикла for параметр: = start to finish do оператор или составной оператор; for параметр: = start downto finish do оператор или составной оператор; Параметр – переменная, start, finish выражения порядкового типа, start <= finish 45
Порядок выполнения оператора for: Вычисление значений выражений start и finish. Присваивание параметру начального значения (start). Сравнение значения параметра с конечным значением (finish). Пока параметр <= finish (to) или параметр >= finish (downto) выполняется оператор, стоящий после do, и изменяется параметр: значение заменяется на следующее (to) или предыдущее (downto) иначе выход из цикла. 46
Процедура Break Оператор вызова процедуры имеет вид: break ; Вызов процедуры break в цикле передает управление оператору, расположенному сразу после данного цикла. 47
Универсальные операторы цикла Арифметический цикл – количество повторений цикла заранее известно. Итерационный цикл – количество повторений цикла заранее неизвестно. 48
Оператор цикла с предусловием Общий вид: while логическое выражение do оператор или составной оператор ; Буквальный перевод: пока значение логического выражения - истина выполнять оператор или составной оператор; 49
Оператор цикла с постусловием Общий вид: repeat оператор ; ……. оператор ; until логическое выражение ; 50
Буквальный перевод: повторять операторы до тех пор, когда значение логического выражения станет равным истине; 51