pascal. базовые элементы языка

advertisement
1
PASCAL
БАЗОВЫЕ ЭЛЕМЕНТЫ ЯЗЫКА
АЛФАВИТ ЯЗЫКА
Алфавит языка PASCAL состоит из букв, цифр и специальных символов.
В качестве букв используются прописные и строчные буквы латинского алфавита и
знак подчеркивания:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a b c d e f g h i j k l m n o p q r s t u v w x y z _
В качестве цифр: 0 1 2 3 4 5 6 7 8 9.
Специальные символы:
+ – * / = < > [ ] { } ( ) . , ; : ‘ # $ ^
Комбинации специальных символов образуют составные символы:
: = присваивание
< = меньше или равно
< > не равно
> = больше или равно
. . диапазон значений
(. .) альтернатива квадратных скобок
(* *) альтернатива квадратных скобок
Последовательности знаков алфавита образуют слова.
Зарезервированные слова являются составной частью языка и имеют определенный смысл.
Идентификаторы пользователя применяются для обозначения меток, констант,
переменных, процедур и функций, определенных программистом.
Общие правила написания идентификаторов:
- идентификатор начинается только с буквы или знака подчеркивания ( за исключением
меток, которые могут начинаться и с цифры);
- идентификатор может состоять из букв, цифр и знака подчеркивания (пробелы, точки
и другие специальные символы не допускаются);
- между двумя идентификаторами должен быть по крайней мере один пробел;
- максимальная длина идентификатора 127 символов, все они значимы;
- можно использовать как прописные буквы, так и строчные ( компилятор не делает
различий между ними).
П р и м е р ы идентификаторов:
Pole1
8class
blok_3
Nomer.Kab
Nomer_Kab
- верный
- ошибочный
- верный
- ошибочный
- верный
2
PASCAL
КОНСТАНТЫ И ПЕРЕМЕННЫЕ
При решении любой задачи требуются данные, над которыми выполняются
определенные действия для получения конечного результата. В программе каждый элемент
данных является либо константой, либо переменной. Константы
и
переменные
определяются идентификаторами (именами), по которым к ним можно обращаться для
получения текущих значений.
Константами называются элементы данных, значения которых известны заранее и в
процессе выполнения программы не изменяются. Для определения констант служит
зарезервированное слово Const.
Формат:
Const
< идентификатор > = < значение константы >;
П р и м е р:
Const Nom = 200;
Argum = 65.4;
Pole = ‘ Программа ‘;
Зарезервированные константы языка PASCAL:
Pi
число “ ПИ “ (3.1415926536)
True
“ Истина“
False
“ Ложь“
Переменные в отличие от констант могут менять свои значения в процессе
выполнения программы. Тип переменных должен быть описан перед тем, как с ними будут
выполняться какие-либо действия. Для описания переменных предназначено
зарезервированное слово Var .
Формат:
Var
< идентификатор, … > : < тип >;
П р и м е р:
Var
Nom
: integer ;
Nom1, Nom2 : integer ;
Argum : real ;
Pole
: char ;
{ целый тип данных }
{ вещественный тип данных }
{ литерный (символьный) тип данных }
В языке PASCAL допускается использование чисел, представленных в десятичной или
шестнадцатеричной системе. Если число представлено в шестнадцатеричной системе, перед
ним без пробела записывается знак $.
В десятичной системе числа могут записываться с фиксированной и с плавающей
точкой.
П р и м е р ы записи чисел:
324
- целое десятичное число;
$12А
- шестнадцатеричное число;
256.78
- вещественное число;
- 52.8
- отрицательное вещественное число;
5.34Е+2
- вещественное десятичное число в форме с плавающей точкой, где «Е»
означает «десять в степени» (экспоненциальный вид), равное 534;
20Е-03
- 0.02
5.23Е 00
- 5.23
3
PASCAL
ТИПЫ ДАННЫХ
ТИП – это множество значений, которые могут принимать константы, переменные,
функции, выражения, и совокупность операций, допустимых над этими значениями.
Все допустимые в языке PASCAL типы данных подразделяются на две большие
группы: скалярные (простые) и структурированные.
Типы данных
Скалярные
Стандартные
Структурированные
Описанные
пользователем
Массив
Строка
Целочисленный
( integer )
Байтовый
( byte )
Перечисляемый тип
Множество
Запись
Интервальный
тип
Вещественный
( real )
Литерный
( char )
Указатель
Файл
Булевский
( boolean )
Скалярные типы данных.
Байтовый тип аналогичен целочисленному, но в памяти занимает не 2 байта, а 1 байт
и охватывает диапазон значений от 0 до 255.
Данные типа integer, byte, real можно смешивать в арифметических и логических
операциях.
Переменные литерного типа в памяти занимает 1 байт. Значения переменных и
констант типа char должны быть заключены в апострофы: ‘A‘. В арифметических
операциях данные типа char не используются. К ним могут применяться операции сравнения
(сравниваются коды символов из кодовой таблицы ASCII ). Для работы с данными
литерного типа используются стандартные функции Chr, Ord, Pred, Succ.
Последовательность символов, заключенных в апострофы, называется строкой.
Переменные булевского типа в памяти занимает 1 байт. Значения переменных и
констант типа boolean могут принимать только одно из двух значений True (истина) и False
(ложь). Применяются для управления порядком выполнения операторов в программе.
4
PASCAL
Примеры
описания переменных различных типов:
Var
Nomer : integer ;
N1, N2 : boolean ;
Summa, Sum : real ;
Pole : char ;
{ целый тип данных }
{ булевский тип данных }
{ вещественный тип данных }
{ литерный (символьный) тип данных }
Перечисляемый тип задается непосредственно перечислением всех значений, которые
может принимать переменная данного типа. Отдельные значения указываются через
запятую, а весь список заключается в круглые скобки.
Формат:
Type
< имя типа > = (значение1, значение2, . . . , значениеn) ;
Var
< идентификатор, . . . > : < имя типа > ;
П р и м е р:
Type
Metall = (Fe, Na, Cu, Zn) ;
Var
Met1, Met2 : Metall ;
Переменные Met1 и Met2 имеют тип Metall и могут принимать одно из перечисленных
значений.
Выражения и константы перечисляемого типа допустимы для использования в
операторе Case.
Интервальный тип позволяет задавать две константы, определяющие границы
диапазона значений для данной переменной. Обе константы должны принадлежать одному
из стандартных типов, кроме типа Real. Значение первой константы должно быть
обязательно меньше значения второй.
Формат:
Type
< имя типа > = < константа1 > . . < константа2 > ;
Var
< идентификатор, . . . > : < имя типа > ;
П р и м е р:
Type
Dni = 1 . . 31 ;
Var
Rabdni, Vdni : Dni ;
В этом примере переменные Rabdni и Vdni имеют тип Dni и могут принимать любые
значения из диапазона 1 . . 31.
5
PASCAL
Основные арифметические операции.
Операция
Выражение
Тип операнда
Тип
результата
Название
+
–
*
/
div
A+B
A–B
A*B
real, integer
real, integer
real, integer
real, integer
real, integer
real, integer
Сложение
A/B
A div B
real, integer
integer
real, integer
integer
mod
and
or
A mod B
A and B
A or B
integer
integer
integer
integer
integer
integer
–
-A
real, integer
real, integer
Вычитание
Умножение
Деление
Целочисленное
деление
Получение остатка
Арифметическое «И»
Арифметическое
«ИЛИ»
Изменение знака
Арифметическое
«И» (and) производит логическое умножение операндов в
соответствии с таблицей истинности:
1 and 1 = 1
1 and 0 = 0
0 and 1 = 0
0 and 0 = 0
Арифметическое
«ИЛИ» (or) производит логическое сложение операндов в
соответствии с таблицей истинности:
1 or 1 = 1
1 or 0 = 1
0 or 1 = 1
0 or 0 = 0
Операции отношения.
Операции отношения выполняют сравнение двух операндов и определяют, истинно
значение выражения или ложно.
Операция
=
Выражение
A=B
<>
A<>B
>
A>B
<
A<B
>=
A>=B
<=
A<=B
Результат
True,
если А равно В
True,
если А не равно В
True,
если А больше В
True,
если А меньше В
True,
если А больше или равно В
True,
если А меньше или равно В
Название
Равно
Не равно
Больше
Меньше
Больше или
равно
Меньше или
равно
Результат всегда имеет булевский тип и принимает одно из двух значений: True
(истина) или False (ложь).
6
PASCAL
Основные логические операции.
Операция
Выражение
Значение
А
not
not A
and
A and B
or
A or B
xor
A xor B
True
False
True
True
False
False
True
True
False
False
True
True
False
False
Значение
В
True
False
True
False
True
False
True
False
True
False
True
False
Результат
Название
False
True
True
False
False
False
True
True
True
False
False
True
True
False
Логическое
отрицание
Логическое
«И»
Логическое
«ИЛИ»
Исключающее
«ИЛИ»
Пример логического выражения: ( A< 10 ) and ( B < 100 )
Логические операции позволяют строить сложные условия в ряде операторов языка
PASCAL.
СТРУКТУРА ПРОГРАММЫ
Текст программы начинается с заголовка, который состоит из зарезервированного
слова Program, имени программы и параметров, с помощью которых программа
взаимодействует с операционной системой.
Заголовок несет чисто смысловую нагрузку и может отсутствовать.
Параметрами программы обычно являются стандартные идентификаторы стандартных
файлов ввода-вывода Input и Output, но их можно не записывать, т.к. они всегда
подразумеваются системой.
Н а п р и м е р, заголовки программ
Program Start (Input, Output);
и
Program Start;
эквивалентны.
После заголовка следует программный блок, состоящий в общем случае из 6
разделов:
- описания меток;
- описания констант;
- определения типов данных;
- описания переменных;
- описания процедур и функций;
- операторов.
Любой раздел, кроме раздела операторов, может отсутствовать.
Общая схема программы на PASCALе:
Program S;
< разделы описаний > ;
Begin
< раздел операторов > ;
End .
7
PASCAL
Раздел описания меток
Перед любым оператором можно поставить метку, что позволяет выполнить прямой
переход на этот оператор с помощью оператора goto из любого места программы.
Формат:
Label < имя , . . . > ;
П р и м е р:
Label
M1, M2;
{ описание меток }
Begin
...
M1: < оператор>;
...
М2: < оператор>;
...
End.
Описание констант, типов данных и переменных рассмотрено выше.
Описание процедур и функций будет рассмотрено дальше.
Раздел операторов
Begin (начало), далее следуют
запятой, и наконец слово End (
Раздел операторов начинается с зарезервированного слова
операторы языка отделенные друг от друга точкой с
конец) и точка:
Begin
< оператор ;>
...
< оператор >
End .
Комментарии
Комментарий – это пояснительный текст, который можно записать в любом месте
программы. Текст комментария ограничен символами { } или (* *) и может содержать
любые символов алфавита языка PASCAL, кроме символов ограничителей. В ограничителях
(* *) пробелы между скобкой и звездочкой запрещены.
Ограничений на длину комментария нет. Комментарий игнорируется компилятором и
поэтому никакого влияния на ход выполнения программы не оказывает.
П р и м е р:
Program Demo;
{ ***********************************************}
{*
Программа вычисления площади круга
*}
{*
Pi - стандартная константа
*}
{***********************************************}
Var
R : integer ;
(* R – радиус *)
Pl : real ;
(* Pl – площадь *)
Begin
R := 8 ;
Pl := Pi * R * R
(* Вычисление площади круга *)
End .
Download