1 1. Алфавит языка ПАСКАЛЬ. Латинские от A до Z Строчные Буквы Алфавит Русские Прописные Цифры арабские 0,1,2,…9 шестнадцатеричные 0,1,…,9,A,B,C,D,F Спец. Символы и пары символов 1.Знаки операций: + <>( ) [ ] {} (* *) пары не разделяются пробелами 2.Ограничители: . 3. Знак подчеркивания _ (относится к буквам) и пробел 4. Служебные (зарезервированные) слова : And Array As Asm Begin Case Class Const Constructor Destructor Dispinterface Div Do Downto Else End Except Exports File Finalization Finally For Function Goto If Implementation In Inherited Initialization Inline Interface Is Label Library Mod Nil Not Object Of Or Out Packed Procedure Program Property Raise Record Repeat Resourcestring Set Shl Shr String Then Threadvar To Try Type Unit Until Uses Var While With Xor Зарезервированные слова нельзя использовать в качестве идентификаторов. Идентификатор – это имя, присваиваемое переменной, константе, типу, процедуре, функции и т.п., начинающееся с буквы, за которой могут следовать буквы и цифры. Длина идентификатора произвольная, но значащими являются только первые 63 символа. Пробелы и спецсимволы не могут входить в идентификатор. 2 СТАНДАРТНЫЕ ТИПЫ ДАННЫХ ПРОСТЫЕ Т И П Ы Д А Н Н Ы Х СТРУКТУРИРОВАННЫЕ о п е рО аТ В т Е оТ р: ы S ВЕЩЕСТВЕННЫЕ ПОРЯДКОВЫЕ ЦЕЛЫЕ ЛОГИЧЕСКИЕ СИМВОЛЬНЫЕ ПЕРЕЧИСЛЯЕМЫЕ ТИП-ДИАПАЗОН МАССИВЫ ЗАПИСИ МНОЖЕСТВА ФАЙЛЫ П Рф О С СТРОКОВЫЕ Т Ы УКАЗАТЕЛИ Е – ПРОЦЕДУРНЫЕ не со де р ОБЪЕКТЫ ж ЦЕЛЫЕ ТИПЫ ат в Длина, Диапазон значений Примечание св байт ое 1 0…255 м 1 -128…+127 со 2 -32 768…+32 767 Отсутствует в Дельфи 1.0. ст 2 0…65 535 ав Integer 4 -2 147 483 648…+2 147 483 647 В Дельфи 1.1.занимает 2 байта е др LongInt 4 -2 147 483 648…+2 147 483 647 уг Cardinal 4 0…+2 147 483 647 Отсутствует в Дельфи 1.0. их оп СТАНДАРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ, ПРИМЕНИМЫЕ К ЦЕЛЫМ ТИПАМ ер Обращение Тип результата Действие ат Abs(x) x Возвращает модуль Х ор ов Chr(b) Char Возвращает символ по его коду С Л О Ж Н Ы Е – вк лю ча ют др уг Название ие Byte оп ер ShortInt ат SmallInt ор Wordы Dec(vx,[,I]) Inc(vx[,I]) Exp (x) Ln (x) Sin(x),cos(x) Div, Mod Odd(l) Ord (x) PRED SUCC Random(w) вещественное вещественное вещественное целые Boolean x Целое целое Как у параметра Sqr(x) Sqrt (x) X вещественное Уменьшает значение VX на I, а при отсутствии I – на 1 Увеличивает значение VX на I, а при отсутствии I – на 1 Возвращает значение ex Натуральный логарифм Тригонометрические функции Возвращают частное и остаток от деления целых чисел Возвращает True, если аргумент – нечетное число Возвращает порядковый номер аргумента Возвращает предыдущее значение аргумента Возвращает следующее значение аргумента Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0…(w-l) Возвращает квадрат аргумента Корень квадратный из числа 3 ВЕЩЕСТВЕННЫЕ ТИПЫ Название Real Single Double Extended Comp currency Длина, байт Random(x) 11…12 7…8 15…16 19…20 19…20 19…20 6 4 8 10 8 8 Обращение Abs(x) Sin(x); Cos(x); arctan(x) Exp(x) ; ln(x) Sqr(x) Sqrt(x) Frac(x) Int(x) pi random Количество значащих цифр Диапазон значений 2,9*10-39 … 1,7*1038 1,5*10-45 … 3,4*1038 5,0*10-324 … 1,7*10308 3,4*10-4951 … 1,1*104932 -263 … +263-1 ±922 337 203 685 477,5807 СТАНДАРТНЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ Тип параметра Тип результата Примечание Real,integer Тип аргумента Модуль аргумента real real Синус, косинус, арктангенс (угол в радианах) real real Экспонента, логарифм натуральный real real Квадрат аргумента real real Корень квадратный real real Дробная часть числа real real Целая часть числа real Число π = 3,141592653… Псевдослучайное число, равномерно real integer integer распределенное в диапазоне 0…1 Псевдослучайное число, равномерно распределенное в диапазоне 0…(х-1) Функции округления вещественных чисел: ROUND(Х) – до ближайшего целого; TRUNC(Х) – отбрасывание дробной части Возведение вещ. числа в любую степень (должен быть подключен модуль MATH) Intpower ( X, A ) – возвести число Х в целую степень А ( ХА ) Power ( X, E ) - возвести число Х в произвольную степень Е ( ХЕ ) ЛОГИЧЕСКИЙ ТИП – дей ствия над логическими переменными А true true false false В true false true false NOT A false false true true A AND B true false false false A OR B true true true false СИМВОЛЬНЫЙ ТИП - это множество всех символов ПК. Каждому символу приписывается целое число в диапазоне от 0 до 255 (это число возвращает функция ORD). Преобразование символа в число и обратно происходит автоматически в соответствии с таблицей кодировки ANSI (создан Американским институтом стандартизации - American National Standard Institute). Символы с кодами 0 = 127 содержат цифры, латинские буквы, знаки препинания, команды ряда клавиш и т.п. Символы с кодами 128 – 255 меняется для различных шрифтов, например, коды русского алфавита от А до Я (192223), от а до я (224-255), буква ё (184) и Ё (168). Например, символ «=» в памяти компьютера представляется числом 61 (1 байт) Символ заключается в апострофы, значением может быть только один символ, например: S=’A’; S=’1’. Описание символьных переменных выполняется в разделе переменных, например: VAR I : CHAR; Пример использования в программе: a:= ‘$’; d:=’w’; Символьные переменные могут использоваться, как переменные цикла в операторах FOR, например: For I := ‘Z’ Downto ‘A’ Do или For I := ‘A’ To ‘Z’ Do Для символьных переменных определены следующие операции и функции: 1) так как все символы пронумерованы, то к ним применимы все операции отношения: = <> > >= < <= (А=А А<В) 4 2) стандартные функции: UPCASE (‘h’) ORD (‘X’) CHR(71) PRED ('X') SUCC ('X') UpCase(Ch:Char):Char - Функция типа Char, возвращает прописную (заглавную) букву, если CH – строчная латинская буква, в противном случае – возвращает сам символ (UpCase (‘h’)=’H’ ) Определяет порядковый номер символа (ORD (‘X’) =88), от 0 до 255 Определяет символ по его номеру (CHR(71) =‘G’) Определяет предшествующий символ (не имеет смысла для первого) PRED ('X')=’W’ Определяет последующий символ (не имеет смысла для последнего) SUCC ('X')=’Y’ Примеры а) Если VAR V, U : CHAR; то возможны операции v :='a'; б) VAR C1, C2 : CHAR; BEGIN C1:=UPCASE (‘S’); C2:=UPCASE(‘ф’); WRITELN (C1, ‘ ‘,C2) END. Для переменной Х справедлива запись а также u :='*'; ORD (PRED (X)) = ORD (X)-1, ORD (SUCC (X)) = ORD (X)+1 СТРОКОВЫЙ ТИП ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ СО СТРОКАМИ В ДЕЛЬФИ ОБРАЩЕНИЕ Copy(St;Index;Count) Delete(St;Index;Count) Length(St) Pos(SubSt;, St) UpperCase(S) НАЗНАЧЕНИЕ Копирует Count символов из строки St, начиная с символа с номером Index Удаляет Count символов из строки St, начиная с символа с номером Index Возвращает текущую длину строки St Отыскивает в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль Возвращает исходную строку S, в которой все строчные латинские буквы заменены на заглавные (AnsiUpperCase – для русских букв) ПОДПРОГРАММЫ ПРЕОБРАЗОВАНИЯ СТРОК В ДРУГИЕ ТИПЫ И ОБРАТНОГО ПРЕОБРАЗОВАНИЯ StrToFloat(St) StrToInt(St) Val(St;X;Code) Преобразует символы строки St в вещественное число. Строка не должна содержать ведущих или ведомых пробелов Преобразует символы строки St в целоечисло. Строка не должна содержать ведущих или ведомых пробелов Преобразует символы строки St во внутреннее представление целой или вещественной переменной Х, которое определяется типом этой переменной. Параметр Code содержит ноль, если преобразование прошло успешно, и тогда в Х помещается результат преобразования, в противном случае он содержит номер позиции в строке St, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется. В строке St могут быть ведущие и/или ведомые пробелы 5 Возвращает строку-аргумент St без обрамляющих ее пробелов(ведущих и ведомых) Преобразует вещественное значение Х в строку символов Преобразует целое значение Х в строку символов Trim(St) FloatToStr(x) IntToStr(x) ФУНКЦИИ ДЛЯ РАБОТЫ С ДАТАМИ И ВРЕМЕНЕМ Возвращает текущую дату Преобразует дату в строку символов Преобразует дату и время в строку символов Возвращает текущее время Преобразует время в строку символов Date DateToStr(D) DateTimeToStr(D) Time TimeToStr(T) Присваивания Перехода Пустой Процедуры Составной Условный Цикла Варианта Присоединения О П Е Р А Т О Р Ы НАЗВАНИЕ Присваивания Составной оператор (операторные скобки) Условный оператор Неполный условный оператор Оператор цикла (шаг=1). Число повторений известно ФОРМА ЗАПИСИ <имя переменной>:=<выре>; BEGIN Оп.1; Оп.2; Оп.3 END; IF <условие> THEN <оп.1> ELSE <оп.2>; IF <условие> THEN <оп.1>; FOR <параметр цикла>:=<нач.знач.> TO <конеч.знач.> DO <оп.1>; ПРИМЕР A:=25; C:=A; После do, then, else, если надо выполнить больше 1 оп-ра If x>10 then a:=5 else a:=10; If r<=25 then s:=0; For i:=1 to 5 do a[i]:=b[i]; Оператор цикла (шаг= -1). Число повторений известно FOR <параметр цикла>:=<нач.знач.> DOWNTO <конеч.знач.> DO <оп.1>; For i:=5 to 1 do a[i]:=b[i]; Оператор цикла с предусловием Число повторений неизвестно WHILE <условие> DO <оп-р>; x:=1; While x<=8 do begin b[i]:=a[i]; x:=x+2 end; Оператор цикла с постусловием Число повторений неизвестно. Нач. значение параметра цикла можно вычислять в теле цикла REPEAT <тело цикла> UNTIL <условие>; Выход из цикла по TRUE GOTO <метка> ; i:=1; Repeat S:=s+a[i]; i:=i+5; e:=a[i]/100 until e>1.5 Оператор перехода и метки Label 10; …goto 10; … 10: <оп.1> 6 Оператор выбора CASE <ключ выбора> OF <список выбора> [ ELSE <оп-ры>] END; Оператор присоединения О п и с а н и е м а с с и в о в Раздел описательной части TYPE VAR VAR TYPE VAR VAR VAR Тип данных WITH<переменная>DO<оператор> A:= 2; Case A of 1: i:=1; 2: i:=5; end; Работа с записями Описание массива Type mass = array [1..9] of real; В этом случае надо описать переменную A в разделе VAR Var A : mass; Var B : array [1..9] of real; Type matr = array[1..3,1..4] of integer; Var C : matr; Var C : array[1..3,1..4] of integer; Var Z : array [1..7] of Char; Допустимые операции Одномерный массив из 9 элементов – действительных чисел То же в разделе VAR Матрица С размерностью 3х4 целых чисел То же в разделе VAR Массив символов из 7 элементов Стандартные функции Символьный CHAR 1) так как все символы пронумерованы, UPCASE (‘h’), ORD (‘H’), CHR(71), то к ним применимы все операции PRED ('H'), SUCC ('H') отношения: = <> > >= < <= результат логический тип True или False. Строковый STRING Операция сцепления: обозначение + . Операции отношения: = <> > >= < <= результат логический тип True или False. LENGTH (St : String) , POS (SubSt, St : String), UpperCase(const S: string):String; Copy(St : String ; Index ,Count : Integer ), AnsiUpperCase ( ) - для русского текста Числа целые Byte (1 байт), Short (1 байт), Word (2 байт), Integer (2 байт), Longint (4 байта) 1. Арифметические операции : Ц+Ц=Ц, Ц-Ц=Ц, Ц*Ц=Ц, Ц/Ц= ВЕЩЕСТВЕННОЕ, результат SQRT ( Ц ) - вещественный. 2. Функции преобразования вещественных чисел дают целочисленный результат: ROUND ( ВЕЩ. ), TRUNC( ВЕЩ. ). 3. Операции отношения: = <> > >= < <= дают результат логического типа True или False. тригонометрические и математические функции, ABS (X), CHR (Х), ODD (Х), Random (n), SQR (X), SQRT (X), ORD (X), PRED (Х), SUCC (Х), LN (X), DIV, MOD Числа вещественные Real (6 байт), Double(8 байт), Extended (10 байт) 1. Все арифметические операции + - * / тригонометрические и математические 2. Операции отношения: = <> > >= < функции, <= дают результат логического типа ABS (X), Random (n), True или False. SQR (X), SQRT (X), LN (X) 3. Функции преобразования Frac(x) - дробная часть числа, вещественных чисел ROUND ( ВЕЩ. ), Int(x) - целая часть числа, TRUNC( ВЕЩ. ) в целое число. Pi - число π = 3,141592653…