ЛИНЕЙНЫЕ ПРОГРАММЫ
Чтобы иметь представление о том, как программируют на языке Паскаль, приведем пример программы pr1, определяющей сумму двух чисел:
program pr1;
var a,b,result: integer;
begin
a:=2;
b:=3;
result:=a+b;
writeln(result);
end.
Это – линейная программа. К линейным программам чаще всего приводят задачи, в которых необходимо выполнить обработку данных по формулам. В любой линейной программе имеются блоки ввода исходных данных, вычислительный блок, который выполняет присваивание переменной значения некоторого выражения, и блок вывода результатов решения задачи.
Структура программы на языке Паскаль в общем случае выглядит следующим образом:
* заголовок программы;
* описательная часть;
* операторная часть.
Заголовок программы представляется так:
program;
Cлово program является зарезервированным (ключевым), т.е. не может использоваться для каких-нибудь иных целей.
– это правильный идентификатор. Идентификаторы (или имена) используются в программе и для обозначения переменных, меток, типов, процедур и функций, констант. На имена (идентификаторы) накладываются некоторые ограничения. Важным ограничением при выборе идентификаторов является невозможность использования ключевых слов, например program или var. Идентификатор должен начинаться с буквы и может содержать буквы латинского алфавита, цифры и знаки подчеркивания. Длина идентификатора может быть любой, но значащими являются первые 63 символа. Имена могут нести смысловую нагрузку, как, например, result, но могут и не нести. Использование осмысленных имен предпочтительнее, так как это делает программу более простой для понимания. В идентификаторах, как и во всей программе на Паскале, игнорируется разница в высоте букв.
Описательная часть программы может содержать несколько разделов:
1) раздел меток;
2) раздел констант;
3) раздел типов;
5) раздел процедур и функций.
По мере необходимости далее в тексте будет излагаться материал по каждому разделу описательной части.
Операторная часть программы заключается в операторные скобки begin end и содержит операторы, необходимые для выполнения последовательности действий для решения поставленной задачи. Разделителем между разделами описательной части и операторами служит точка с запятой. В конце программы должна стоять точка. Язык Паскаль является языком свободного формата, что позволяет размещать в строке как один, так и несколько операторов.
Первая строка приведенной выше программы является заголовком программы, в котором указывается имя программы. В данном случае программа названа pr1. В Паскале можно опускать заголовок программы.
Вторая строка – описательная часть, содержащая в данном случае только описание переменных. Описание переменных всегда начинается с ключевого слова var и указывает имена переменных и их тип.
Третья и все последующие строки программы – это операторная часть программы (тело программы). В данном примере в теле программы содержатся операторы присваивания и оператор вызова встроенной процедуры writeln вывода данных. Встроенная процедура не нуждается в предварительном описании и доступна любой программе.
Рассмотрим подробнее описания переменных и операторы, необходимые для написания линейной программы.
ОПИСАНИЕ ПЕРЕМЕННЫХ
В языке Паскаль возможна обработка данных различных типов. Тип любого объекта определяет множество допустимых значений и множество допустимых операций над этими значениями. Любой идентификатор, используемый в исполняемых операторах, должен быть предварительно описан в разделе описаний. В этом строгом требовании языка Паскаль проявляется тенденция развития языков программирования в сторону повышения надежности создаваемых программ. На рис.5 приведена структура типов данных Паскаля. В данном разделе рассматриваются только целые и вещественные типы данных.
Рис. 5
Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. В табл.2 приводятся названия целых типов, длина их внутреннего представления в байтах и диапазон возможных значений. Целые типы относятся к так называемым порядковым типам. Для порядковых типов характерно то, что такие типы имеют конечное число возможных значений и эти значения можно каким-либо образом упорядочить и каждому значению поставить в соответствие целое число. К любому порядковому типу применима функция ord(x), которая возвращает порядковый номер применима функция ord(x), которая возвращает порядковый номер значения выражения х. Для целых типов ord(x) возвращает само же значение х. К порядковым типам можно также применить функции pred(x) и succ(x). Функция pred(x) возвращает значение, которое соответствует порядковому номеру ord(x)-1, а функция succ(x) –ord(x)+1.
Таблица 2
Целые типы
Длина, байт | Название типа | Диапазон значений |
byte | от 0 до 255 | |
shortint | от -128 до 127 | |
word | от 0 до 65535 | |
integer | от -32768 до 32767 | |
longint | от -2147483648 до 2147483647 |
Над целыми числами выполняются операции:
+ – сложение; * – умножение; / – деление;
— – вычитание; div– целочисленное деление;
mod– получение остатка от целочисленного деления.
Например, 5div2 дает результат 2, 6div2 дает –3, 5mod2 дает –1, а 6mod3 –0.
В табл.3 содержатся основные встроенные процедуры и функции, применяемые к целым типам. В квадратных скобках указывается необязательный параметр.
Таблица 3