abs
and
array
begin
case
const
div
do
downto
else
end
file
for
function
goto
if
label
mod
not
абсолютный
логическое И
массив
начало блока
вариант
константа
деление нацело
выполнять
уменьшить до
иначе
конец блока
файл
для
функция
переход на
если
метка
остаток от деления
логическое НЕ
or
of
object
procedure
program
record
repeat
set
string
then
to
type
until
uses
var
while
with
xor
логическое ИЛИ
из
объект
процедура
программа
запись
повторять
множество
строка
то
увеличивая
тип
до
использовать
переменная
пока
с
исключающее ИЛИ
Идентификаторы (имена) служат для обозначения переменных и постоянных величин, различных процедур, функций, объектов.
Стандартные идентификаторы (см. таблицу 2.2)служат для обозначения заранее определенных разработчиками языка типов данных, констант, процедур, функций. Например, стандартным именем ABS(х) называют функцию, вычисляющую модуль заданного числа.
Стандартные идентификаторы можно переопределить. Пользователь может написать свою собственную функцию с именем sin, но обычно это приводит к ошибкам. Поэтому на практике стандартные идентификаторы лучше использовать без каких-либо изменений.
Стандартныеидентификаторы
Таблица 2.2
arctan
assign
boolean
byte
char
close
clrscr
cos
delay
eof
exit
exp
false
frac
halt
input
integer
keypressed
maxint
odd
output
pi
pred
random
randomize
read
readln
real
rename
rewrite
round
sqr
sqrt
succ
text
true
trunk
write
writeln
Идентификаторы пользователя служат для обозначения объектов программ: констант, переменных, функций, процедур, определенных самим пользователем. При этом идентификаторы должны быть уникальными, т.е. один идентификатор не может использоваться для обозначения более чем одной переменной.
При написании имени можно чередовать строчные и прописные буквы. Например, два идентификатора nomersklada и NomerSklada одинаковы, но вторая запись более наглядно преподносит смысл имени, выделяя прописными буквами каждую из двух смысловых частей.
Правильно написанные идентификаторы значительно облегчают чтение и понимание программы.
Общие правила написания идентификатора:
1. начинается только с латинской буквы или знака подчеркивания (исключением являются идентификаторы меток);
2. может состоять из латинских букв, цифр и знака подчеркивания;
3. между двумя идентификаторами должен быть, по крайней мере один пробел;
4. максимальная длина – 127 символов (значимыми будут только первые 63);
5. можно использовать прописные и строчные буквы (компилятор не делает между ними различий).
Примеры идентификаторов:
А А1.R ALFA_23
Примеры ошибочных идентификаторов:
А1.R - содержит точку
45ALFA - начинается с цифры
Сумма - содержит символы русского алфавита
Primer 1 – содержит пробел
2.2КОНСТАНТЫИ ПЕРЕМЕННЫЕ
Решение задачи на компьютере – это процесс сбора, обработки и передачи информации. Поэтому любая программа имеет смысл, если она обрабатывает какие- либо данные. В Паскале данные разделяются на константы и переменные. Константы и переменные определяются идентификаторами (именами), по которым к ним можно обратиться для получения текущих значений, и принадлежат к определенному типу данных.
Константами называются элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются.
Константы являются идентификаторами пользователя, в качестве которых используются константы следующих видов: числовые, логические (булевские), символьные и строковые. Числовые константы предназначены для представления числовых данных (целых и вещественных). Булевские константы используются для представления данных, имеющих смысл логических высказываний (да-нет, истина-ложь, 0-1). Символьные и строковые константы – это отдельные символы и их последовательности.
Все константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const. Тип констант автоматически распознается компилятором без предварительного описания.
Примеры:
const Name=’Никита’;
a=1500;
SP=(Max-Min)/2;
Имеется ряд зарезервированных (стандартных) констант (см. таблицу 2.3), к значениям которых можно обращаться без предварительного определения.
Стандартныеконстанты
Таблица 2.3
идентификатор
тип
значение
описание
pi
real
3.1415926536
число Пи
true
boolean
True
истина
false
boolean
False
ложь
maxint
integer
32 767
максимальное
целое число
maxlongint
longint
2 147 483 647
максимальное
длинное целое число
Переменными называют величины, которые могут менять свои значения в процессе выполнения программы.
В программировании переменную можно трактовать как одну или несколько ячеек памяти, которым присвоено определенное имя (идентификатор). Содержимое ячеек может меняться, но имя остается неизменным. Каждое новое значение, записанное в ячейку памяти «затирает» предыдущее значение, поэтому в любой момент времени переменная имеет только одно текущее значение. Обычно переменные используются для хранения исходных данных, результатов программы, промежуточных результатов.
Переменная имеет имя, значение и тип. Тип переменной определяет ее допустимые значения, а также операции которые можно над нею выполнять. Тип переменных должен быть описан перед тем, как с переменными будут выполняться какие – либо действия.
Все переменные описываются в специальном разделе, который начинается зарезервированным словом var.
Примеры:
var a, b: integer;
P:real;
2.3 ТИПЫ ДАННЫХ ЯЗЫКА ПАСКАЛЬ
Каждый тип данных характеризуется так называемым кардинальным числом — количеством различных значений, принадлежащих типу. Для каждого типа данных должен быть строго определен набор операций, которые можно применять при обработке данных этого типа.
Важнейший принцип Паскаля:все используемые в программе имена должны быть описаны до их употребления. Описать идентификатор, значит указать тип связанного с ним объекта программы.
Тип данных — множество значений, которые могут принимать объекты программы, и совокупность операций, допустимых над этими значениями.
К простым (скалярным) типам данных относят типы данных таких величин, значения которых не содержат составных частей. Простые типы делятся на стандартные и пользовательские (перечисляемый и интервальный). Стандартные типы предлагаются пользователю разработчиками языка Паскаль.
Структурированные типы базируются на простых типах и могут содержать их различные комбинации.
Структуру типов данных представим в следующем виде:
1. Простые:
стандартные
пользовательские
- целочисленные
- перечисляемый
- вещественные
- интервальный (тип-диапазон)
- символьный
- логический
2. Структурированные:
множественный
регулярный (массивы)
комбинированный (записи)
файловый
3. Строковый
4. Ссылочный (указатели)
5. Процедурные
6. Объектные
Целочисленные типы, символьный, логический и пользовательские типы данных образуют группу так называемых порядковых типов, имеющих большое значение.
Тип данных очень важен при выделении памяти под переменные, поскольку каждому типу соответствует строго определенный размер ячейки памяти. В любом случае этот размер ограничен, следовательно, все типы данных имеют ограниченный диапазон значений (см. таблицу 6 и таблицу 8). Этот факт не согласуется с нашими математическими представлениями о числовых множествах. Тем не менее, с ним приходится считаться.
2.3.1 Целочисленные типы данных
Целый типпредставляет собой подмножество целых констант, которые могут занимать в памяти от 1 до 4 байт.
Таблица 2.4
Название типа
Диапазон значений
Требуемая память (байт)
byte
0 .. 255
shortint
-128 .. 127
word
0 .. 65 535
integer
-32 768 .. 32 767
longint
-2 147 483 648 .. 2 147 483 647
Обычно переменные этого типа используются в арифметических выражениях, для организации счетчиков, индексации элементов массива. Значения целых типов могут отображаться в программе в десятичном виде и в шестнадцатеричном виде (в начале числа ставится знак $, а цифры старше 9 обозначаются латинскими буквами от A до F). Наиболее часто в простейших программах используется тип integer.
Пример:
var x, y : word;
Запись x:=68000 будет неверна, т.к. для переменной x типа word с диапазоном от 0 до 65535 произойдет переполнение – выход из допустимого для определенного типа данных диапазона значений.
отношения (=, <>, <, >, <=, >=), вырабатывающие результат логического типа.
Результат выполнения арифметических операций (кроме деления), а также div и mod над целыми операндами получается также целого типа.
Следует знать:
Операции над целыми числами определены лишь тогда, когда исходные данные (операнды) и результат лежат в этом интервале. Иначе может возникнуть переполнение. Пользователь должен сам следить, чтобы промежуточные результаты арифметических выражений не выходили из диапазона.
Дело в том, что при действиях с целыми числами тип результата соответствует типу операндов. Например, для переменных типа integer, принимающих значения a=2000, b=4000, в арифметическом выражении a*b/a возникает переполнение. При вводе исходных данных результат составит не 4000, как это можно было бы ожидать, а 2304. Предупреждения об ошибке не возникнет.
Причина состоит в том, что мы, указав в разделе описания переменных для величин а и b тип integer, зарезервировали в памяти место для хранения только целых чисел, принимающих значения в интервале от -32768 до 32767. Промежуточный результат операции умножения a*b получится число 8000000, который превышает верхнюю границу этого диапазона. Избежать всего этого можно с помощью скобок: a*(b/a).