
ПАСКАЛЬ продолжение.pptx
- Количество слайдов: 39
Напомним ЭЛЕМЕНТЫ ЯЗЫКА ПАСКАЛЬ
Элементы языка • • • Алфавит Идентификаторы Константы Выражения Операции Структура программы
Алфавит • Алфавит языка Турбо Паскаль включает буквы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова. • Буквы - это буквы латинского алфавита от а до z и от А до Z, а также знак подчеркивания _ (код ASCII 95). • В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения. • Цифры - арабские цифры от 0 до 9. • Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0. . . 9, остальные шесть - латинскими буквами A. . . F или a. . . f.
Специальные символы Турбо Паскаля • + - * / = , '. : ; < > [ ] ( ) { } ^ @ $ # • К специальным символам относятся также следующие пары символов: • <> <= >= : = (* *) (. . ) • В программе эти пары символов нельзя разделять пробелами, если они используются как знаки операций отношения или ограничители комментария. • Символы (. и. ) могут употребляться соответственно вместо [ и ].
Идентификаторы в Турбо Паскале - это имена констант, переменных, меток, типов, объектов, процедур, функций, модулей, программ и полей в записях. Идентификаторы могут иметь произвольную длину, но значащими (уникальными в области определения) являются только первые 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 destructor in program uses until div inline record var do interface repeat while downto label set with else mod shl xor Зарезервированные слова не могут использоваться в качестве идентификаторов.
Константы • В качестве констант в Турбо Паскале могут использоваться: • • • целые, вещественные и шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств и признак неопределенного указателя NIL. Ключевое слово const показывает начало раздела описаний именованных констант. • Пример • const e=2. 718285; lang='Turbo Pascal 7. 1';
Виды констант Целые числа записываются со знаком или без него по обычным правилам и могут иметь значение от -2147483648 до +2147483647. Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Экспоненциальная часть начинается символом е или Е, за которым могут следовать знаки «+» или «-» и десятичный порядок. С Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (код 36 в ASCII). Диапазон шестнадцатеричных чисел от $0000 ДО $FFFF. Логическая константа -это либо слово FALSE (ложь), -либо слово TRUE (истина). Символьная константа -это любой символ ПК, заключенный в апострофы Строковая константа - любая последовательность символов (кроме символа CR -возврат каретки), заключенная в апострофы
Примеры констант Целые числа записываются со знаком или без него по обычным правилам Если целочисленная константа выходит за указанные границы, компилятор дает сообщение об ошибке. Такие константы должны записываться с десятичной точкой, т. е. определяться как вещественные числа. Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. 3. 14 Е 5 3. 14 умножить на 10 в степени 5; Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (код 36 в ASCII). -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'
Примеры констант Конструкторы Конструктор множества - список элементов множества, обрамленный квадратными множеств скобками, например: [1, 2, 4. . 7, 12] [blue, red] Напомнили
Переменные и типы переменных
• Поскольку любые данные в памяти компьютера хранятся в числовой форме и двоичной системе счисления, кроме имени, переменной обязательно следует присвоить • тип, определяющий диапазон значений, принимаемых переменной, • и способ ее обработки машиной.
Основные типы данных Паскаля Ключевое слово Название и описание типа Паскаля boolean Логический: хранит одну логическую переменную char Символьный: хранит код одного символа из набора ASCII-кодов Объем памяти, Диапазон возможных байт значений true и false 1 1 от 0 до 255 включительно (28=256) 2 2 +215 +216 - диапазон вдвое больше, так как 16 -й бит не занят под знак числа +231 integer word Целочисленный без знака longint Длинное целое: для представления больших 4 целочисленных значений Вещественное число с точностью 6 представления до 11 -12 знака в дробной части Вещественное число с точностью 8 представления до 15 -16 знака в дробной части Последовательность символов типа char 2 -256 (данные длиной от 1 до 255 строки + 1 байт для хранения ее длины) real double string ~ 2. 9*10 -39 - 1. 7*1038 ~ 5*10 -324 - 1. 7*10308 Любые строки текста, состоящие из печатаемых символов
Переменные описываются в программе оператором следующего вида: • • var Список 1: Тип 1; Список 2: Тип 2; . . . Список. N: Тип. N; • Здесь список -- набор имен переменных, разделенных запятыми (или одна переменная), • а тип -- любой из рассмотренных выше типов данных
Например • var t, r: real; • i: integer; • описывает 2 вещественных переменных с именами t и r, • а также целочисленную переменную с именем i. • Ключевое слово var можно продублировать, но обычно такой необходимости нет. Сокращение var образовано от английского "variable" (переменная).
Например, • var t, r: real; • i: integer; • описывает 2 вещественных переменных с именами t и r, а также целочисленную переменную с именем i. Ключевое слово var можно продублировать, но обычно такой необходимости нет. • Сокращение var образовано от английского "variable" (переменная).
Выражения • Основными элементами, из которых конструируется исполняемая часть программы, являются константы, переменные и обращения к функциям. • Каждый из этих элементов характеризуется своим значением и принадлежит к какому-либо типу данных. • С помощью знаков операций и скобок из них можно составлять выражения, которые фактически представляют собой правила получения новых значений.
Примеры выражений • • • Y 21 (а + b) * с sin(t) а > 2 not Flag and (а = b)
Операции • В Турбо Паскале определены следующие операции: • унарные not, @; • мультипликативные *, /, div, mod, and, shl, shr; • аддитивные +, -, or, xor; • отношения =, <>, <, >, <=, >=, in.
Логические операции • В Турбо Паскале определены следующие логические операции: • not - логическое НЕ; • and - логическое И; • or - логическое ИЛИ; • хоr - исключительное ИЛИ. Логические операции применимы к операндам целого и логического типов.
Приоритет операций • Приоритет операций убывает в указанном порядке, т. е. наивысшим приоритетом обладают унарные операции, низшим операции отношения. • Порядок выполнения нескольких операций равного приоритета устанавливается компилятором из условия оптимизации кода программы и не обязательно слева направо. • При исчислении логических выражений операции равного приоритета всегда вычисляются слева направо
Правила использования операций Тип операндов Тип результат Умножение Любой целый Наименьший целый * Умножение Любой вещественный REAL * Пересечение множеств / Деление div Целочисленное деление mod Остаток от деления Операция * Действие Множественный Любой вещественный REAL Любой целый Наименьший целый
Правила использования операций Операция Действие Тип операндов Тип результат and Логическое И Логический and То же Любой целый Наименьший целый shl Левый сдвиг Любой целый То же shr Правый сдвиг Любой целый То же + + Сложение Любой целый То же Любой вещественный REAL
Правила использования операций Операция Действие Тип операндов Тип результат + Объединение множеств Множественный + Сцепление строк Строковый - Вычитание Любой целый Наименьший целый - Вычитание Любой вещественный REAL or Логическое ИЛИ Логический or Логическое ИЛИ Любой целый Наименьший
Правила использования операций Операция Действие Тип операндов Тип результат = Равно Любой простой или строковый Логический <> Не равно Любой простой или строковый Логический < Меньше Логический <= Меньше или равно Логический > Больше Логический >= Больше или равно Логический
Правила использования операций с операндами различного типа Операция not @ Тип Действие операндов результат Отрицание Логический Отрицание Любой целый Тип операнда Адрес Любой Указатель
Логические операции над данными типа INTEGER (поразрядно) Если операнды - целые числа, то результат логической операции есть тоже целое число, биты которого (двоичные разряды) формируются из битов операндов по правилам, указанным ниже в таблице.
Логические операции над данными типа 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
Структура программы • • • Структура программы на языке Паскаль в общем виде: 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 ех frac(x) I, R R Дробная часть х Int(x) I, R R Целая часть х Ln(x) I, R R Натуральный логарифм Модуль аргумента Арктангенс( радианы) Косинус (х в радианах)
Стандартные математические функции Паскаля Обращение Тип аргумента Тип рез-та Функция Random R random (x) I I round (x) R I Псевдослучайное число в интервале [0, 1] Псевдослучайное число в интервале [0, х] Округление до ближайшего целого Sin(x) I, R R Синус (х — в радианах) Sqr (x) I, R R Квадрат х sqrt(x) I, R R Корень квадратный trunc (х) R I Ближайшее целое, не превышающее х по модулю
Возведение положительного числа в вещественную степень • следует производить, используя следующее математическое тождество: • ху • = еу 1 п х • На Паскале это записывается так: • ехр (у*LN(х) )