Лекция ПАСКАЛЬ 2.pptx
- Количество слайдов: 57
ПАСКАЛЬ
Типы данных Pascal
Простые типы данных
Простые типы данных Pascal • • • числа с плавающей запятой (real), целые (integer), символьный (char), логический (boolean) и перечисления (конструктор нового типа, введённый в Pascal).
Целочисленные типы Тип Диапазон Формат Размер в байтах Byte 0. . 255 Беззнаковый 1 Short. Int − 128. . 127 Знаковый 1 Small. Int − 32768. . 32767 Знаковый 2 Word 0. . 65535 Беззнаковый 2 Integer -32 768. . 32 767 Знаковый 2 Cardinal =Long. Word Беззнаковый 4 Long. Word 0. . 4294967295 Беззнаковый 4 Long. Int − 2147483648. . 2147483647 Знаковый 4 Int 64 − 9223372036854775808. . 922 3372036854775807 Знаковый 8 QWord 0. . 18446744073709551615 Беззнаковый 8
Числа с плавающей запятой Тип Диапазон количество значащих цифр Размер в байтах Real/Double зависит от платформы ? ? ? 8 Real 48 -39. . 38 11 -12 6 Single -45. . 38 7 -8 4 Extended -4951. . 4932 19 -20 10 Comp − 2 E 64+1. . 2 E 63 -1 19 -20 8 Currency − 9223372036854 77. 5808. . 9223372 03685477. 5807 19 -20 8
Специальный тип данных множество
Множество-1 • В отличие от многих распространённых языков, Pascal поддерживает специальный тип данных множество: • • var set 1: set of 1. . 10; set 2: set of 'a'. . 'z'; set 3: set of pear. . orange; • Множество — фундаментальное понятие в современной математике, которое может быть использовано во многих алгоритмах.
Множество-2 • В паскале тип множество может содержать только однотипные элементы порядкового типа. • Эта особенность широко используется и обычно быстрее эквивалентной конструкции в языке, не поддерживающем множества.
К примеру, для большинства компиляторов Паскаля: • if i in [5. . 10] then { проверка на принадлежность элемента множеству }. . . • обработается быстрее, чем • if (i>4) and (i<11) then { проверка логическими условиями }. . .
Новые типы • Новые типы могут быть определены из существующих: • type { секция объявления типов } • x = Integer; • y = x; . . . • Более того, из примитивных типов могут быть сконструированы составные: • type { секция объявления типов } • a = Array [1. . 10] of Integer; { определение массива } • b = record { определение записи } • x: Integer; • y: Char; • end; • c = File of a; { определение файла }
Секция объявления переменных • • var { секция объявления переменных } r: Real; { переменная вещественного типа } i: Integer; { переменная целого типа } c: Char; { переменная-символ } b: Boolean; { логическая переменная } s: String; { переменная строки } t: Text; { переменная для обьявления текстового файла } • e: (apple, pear, banana, orange, lemon); { переменная типа-перечисления }
Элементы языка • 1. Алфавит • 2. Идентификаторы • 3. Константы • 4. Выражения • 5. Операции • 6. Структура программы
1. Алфавит
• Алфавит языка Турбо Паскаль включает буквы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова. • Буквы - это буквы латинского алфавита от а до z и от А до Z, а также знак подчеркивания _ (код ASCII 95). В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения. • Цифры - арабские цифры от 0 до 9. • Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0. . . 9, остальные шесть - латинскими буквами A. . . F или a. . . f.
Специальные символы Турбо Паскаля • + - * / = , '. : ; < > [ ] ( ) { } ^ @ $ # • К специальным символам относятся также следующие пары символов: • <> <= >= : = (* *) (. . ) • В программе эти пары символов нельзя разделять пробелами, если они используются как знаки операций отношения или ограничители комментария.
2. Идентификаторы
Идентификаторы в Турбо Паскале - это имена констант, переменных, меток, типов, объектов, процедур, функций, модулей, программ и полей в записях. Идентификаторы могут иметь произвольную длину, но значащими (уникальными в области определения) являются только первые 63 символа. Правильные Неправильные: А, ALPHA 1 Program {начинается цифрой} _beta block#l {содержит специальный символ} My. Program. Is. Best. Program My Prog {содержит пробел} date_27_sep_39 mod {зарезервированное слово} External
Зарезервированные слова and, end, nil, shr asm, file, not, string array, for, object, then begin, function, of, to case goto or type const if packed unit constructor, implementation procedure, until destructor, in, program, uses div, inline, record, var do, interface, repeat, while downto, label, set, with else, mod, shl, xor Зарезервированные слова не могут использоваться в качестве идентификаторов.
3. Константы
В качестве констант в Турбо Паскале могут использоваться: целые, вещественные и шестнадцатеричные числа логические константы, символы, строки символов конструкторы множеств
Виды констант Целые числа записываются со знаком или без него по обычным правилам и могут иметь значение от -2147483648 до +2147483647. Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Экспоненциальная часть начинается символом е или Е, за которым могут следовать знаки «+» или «-» и десятичный порядок. Шестнадцатеричное число Диапазон шестнадцатеричных состоит из шестнадцатеричных чисел - от $0000 ДО цифр, которым предшествует $FFFF. знак доллара $ (код 36 в ASCII).
Виды констант Логическая константа -это либо слово FALSE (ложь), -либо слово TRUE (истина). Символьная константа - это любой символ ПК, заключенный в апострофы Строковая константа - любая последовательность символов (кроме символа CR возврат каретки), заключенная в апострофы
Примеры констант Целые числа записываются со знаком или без него по обычным правилам Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Если целочисленная константа выходит за указанные границы, компилятор дает сообщение об ошибке. Такие константы должны записываться с десятичной точкой, т. е. определяться как вещественные числа. 3. 14 Е 5 – это 3. 14 умножить на 10 в степени 5; -17 е-2 – это минус 17 умножить на 10 в степени минус 2
Примеры констант Если целочисленная константа выходит за Целые числа записываются со указанные границы, компилятор дает сообщение об ошибке. знаком или без него по Такие константы должны записываться с обычным правилам десятичной точкой, т. е. определяться как вещественные числа. Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (код 36 в ASCII). 3. 14 Е 5 – это 3. 14 умножить на 10 в степени 5; -17 е-2 – это минус 17 умножить на 10 в степени минус 2 Диапазон шестнадцатеричных чисел - от $0000 ДО $FFFF. Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (код 36 в ASCII).
Примеры констант Логическая константа - это либо слово FALSE (ложь), либо слово TRUE (истина). Символьная константа 'z' - символ z; 'Ф' - символ Ф. '''' - символ ' (апостроф) Допускается использование записи символа путем указания его внутреннего кода, которому предшествует символ # (код 35), например #97 - символ а; #90 - символ Z; #39 символ '; #13 - символ CR Строковая константа -любая последовательность символов (кроме символа CR возврат каретки), заключенная в апострофы -'That' 's string. ‘ -Строка символов может быть пустой, т. е. не иметь никаких символов в обрамляющих ее апострофах. -Строку можно составлять из кодов нужных символов с предшествующими каждому коду символами #, например, строка #83#121#109#98#11#108 эквивалентна строке ' Symbol'
Примеры констант Строковая константа -любая последовательность символов (кроме символа CR возврат каретки), заключенная в апострофы -'That' 's string. ‘ -Строка символов может быть пустой, т. е. не иметь никаких символов в обрамляющих ее апострофах. -Строку можно составлять из кодов нужных символов с предшествующими каждому коду символами #, например, строка #83#121#109#98#11#108 эквивалентна строке ' Symbol' Конструктор множества - список элементов множества, обрамленный квадратными Конструкторы скобками, например: множеств [1, 2, 4. . 7, 12] [blue, red]
4. Выражения
• Основными элементами, из которых конструируется исполняемая часть программы, являются константы, переменные и обращения к функциям. • Каждый из этих элементов характеризуется своим значением и принадлежит к какомулибо типу данных. • С помощью знаков операций и скобок из них можно составлять выражения, которые фактически представляют собой правила получения новых значений.
Примеры выражений • • • Y 21 (а + b) * с sin(t) а > 2 not Flag and (а = b)
5. Операции
• В Турбо Паскале определены следующие операции: • унарные not, @; • мультипликативные *, /, div, mod, and, shl, shr; • аддитивные +, -, or, xor; • отношения =, <>, <, >, <=, >=, in.
Правила использования операций с операндами различного типа Операция Действие Тип операндов not Отрицание Логический not То же Любой целый @ Адрес Любой Тип результат Тип операнда Указатель
Правила использования операций - 1 Операция * * * / div mod Действие Тип операндов Тип результат Умножение Любой целый Наименьший целый То же Любой вещественный REAL Пересечение Множественный множеств Любой Деление REAL вещественный Наименьший Целочисленное Любой целый деление целый Остаток от деления То же
Правила использования операций -2 Операция Действие Тип операндов Тип результат and Логическое И Логический and То же Любой целый Наименьший целый shl Левый сдвиг То же shr Правый сдвиг То же + Сложение То же Любой вещественный REAL +
Правила использования операций -3 Операция + + or or Действие Тип операндов Тип результат Объединение Множественный множеств Сцепление строк Строковый Вычитание Любой целый Наименьший целый То же Любой вещественный REAL Логическое ИЛИ Логический Тоже Любой целый Наименьший
Правила использования операций -4 Тип операндов Любой простой или строковый Тип результат Операция Действие = Равно <> < Не равно То же Меньше Логический <= > Меньше или равно То же Больше То же >= Больше или равно То же Логический
Еще чуть-чуть о логических операциях
• • • В Турбо Паскале определены следующие логические операции: not - логическое НЕ; and - логическое И; or - логическое ИЛИ; хоr - исключительное ИЛИ. Логические операции применимы к операндам целого и логического типов.
Логические операции над данными типа INTEGER (поразрядно) В Pascal над целыми типами (byte, shortint, word, integer, longint и их диапазоны) допустимы логические операции над битами. Если операнды - целые числа, то результат побитовой логической операции есть тоже целое число, биты которого (двоичные разряды) формируются из битов операндов по правилам, указанным в таблице.
Логические операции над данными типа INTEGER (поразрядно) Операнд 1 Операнд 2 not and or xor 1 - 0 - - - 0 - 1 - - - 0 0 0 0 1 - 0 1 1 1 0 - 0 1 1 - 1 1 0
Логические операции над данными типа Boolean Операнд 1 Операнд 2 not and or xor True - False - - - False - True - - - False False True - False True False - False True - True False
Приоритет операций • Приоритет операций убывает в указанном порядке, т. е. наивысшим приоритетом обладают унарные операции, низшим - операции отношения. • Порядок выполнения нескольких операций равного приоритета устанавливается компилятором из условия оптимизации кода программы и не обязательно слева направо. • При исчислении логических выражений операции равного приоритета всегда вычисляются слева направо
6. Структура программы
• Структура программы на языке Паскаль (в общем виде): • • • PROGRAM <ИМЯ; > Заголовок LABEL- РАЗДЕЛ МЕТОК; CONSTРАЗДЕЛ КОНСТАНТ; TYPE- РАЗДЕЛ ТИПОВ; VAR- РАЗДЕЛ ПЕРЕМЕННЫХ; раздел описаний PROCEDURE РАЗДЕЛ ПРОЦЕДУР FUNCTION- И ФУНКЦИЙ; BEGIN … Раздел операторов (исполняемая часть) END.
Структура простой программы Название раздела Операторы раздела Заголовок программы program (необязателен) Имя. Программы; Раздел описаний – const список констант; необязателен, но, как var список правило, присутствует переменных; Тело программы – begin обязателен, содержит операторы программы операторы; end.
Общий вид программы • Программа начинается с заголовка, имеющего следующий вид: • PROGRAM <имя программы>; • Заголовок не является обязательной частью программы и его можно не писать. За ним идет раздел ОПИСАНИЙ, в котором должны быть объявления всех встречающихся в программе данных и их характеристик (имена данных , их тип, возможные значения и др. ), которые будут использованы в программе. Раздел ОПИСАНИЙ в общем случае содержит в себе другие разделы: описание меток, констант, типов, переменных, а также процедур (вспомогательные программы), функций. В программе необязательно наличие всех этих разделов.
Структура программы Правила
• При написании текста программы следует соблюдать несложные правила, облегчающие его последующие чтение и модификацию: • внутри ключевых слов или идентификаторов не должно быть пробелов и других разделителей, таких как табуляция или перевод строки; • во всех иных случаях не запрещено разрывать оператор, однако, делать это следует лишь тогда, когда написание оператора в одну строку затрудняет восприятие текста программы; • на каждой строке обычно пишется один оператор (это облегчает и отладку программы); • ·
• операторы одного уровня вложенности пишутся с одинаковым отступом слева; • например, хорошим тоном считается после начала каждого блока (begin) отступать на следующей строке на символ или несколько символов вправо, а закрывать блок так, чтобы соответствующий end; находился под своим begin.
• Программа записывается в свободной форме, операторы не привязываются к определенной позиции строки. • Допускается перенос с одной строки на другую отдельных частей описаний или операторов. • При написании большие и маленькие буквы не различаются. • Важнейшее правило Паскаля: • Все имена, используемые в программе должны быть описаны до их использования. • Поэтому такое строгое деление программы на исполняемую часть и раздел описаний.
Стандартные математические функции Паскаля
Обращение Тип аргумента Тип результата Abs(x) I, R I, R Модуль аргумента arctan (х) I, R R Арктангенс ( радианы) Cos (x) I, R R Косинус (х в радианах) Ехр(х) I, R R Экспонента ехp frac(x) I, R R Дробная часть х Int(x) I, R R Целая часть х Ln(x) I, R R Натуральный логарифм Функция
Стандартные математические функции Паскаля Обращение Тип аргумента Тип результата Random R random (x) I, Word Псевдослучайное число в интервале [0, х] round (x) R I Округление до ближайшего целого Sin(x) I, R R Sqr (x) I, R R sqrt(x) I, R R trunc (х) R I Функция Псевдослучайное число в интервале [0, 1] Синус (х — в радианах) Квадрат х Корень квадратный Ближайшее целое, не превышающее х по модулю
Возведение положительного числа в вещественную степень • следует производить, используя следующее математическое тождество: • ху • = еу 1 п х • На Паскале это записывается так: • ехр (у*LN(х) )
Математические процедуры Наименование Тип функции аргумента Тип значения Результат вычисления Inc(x) целый Увеличивает "х" на 1 ( x: =x+1; ) Dec(x) целый Уменьшает "х" на 1 ( x: =x-1; ) Inc(x , n) целый "х" на n ( x: =x+n; ) Dec(x , n) целый "х" на n ( x: =x-n; )
Функции преобразования типов переменных Наименование функции Тип аргумента Тип значения Результат вычисления Trunc(x) вещественный Long. Int целая часть "х" Round(x) вещественный Long. Int округление "х" до целого Odd(x) целый логический возвращает True если "х" - нечетное число Chr(x) Byte Char Символ ASCII кода "х" Ord(x) Char Byte ASCII код символа "x"


