Паскаль (Pascal) разрабатывался, как учебный язык выского уровня, структурного программирования. Относится к 3-му поколению языков программирования. На основе ALGOL.
Приоритет операций. Операции языка Паскаль подчиняются определенной иерархии приоритета. Сначала всегда выполняются операции в скобках, дальнейшая приоритетность представлена в таблице:
Структура программы на языке:
Program имя_программы;
uses список_дополнительных_библиотек;
раздел описаний
Begin
тело программы
End.
Заголовок программы находится в первой строчке файла, содержащего текст программы. В современных версиях Паскаля практического смысла эта строка не имеет, поэтому при написании программы ее можно не писать.
Раздел описаний состоит из пяти подразделов: 1. Описание меток; 2. Описание констант; 3. Описание пользовательских типов данных; 4. Описание переменных; 5. Описание пользовательских процедур и функций. l В современных версиях языка Паскаль эти разделы могут повторяться и находится в произвольном порядке друг относительно друга. Примечание: в языке Паскаль существуют зарезервированные слова, как правило автоматически выделяемые при наборе другим цветом.
Список дополнительных библиотек (модулей) содержит список расширений языка. Стандартные дополнительные модули находятся в подкаталоге units каталога компилятора. Они представляют собой файлы с расширением *.tpu для Turbo Pascal и Borland Pascal, *.dcu для Object Pascal, *.ppu для Free Pascal. При подключении модулей пишется только его имя, без расширения. Программист может сам создавать библиотеки собственных подпрограмм и оформлять их в виде модулей, пользовательские модули также пишутся в строчку.
Тело программы Исполняемая часть программы всегда начинается зарезервированным словом Begin, а заканчивается зарезервированным словом End. Написанное после точки для компилятора Паскаля не существует. Между словами Begin и End располагается исполняемая часть программы, содержащая операции, операторы и вызовы подпрограмм.
Компиляция программы. Текст программы можно набрать при помощи любого текстового редактора, например стандартного редактора Windows – Notepad. Получаем текстовый файл primer1.pas. Для компиляции можно используем компилятор языка Free Pascal - fpc.exe. В режиме командной строки в каталоге, где находится файл primer1.pas набираем fpc primer1.pas Запускается процесс компиляции, в результате чего создаются файлы: primer1.o и primer1.exe. Первый из этих файлов является служебным вспомогательным файлом, полученным в процессе компиляции, второй – исполняемый файл, запустив который можно увидеть результат работы программы.
Раздел описаний Раздел описания констант начинается зарезервированным словом const. В данном разделе объявляются имена констант, которым присваивается значение. Раздел описания пользовательских типов начинается зарезервированным словом type. Раздел описания переменных начинается зарезервированным словом var. l В данном разделе объявляются переменные, после которых указывается их тип.
Операторы языка Оператор присваивания, т.е. действие присваивающее переменной некоторое значение, в языке Паскаль имеет вид :=. Составной оператор - это последовательность произвольных операторов программы, заключенная в операторные скобки - зарезервированные слова begin набор_операторов end; Язык Паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Среди них могут быть и другие составные операторы - Паскаль допускает произвольную глубину их вложенности.
Тем не менее надо помнить, что количество открывающих скобок begin должно быть равно количеству закрывающих скобок end; Фактически, тело программы представляет собой один составной оператор. Наличие точки с запятой перед end (как впрочем, и вообще любой лишней точки с запятой) означает, что между последним оператором и операторной скобкой end располагается пустой оператор. Пустой оператор не содержит никаких действий, просто в программу добавляется лишняя точка с запятой. Основной практической целью пустого оператора является создание заглушки, т.е. участка программы, формально имитирующего некоторое действие.
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Структура условного оператора имеет следующий вид: if логическое_условие then оператор else оператор;.
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора - выражение любого порядкового типа. Структура оператора выбора такова: case ключ_выбора of список_выбора; else оператор end;.
Оператор цикла. Счетный оператор цикла FOR имеет такую структуру: for параметр_цикла:= нач_знач to кон_знач do оператор;. При выполнении оператора for вначале параметру цикла присваивается начальное значение, после чего циклически повторяется: 1. проверка условия параметр_цикла <= кон_знач, если условие не выполнено, оператор завершает свою работу; 2. выполнение оператора 3. наращивание параметра на единицу.
Оператор while – оператор цикла с предусловием: while логическое_условие do оператор; Если логическое_условие имеет значение true, то выполняется оператор, после чего проверка логического_условия повторяется. Если логическое_условие имеет значение false, то оператор while прекращает свою работу.
Оператор цикла repeat. Оператор repeat – оператор цикла с постусловием: l repeat оператор until логическое_условие; Если оператор является составным, то нет необходимости записывать операторные скобки begin end, их заменяют скобки repeat until. Перед until также не обязательно ставить ;. l Если логическое_условие имеет значение false, то оператор выполняется снова, после чего проверка логического_условия повторяется. Если логическое_условие имеет значение true, то оператор прекращает свою работу.
Для гибкого управления циклическими операторами for, while и repeat в состав современного языка Паскаль включены две процедуры без параметров: break - реализует немедленный выход из цикла; действие процедуры заключается в передаче управления оператору, стоящему сразу за концом циклического оператора; continue - обеспечивает досрочное завершение очередного прохода цикла; эквивалент передачи управления в самый конец циклического оператора. При желании можно получить бесконечный цикл, выход из которого возможен только при нажатии комбинации аварийной остановки программы Ctrl-Break.
Комментарии к программе Под комментариями к программе будем понимать участки программы, игнорируемые компилятором в процессе трансляции. Комментарии к программе служат для двух целей: 1. Для собственно комментирования, т.е. создания понятных текстовых пояснений к отдельным местам программы в произвольной форме. Комментирование сложных или важных мест программы является одним из правил хорошего тона в программировании. 2. Для временного исключения из процесса трансляции отдельных фрагментов программы, что часто бывает полезно на этапе отладки программы. Для комментирования фрагментов программы в Free Pascal используются фигурные скобки или круглые скобки со звездочкой (* *). Для комментирования отдельных строк применяют две наклонных черты //. Часть строки справа от данного символа является комментарием
Процедуры стандартного ввода-вывода Для вывода информации используется процедуры Write(список); WriteLn(список);. Процедура WriteLn; без параметров просто переводит строку. При выводе данных можно задавать формат вывода. Для этого после имени переменной ставится знак двоеточие " : " , например: WriteLn(a:5:2); - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку), из них 2 позиции отводится для вывода цифр в дробной части.
Для ввода информации с клавиатуры используются процедуры Read(список); Readln(список); При вводе между данными можно ставить пробел или нажимать клавишу Enter. Процедура Readln; без параметров служит для приостановки выполнения программы и ожидает нажатия клавиши Enter, т. е. применяется с целью приостановки вывода информации на экран для просмотра результатов. l При вводе данных предпочтительнее использовать процедуру Readln, поскольку процедура Read после срабатывания не считывает управляющий код (#13), который остается в буфере клавиатуры.
7.