Модуль 1
Введение в Паскаль: алфавит, синтаксис языка. Структура программы.
Оператор присваивания. Операторы ввода / вывода
Теория
Паскаль является языком программирования высокого уровня, т. е. он не ориентирован на конкретный тип процессора. Работая с этим языком можно заметить, что написание программы похоже на перевод полученного алгоритма, на английский язык: логика Паскаля похожа на логику человека.
Алфавит и синтаксис языка
Данный язык имеет свой алфавит – латинские буквы, буквы кириллицы, знаки препинания, цифры. Также имеется свой синтаксис, т. е. специально определенные правила написания слов и фраз. Все слова, которые можно встретить в программе делятся на служебные (или зарезервированные) и имена. К служебным можно отнести, например, begin, end, program, procedure и т. д. Имена представляют собой придуманные пользователем конструкции, предназначенные для называния переменных, констант, программ, подпрограмм, типов и т. д. Имена в Паскале строятся по следующему правилу: они могут состоять из цифр и букв латинского алфавита, символа подчеркивания. При этом имя не должно начинаться с цифры, не должно содержать русские буквы и знаки препинания, пробелы, не должно совпадать с зарезервированными словами. Имена обычно в Паскале называют словом «идентификатор».
Одной из главных единиц языка является переменная – поименованная область памяти, которая имеет размер и тип. Частным случаем переменной является константа – это переменная, которая в ходе выполнения программы не меняет своего значения (не может менять).
Структура программы
Общая схема программы, написанной на Паскале, имеет следующую конструкцию:
__
Program <имя программы>; - заголовок программы (необязателен)
<раздел описаний>
<раздел подпрограмм>
Begin
<тело программы>
End.
__
Раздел описаний в себя может включать следующие:
Uses – раздел вызова модулей
Const – раздел констант
Type – раздел описания пользовательских типов
Var - раздел описания переменных
Label – раздел меток
При этом разделы Const, Type, Var, Label могут располагаться в произвольном порядке, встречаться несколько раз, либо вообще не использоваться. Вызов модулей также может не осуществляться, но если используется, то должен стоять только на первом месте. В разделе подпрограмм описываются пользовательские процедуры и функции. Данный раздел также может отсутствовать.
После того, как программа набрана, ее необходимо запустить на выполнение. Для выполнения данной процедуры можно действовать двумя способами. Первый: сначала произвести отладку, а затем запустить. В этом случае сначала надо нажать Alt+F9. Если в вашей программе нет синтаксических ошибок, то машина попросит нажать любую клавишу, после чего можно смело запускать программу, нажав Ctrl+F9. Выход из режима выполнения осуществляется нажатием Enter.
Второй способ: сразу нажимать Ctrl+F9. При этом, если ошибок нет, то программа начнет свое выполнение.
Каким образом узнать о наличии ошибок? Если в программе присутствуют синтаксические (именно синтаксические, а не логические) ошибки, то компилятор выдает вверху экрана строку с их указанием номера и описания. После исправления, программу можно запускать повторно.
Также может возникнуть ситуация, когда во время выполнения программы произошло зацикливание, то есть машина не реагирует на нажатие клавиши Enter, в этом случае необходимо произвести прерывание, нажав Ctrl+Break.
Обращаю внимание, что машина не различает строчные и заглавные буквы, т. е., например, Х и х считаются одной переменной. В Паскале действует правило: там, где можно поставить один пробел, так их можно ставить сколько угодно. Это дает возможность зрительно с помощью отступов и выступов визуально структурировать программу. Исключением, естественно, является строковая константа, т. е. если в заданной строке изменить количество пробелов, то сама строка будет уже другой. Также необходимо пользоваться правилом: все имена, используемые в тексте, должны быть описаны выше.
В программе можно встретить фигурные скобки { } или конструкцию (* *). Текст, написанный в них, называется комментарием и не воспринимается компилятором. Обычно используется либо для «закрытия» отдельных строк в процессе отладки, либо для пояснений.
Оператор присваивания
В ходе выполнения программы постоянно необходимо переменным сообщать некоторые значения, для этого служит оператор присваивания.
__
Синтаксис:
<имя переменной>:=<значение>;
__
При этом «:=» читается как «присвоить». В качестве значения, которое присваивают, также может быть взята переменная. Например, х:=5; означает, что в ячейку с именем х помещается число 5, а d:=f; - в ячейку с именем d помещается то, что лежит в ячейке f.
Писать 5:=x или 5=:x нельзя.
Операторы ввода и вывода
При написании программы необходимо запрашивать в программу данные (пока будем говорить, что только с клавиатуры) и выводить результат (пока будем говорить, что только на экран). Для этого используют операторы ввода \ вывода.
__
Синтаксис операторов вывода:
Write(<список вывода>);
и
Writeln(<список вывода>);
__
Списком вывода может служить переменная, либо переменные, перечисленные через запятую, комментарии (записываются в апострофах), вызов функций, выражения. Процедуры предназначены для вывода на экран списка.
Write и writeln отличаются способом вывода. Write печатает на экране список вывода и оставляет курсор в следующей пустой позиции, а оператор writeln – переводит курсор вывода в начало новой строки. Исходя из этого, существует частный случай: writeln; - просто переводит курсор на новую строку.
__
Синтаксис операторов ввода:
Read(<список ввода>);
или
Readln(<список ввода>);
__
Списком ввода может служить переменная, либо переменные, перечисленные через запятую. Процедуры предназначены для ввода с клавиатуры списка.
В операторе Readln окончание говорит о том, что курсов после завершения ввода значения переменной должен перейти к началу следующей строки на экране.
Например, пусть на экране написано:
1 2 3 4
5 6 7 8, тогда
a) В случае последовательного выполнения операторов
read(x);
read(y); получим результат x=1, y=2;
б) в случае последовательного выполнения операторов
readln(x);
read(y); получим результат x=1, y=5;
в) в случае выполнения оператора
readln(x, y); получим результат x=1, y=2.
Существует частный случай readln; - производит задержку экрана до нажатия клавиши [enter]. Здесь же можно упомянуть об операторе readkey; - производит задержку экрана до нажатия любой клавиши. Но нужно отметить, что для работы с процедурой readkey дополнительно необходимо подключить к программе модуль CRT. Более подробно поговорим об этом позже. А сейчас скажем, что подключение осуществляется с помощью строки «uses crt;», которую записывают следом за заголовком программы, либо самой первой строкой программы, если заголовок отсутствует.