Для описания величин в языке Pascal используются константы и переменные.
Константы – величины, не изменяющие своего значения в процессе выполнения программы.
Переменные – величины, в ходе выполнения программы могут быть неоднократно переопределены.
Типы констант и переменных
Паскаль позволяет использовать следующие типы констант и переменных:
- Простые
- целочисленный тип (integer);
- логический (boolean);
- символьный (char);
- перечисляемый (задается перечислением всех возможных значений переменной);
- интервальный (задается с указанием наибольшего и наименьшего значений);
- вещественный (real);
- Строковые
- строка (string);
- Структурированные
- массивы (array);
- записи (record);
- множества (set);
- файл (file);
- Ссылочные.
Каждому из перечисленных типов соответствует свой набор операций по обработке данных. Так, для целочисленного и вещественного типов используются операции арифметических действий (сложение, вычитание, умножение, деление). Для логического типа выполняются операции and – логическое и, or – логическое или, xor – логическое исключающее или, not – логическое не.
Кроме того, Pascal предусматривает возможность вычисления для каждого типа данных значений стандартных функций.
В данной таблице приведены стандартные арифметические функции.
Функция | Назначение |
cos(x) | вычисление косинуса числа |
sin(x) | вычисление синуса числа |
abs(x) | вычисление абсолютного значения числа |
sqr(x) | вычисление квадрата числа |
sqrt(x) | вычисление квадратного корня числа |
arctan(x) | вычисление арктангенса числа |
exp(x) | вычисление экспоненты числа |
in(x) | вычисление натурального логарифма числа |
odd(x) | вычисление четности числа |
trunc(x) | вычисление целой части числа |
round(x) | округление числа |
Примечание: Во всех тригонометрических функциях число x указывают в радианах.
Переменные и константы с помощью знаков операций, стандартных функций и круглых скобок могут связываться в выражения. Правила их записи близки к соответствующим правилам записи математических выражений. При вычислении значений выражений устанавливается следующий приоритет выполнения операций:
- Not;
- *, /, mod, div, and;
- +, -, or;
- <, <=, >, >=, <>, =.
Операции одного и того же старшинства выполняются слева направо в порядке их появления в выражении. Выражения в круглых скобках вычисляются в первую очередь.
Любая программа, написанная в Pascal, строится в соответствии с рядом правил, определяющих ее структуру. В частности, в состав любой программы должны входить три раздела:
- Объявления и соглашения;
- Тексты процедур и функций;
- Основной блок программы.
Лишь в простейших программах второй из перечисленных разделов может отсутствовать. Каждый раздел имеет в свою очередь составные части, так что в целом структуру программы, написанной на языке Паскаль, можно представить следующим образом:
program {заголовок программы}
uses {подключаемые библиотеки}
label {объявление меток}
const {объявление констант}
type {объявление типов}
var {объявление переменных}
Раздел текстов процедур и функций:
procedure (function) {описание процедуры (функции)}
Раздел основного блока программы:
begin {начало блока}
Операторы
end. {конец блока}
Кроме того, в программе могут использоваться комментарии – любой текст, ограниченный (*…*) или {…}. Комментарий может быть помещен в любом месте программы.
Рассмотрим более подробно назначение каждой части программы.
Заголовок программы состоит из зарезервированного слова program и идентификатора – имени программы.
В строке uses производится подключение используемых в данной программе библиотек (стандартных модулей). Pascal содержит ряд модулей, в том числе:
- system – системный модуль низкоуровневых программ поддержки языка Pascal; подключается автоматически, даже при отсутствии ссылки на него в строке uses;
- dos и windos – модули поддержки часто используемых функций MS DOS и Windows;
- crt – модуль управления режимами вывода информации на экран;
- printer – модуль управления выводом информации на печать;
- overlay – модуль управления оверлеями языка Pascal; позволяет выполнять программы, которым требуются большие объемы памяти;
- strings – используется при написании программ, совместимых с Windows;
- graph – модуль для работы с графикой.
Раздел описания
В разделе описания меток содержатся сведения об используемых в программе метках. Переход по ним выполняется оператором goto. Метки отделяются от помечаемого оператора знаком “:”, должны быть описаны, могут быть целочисленными (от 0 до 9999) или идентификаторами. Каждая описанная метка обязательно должна появиться в программе.
Для описания констант используется ключевое слово const, имя константы, знак “=” и значение константы:
const имя1 = значение 1;
имя2 = значение 2;
В разделе описания типов type программист может задавать свои типы, сформированные на основе определенных правил с использованием стандартных типов.
В разделе var описываются переменные, используемые в программе:
var список 1: имя типа 1;
список 2: имя типа 2;
В списке переменных их имена отделяются запятой, в качестве имени типа можно использовать один из стандартных типов или идентификатор типа, объявленного в разделе type. Описанные таким образом переменные могут использоваться в пределах блока, где они были описаны, а также во всех вложенных блоках, если в них эти переменные не описаны повторно.
В разделе текстов процедур и функций в соответствии с определенными правилами производится описание процедур и функций.
Процедура
Процедура имеет следующую структуру:
procedure имя процедуры (формальные параметры);
Раздел объявлений
begin
Операторы
end;
Раздел объявлений процедуры может включать подразделы label, const, type, var для объявления локальных меток, постоянных, типов и переменных собственно. Слово «локальный» означает, что все перечисленные объекты могут быть использованы только в рамках данной процедуры или других подчиненных ей процедур.
Описание функций отличается по структуре от описания процедур только заголовком:
function имя функции (формальные параметры): тип результата;
begin
Операторы
end;
Функция
Функция – это особый вид процедуры, результатом работы которой является единственное значение. С этим значением связывается имя функции, в то время как имя процедуры служит только для ее вызова.
Основной блок программы состоит из ряда операторов и является выполняемой частью программы. Он начинается со слова begin и заканчивается словом end, после которого должна стоять точка. Операторы языка Паскаль не привязаны к определенной позиции строки. В одной строке можно указывать несколько операторов. Исполняемые операторы отделяются друг от друга знаком « ; ».
Допускается перенос с одной строки на другую частей операторов (но без разделения ключевых слов).
Как было указано выше, основной блок программы представляет собой некоторый набор операторов.
Оператор – неделимый элемент программы, который позволяет выполнить определенные действия.
Операторы должны записываться строго в соответствии с правилами, установленными для данного языка программирования. Рассмотрим основные операторы языка Pascal.
Оператор присваивания
Данный оператор предписывает запомнить некоторое значение в переменной. Значение и индентификатор переменной разделены парой знаков « := ». Типы объектов с обеих сторон данного знака должны строго совпадать, за исключением того случая, когда тип переменной – real, а тип выражения – integer.
Общий вид оператора:
<переменная>:=<выражение>
Например:
a:=a+1;
c:= f/p*100;
Операторы ввода/вывода
Немногие программы обходятся без ввода данных и совсем нет таких, которые не выводят полученные результаты. Ввод данных с клавиатуры дисплея выполняется операторами:
read(<список переменных>);
readln(<список переменных>);
где <список переменных> — последовательность имен переменных, разделенных запятыми. Буквы ln добавляются в конце оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы.
Например:
readln(x,y,z);
read(beta,gamma);
При выполнении оператора read (readln) программа останавливается и ждет, пока нужное количество чисел не будет введено с клавиатуры. Вводимые числа разделяют пробелами или нажатием клавиши Enter. По завершении ввода данных следует нажать Enter, после чего компьютер перейдет к выполнению следующего оператора программы.
Вывод данных на экран дисплея выполняется операторами:
write(<список выражений>);
writeln(<список выражений>);
Выражения в списке разделяются запятыми. Значения выражений сначала вычисляются, а затем выводятся на экран. Буквы ln имеют то же значение, что и в операторе readln.
Вслед за выражением через двоеточие можно указать ширину поля экрана, в котором разместится выводимое значение.
Например:
write(10:3, 55:6);
Данный оператор займет для вывода числа 10 три позиции, а для вывода числа 55 – шесть позиций на экране.
При выводе вещественных значений можно указать, сколько десятичных цифр следует сохранить в дробной части числа, причем количество цифр указывается вслед за шириной поля после двоеточия.
Например:
x=3.14159;
write(x:6:2)
Результатом вывода переменной х является шесть позиций, две из которых будут использованы для дробной части х (т.е. значение х будет округлено до 3,14).
Для того, чтобы прокомментировать выводимые значения, в список ввода можно помещать строки любых символов, заключенные в одинарные кавычки – апострофы.
Например, при выполнение программы:
x:=3.5;
write('Ответ:', x:4, 'км/с');
На экран будет выведено:
Ответ: 3.5 км/с
Примеры
Составить программу для подсчета суммы двух заданных чисел. Для этого необходимо ввести текст в память компьютера и сохранить на диске под именем pr1. Далее запустить программу на выполнение. При наличии ошибок внести соответствующие исправления. Получить результаты работы программы.
Текст программы:
program sum;
var a, b, s: real;
begin
write('Введите значения чисел a и b');
readln(a,b);
s:=a+b;
writeln('Сумма ='; s:7:2);
End.