
Базовые элементы Паскаля.ppt
- Количество слайдов: 50
Базовые элементы языка Pascal
План лекции 1. Алфавит языка, ключевые слова, идентификаторы. 2. Константы и переменные. 3. Выражения, операнды, операции. 4. Структура программной единицы, правила пунктуации, составной оператор.
Алфавит языка, ключевые слова, идентификаторы Алфавит языка состоит из букв, цифр, шестнадцатеричных цифр, специальных символов и пробелов. В качестве букв используются прописные и строчные буквы латинского алфавита и знак подчеркивания. В качестве цифр: арабские цифры от 0 до 9. Шестнадцатеричные цифры имеют значение от 0 до 15. Первые 10 обозначаются арабскими цифрами от 0 до 9, Остальные шесть – латинскими буквами А…F или a…f
Алфавит языка, ключевые слова, идентификаторы Специальные символы: +, -, *, /, =, <, >, [, ], (, ), @, {, }, : , ; , ` , #, $, ^ , пробел, точка и запятая. Составные символы: : = (присваивание), <> (не равно), . . (диапазон значений), <= (меньше или равно), >= (больше или равно), (* *) — альтернатива { }, (. . ) — альтернатива [ ].
Алфавит языка, ключевые слова, идентификаторы Неделимые последовательности знаков алфавита образуют слова. Слова подразделяются на зарезервированные, стандартные идентификаторы и идентификаторы пользователя. Зарезервированные слова являются составной частью языка и их нельзя использовать в качестве идентификаторов. (HELP/ RESERVED WORDS) – справка о зарезервированных словах. В языке Паскаль зарезервированными являются следующие слова: and, array, begin, case, const, div, downto, else, end, file, forward, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor…
Идентификаторы n n Стандартные идентификаторы служат для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций. Идентификаторы пользователя используются для обозначения меток, констант, типов, переменных, процедур и функций, определенных самим программистом.
Правила написания идентификаторов n n Идентификатор начинается буквой или символом подчеркивания (исключение составляют метки, которые могут начинаться и с цифры, и с буквы). Идентификатор может состоять из букв, цифр и знака подчеркивания (пробелы, точки и другие специальные символы недопустимы). При написании идентификаторов можно использовать как прописные, так и строчные буквы, однако Паскаль не различает прописные и строчные буквы, поэтому записи Writeln, WRITELN, Write. Ln эквивалентны. Между двумя идентификаторами должен быть по крайней мере один пробел. Максимальная длина идентификатора — 127 символов, но значимы только первые 63 символа.
Правила написания идентификаторов n n n Зарезервированные слова не допускаются в качестве идентификаторов. Идентификаторы нужно делать “осмысленными”. Для создания идентификаторов, состоящих из двух слов, можно воспользоваться большими буквами (например, Read. Text) или символом подчеркивания (Read_Text) (это гораздо лучше чем RT). Все структуры языка имеют англоязычные идентификаторы. Можно использовать русские идентификаторы (записанные английскими литерами, например Privetstvie), но для удобства нужно выполнять не транслитерацию русских слов в английские, а перевод их на английский язык.
ДАННЫЕ Все данные, в зависимости от способа их хранения и обработки можно разделить на две группы константы и переменные. Константами называются элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. Константы задаются идентификаторами пользователя. Тип констант автоматически распознается компилятором без предварительного описания. Формат описания констант: Const <идентификатор>=<значение>;
Константы n n n n В качестве констант могут использоваться: целые числа, вещественные числа, шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств.
Константы Целые числа -2147483648 …. . + 2147483647 Вещественные числа 3. 14 Е 5 - 3. 14 105 -17 е-2 - -17 10 -2 Шестнадцатеричные числа $ - код 36 в ASCII - American Standart Code for Information Interchnge – американский стандартный код для обмена информации. $ 00000 до $ FFFF
Константы Логические константы: FALSE (ложь) TRUE (истина) Символы: любой символ персонального компьютера, заключенный в апострофы ‘z’ ‘Ф’ ‘’’’ - апостроф # 97 - a; #90 - z Cтроки символов: определяются последовательностью произвольных символов, заключенных в апострофы, кроме ‘CR’ #13 - CR
Константы Типизированные константы: переменные с начальным значением. Каждой типизированной константе ставится в соответствие имя, тип и начальное значение. Формат типизированных констант: Const <идентификатор>: <тип> = <значение>;
Константы Типизированные константы: const Minimum: integer = 0; Maximum: integer = 9999; Factorial: array[1. . 6] of integer = (1, 2, 6, 4, 12, 40);
Константы Const a = 2; b = 2. 35; St = ’g’; R = ’ПРИВЕТ !’; Year: integer = 1999; {целая} {вещественная} {символьная} {строковая} {типизированная}
Переменные n n В отличие от констант могут менять свои значения в процессе выполнения программы. Тип переменной должен быть описан перед тем, как с переменными будут выполняться какие-либо действия. Формат описания переменных: Var <идентификатор> : <тип>;
Переменные Var x: real; i, j, k: integer; Done, Error: Boolean; Vector: array[1. . 10] of real; Name: string[15];
Структура типов данных Типы Порядковые Целые Вещественные Логические Структурированные Массивы Символьные Указатели Записи Строки Множества Простые Процедурные Объекты Файлы Перечисляемые Тип-диапозон
Порядковые типы n n n Целые Логические Символьные Перечисляемые Тип-диапазон
Стандартные функции Ord(x) – возвращает порядковый номер значения выражения x; Ord(x) = x (целый тип); Ord(x) = 0 или 1 (логический тип); Ord(x) = 0 до 255 (символьный тип); Ord(x) = 0 до 65535 (перечисляемый тип);
Стандартные функции Pred(x) – возвращает предыдущее значение порядкового типа; Ord(Pred(x)) = Ord(x) -1 Succ(x) – возвращает следующее значение порядкового типа; Ord(Succ(x)) = Ord(x) +1
Целые типы Тип Название Длинна, байт Диапазон значений Byte Длиной в байт 1 0. . 255 Short. Int Короткое целое Длиной в слово 1 -128. . 127 2 0. . 65535 Integer Целое 2 -32768. . 32767 Long. Int Длинное целое 4 -2147483648. . 2147483647 Word
Порядковые типы Логический тип – Boolean; Значениями логического типа может быть одна из констант False или True. Ord(false) =0; Ord(true) =1; false < true; Succ(false)= true; Pred(true) =false.
Порядковые типы Символьный тип – Char; Значениями символьного типа является множество всех символов ПК. Chr(b) – тип Char, преобразовывает выражение b типа Byte в символ и возвращает его своим значением. Up. Case(ch) – тип Char, возвращает прописную букву, если ch – строчная латинская буква, в противном случае возвращает сам символ.
Порядковые типы Перечисляемый тип задается перечислением тех значений, которые он может получить. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками.
Перечисляемый тип Формат перечисляемого типа: Type <имя типа> = <тип значений>; Var <идентификатор>: <имя типа>; Пример: Type Colors=(black, red, white); Var Col: colors;
Перечисляемый тип Переменные перечисляемого типа можно объявлять без предварительного описания типа: Var Col: (black, white, green);
Порядковые типы Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме тип-диапазона. Тип-диапазон задается границами своих значений внутри базового типа: Формат: <минимальное значение>. . <максимальное значение>
Тип-диапазон Type Digit=’ 0’. . ’ 9’; Dig 2=48. . 57; Var D 1: Digit; D 2: Dig 2;
Тип-диапазон можно непосредственно указывать при объявлении переменной. Пример: Var Date: 1. . 31; Month: 1. . 12;
Тип-диапазон Low(x) – возвращает минимальное значение типа диапазона, к которому принадлежит x; High(x) – возвращает максимальное значение типа диапазона, к которому принадлежит x; k : integer, Low(k) = -32768; High(k) = 32767;
Вещественные типы Тип Название Длина, байт Кол-во цифр мантисы Диапазон десятичного порядка Real Вещественный 6 11. . 12 -39. . 38 Single С одинарной точностью 4 7. . 8 -45. . 38 Double С двойной точностью 8 15. . 16 -324. . 308 Extended С повышенной точностью 10 19. . 20 -4932. . 4932 Comp Сложный 8 10. . 20 -2*1063+1. . 2*1063 -1
Cтроковые переменные Строка — это последовательность символов. При использовании в выражениях строка обязательно заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.
Формат: 1 -ый способ: Туре <имя типа> = string [максимальная длина строки]; Var <идентификатор> : <имя типа>; 2 -ой способ: Var <идентификатор> : string [максимальная длина строки];
Пример: Type Stroka : string [50]; Var St : Stroka; St 1: string; St 2 : string [25]; Сonst St : string = ’Сегодня хорошая погода !’;
Функции преобразования типов: n n Round (x) – возвращает значение X, округленное до ближайшего целого числа, результат имеет целочисленный тип. Trunc (x) – возвращает ближайшее целое число меньшее или равное X, если X>=0, большее или равное X, если X<0. Результат имеет целочисленный тип. Пример: Round (3. 7); результат 4 Round (-46. 317) результат -46 Trunc (3. 7); результат 3
Совместимость типов Два типа считаются совместимыми, если: n оба есть один и тот же тип; n оба вещественные; n оба целые; n один тип есть тип-диапазон второго типа; n оба являются типами-диапазонами одного и того же базового типа.
Операции целочисленной арифметики Целочисленное деление (Div) – возвращает целую часть частного, дробная часть отбрасывается. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя. Деление по модулю (Mod) – возвращает остаток, полученный в результате целочисленного деления. Пример: 11 div 5 = 2; 2 div 3 = 0 11 mod 5 = 1; 14 mod 5 = 4
Операции отношения: n n n n = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), in (проверка принадлежности множеству).
Логические операции n n Not - Логическое отрицание (не) And - Логическое умножение (и) Or - Логическое сложение (или) Xor- Исключающее или
Логические операции Операция Пример Значение A Значение B Результат Not A True False And A and B True False True False Or A or B True False True False Xor A xor B True False False True
Операции Приоритет Операции 1 not, @ 2 *, /, div, mod, and, shl, shr 3 +, -, or, xor 4 =, <> , >, >=, <, <=, in
Операции n n @ (получение адреса) shl (сдвиг влево) shr (сдвиг вправо) in (принадлежность ко множеству) Пример: a=b and c<d вызовет сообщение об ошибке, т. к. логические имеют более высокий приоритет (a=b) and (c<d).
Выражения — алгоритмические конструкции, задающие правила вычисления значений. Выражения состоят из операндов и знаков операций.
CТРУКТУРА ПРОГРАММЫ <Объявление программной единицы>; {РАЗДЕЛ ОПИСАНИЙ} Uses {подключаемые модули} Label {объявление глобальных меток} Const {объявления констант} Type {объявления типов} Var {объявления переменных} Procedure {описание процедур } Function {описание функций } {РАЗДЕЛ ИСПОЛНЯЕМЫХ ОПЕРАТОРОВ} Begin {операторы} End<символ конца программной единицы>
Cтруктура программной единицы <Объявление программной единицы> Program – для программы; Procedure – для процедуры; Function – для функции. <Символ конца программной единицы>. – для программы; ; – для процедуры и для функции.
Cтруктура программной единицы Любой из разделов, кроме раздела операторов может отсутствовать. В любом месте программы могут содержаться комментарии. Комментарий - это пояснительный текст, который можно записать в любом месте программы, где разрешен пробел. Текст комментария ограничен символами { } или (* *) и может содержать любые комбинации латинских и русских букв, цифр и других символов алфавита языка Паскаль.
Комментарии В ограничителях (* *) пробелы между скобкой и звездочкой запрещены. В тексте не должны находиться знаки ограничителей, с которых комментарий начинается. Например, текст комментария { пример {1} задания {4} } вызовет ошибку при компиляции. Однако ограничители { } можно вложить в (* *) и наоборот: (* пример { 1 } задания { 4 } *) { пример (* 1 *) задания (* 4 *) } Ограничений на длину комментария нет. Комментарий игнорируется компилятором и поэтому никакого влияния на программу не оказывает.
Комментарии По месту положения в программе комментарии можно подразделить на четыре класса: n n объясняющие назначение программы, поясняющие смысл идентификаторов переменных и констант, описывающие логически обособленные части программы, объясняющие труднопонимаемые элементы алгоритма.
Базовые элементы Паскаля.ppt