Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_учебное пособие_.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2.11 Mб
Скачать
  1. Операторы языка паскаль

Операторы языка описывают некоторые алгоритмические действия, которые необходимо выполнить для решения задачи. Тело программы можно представить как последовательность таких операторов. Идущие друг за другом операторы программы разделяются точкой с запятой.

Все операторы языка Паскаль можно разбить на две группы: простые и структурированные.

Простые операторы не содержат в себе других операторов. К ним относятся:

  • оператор присваивания;

  • обращение к процедуре;

  • оператор безусловного перехода GOTO;

  • пустой оператор.

Оператор присваивания выполняет присваивание переменной или функции значение выражения. Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение, справа - выражение, значение которого вычисляется перед присваиванием:

<Переменная>:=<Выражение>

Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл. Тип выражения и тип переменной (или функции) должны быть совместимы для присваивания.

Пример. Операторы присваивания

Х := Y;

Z :=А + В;

Res := (I>0) and (K<100) ;

I := Sqr(J) + I*К;

Оператор безусловного перехода GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана и в операторе GOTO.

Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы, не рекомендуется осуществлять переход внутрь структурированного оператора, т. к. он может дать неправильный результат.

Пример. Найти частное от деления целых чисел.

Рrogram Primer;

Label Out; {описание метки}

Var X, Y, Res: Integer; {описание переменных}

begin

Write('Введите делимое');{вывод сообщения на экран}

ReadLn(X); {чтение числа}

Write('Введите делитель');{вывод сообщения на экран}

ReadLn(Y); {чтение числа}

if Y = 0 then

begin {Составной оператор}

WriteLn('Деление на ноль!'); {выход при нулевом делителе}

goto Out;

end

else Res:=X div Y;

WriteLn('Частное равно: ', Res);

Out: ; {метка "пустого" оператора}

end.

Пустой оператор не выполняет никакого действия и никак не отображается в программе (за исключением, быть может, метки или точек с запятыми, отделяющих пустой оператор от предыдущих или последующих операторов). Он может потребоваться для осуществления на него безусловного перехода.

Ввод числовых данных можно осуществлять оператором присваивания, например:

А:=5;

ВВ:=6.143;

Однако в этом случае программа становится не универсальной, так как выполняется только при этих значениях переменных. Для выполнения программы при различных значениях переменных предназначен оператор ввода Read.

Как только во время выполнения программы встречается оператор Read, машина останавливается и ожидает ввода числовых значений. Когда числовые значения введены, процесс выполнения программы продолжается. Оператор ввода имеет вид

Read (a1, a2,.... an),

где a1, а2, , … , an — переменные, которые последовательно получают вводимые значения.

Числовые значения указываются через пробел, признаком окончания ввода является нажатие клавиши <Enter>. Числовые значения вводятся после набора на экране дисплея всей программы и запуска ее на выполнение.

Пусть переменным А, В, С необходимо присвоить следующие значения в процессе выполнения программы:

А=0.21 В=45.34 С=6371

Оператор ввода примет вид

Read (А, В, С),

а числовые значения можно ввести следующим образом:

0.21 45.34 6371

Если вновь повторить запуск программы, то можно ввести любые другие значения.

Если переменная описана как действительная (Real), а ее значение является целым числом, то можно вводить число как целое и как действительное. Машина сама преобразует целое число в действительное.

Допускается использование оператора ввода без параметров ReadLn, осуществляющего переход на новую строку при вводе данных. Дополнительно к этому имеется оператор ввода

ReadLn (a1, а2,.... an),

который сначала вводит значения a1, а2, ..., an, а затем осуществляет переход на новую строку.

Вывод данных из памяти ЭВМ на экран дисплея осуществляет оператор вывода Write. Форма записи оператора

Write (a1, а2,..., аn),

где ai, а2, ..., an являются выражениями (переменными, строкой символов, функциями, константами).

Например, оператор

Write ('Значение В-',В)

выводит на экран дисплея строку

Значение В-, а затем значение переменной В.

Для вывода целых и действительных чисел можно указывать форматы в операторе Write. Формат указывается через двоеточие после переменной. Для действительных чисел формат состоит из двух величин. Первая величина обозначает общее поле выводимого значения, второе — поле дробной части. Общее поле включает в себя отрицательный знак числа или пробел для положительного числа, количество цифр в целой части, точку и количество цифр в дробной части.

Так, вывод значения Y в соответствии с форматом WRITE (Y:5:2) означает, что на изображение всего значения Y отведено пять позиций, из них две — на дробную часть.

Если формат отведен больше, чем количество позиций, занимаемых числом, то перед целой частью будет отведено соответствующее количество пробелов, а после дробной части — соответствующее количество нулей.

Для вывода целых чисел формат дробной части не указывается.

В языке ПАСКАЛЬ допускается использование оператора вывода без параметровWriteLn, который осуществляет переход на новую строку экрана дисплея. Последующий оператор вывода с параметрами будет выводить данные на новую строку экрана. Оператор вывода без параметров часто используется для пропуска пустых строк.

Оператор вывода

Writeln (a1, а2,.... an),

осуществляет сначала вывод на экран дисплея значений a1, a2, ..., an, а затем — переход на новую строку. Таким образом, данный оператор эквивалентен двум оператор;

Write (ai,a2,..., an);

WriteLn;

Операторы ввода и вывода используются практически во всех программах.

Перед вводом данных рекомендуется давать поясняющий текст с помощью оператора WRITE. Этим самым устанавливается диалог пользователя и машин. Например, для ввода значений А, В, С лучше указать

Write ('Введите значения А, В, С');

Read (А, В, С);

Таким образом, перед вводом числовых значений А, В, С на экране появится сообщение

Введите значения А, В, С

после чего можно вводить значения.

Составной оператор представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin и end:

begin

<оператор 1> ;

<оператор 2>;

<оператор N>

end

Он может потребоваться в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий. В такой составной оператор входит ряд операторов, выполняющих требуемые действия.

В дальнейшем везде, где будет указываться, что можно использовать один оператор, им может быть и составной оператор.

Отдельные операторы внутри составного оператора отделяются друг от друга точкой с запятой. Так как завершающее составной оператор слово end не является отдельным предложением, то перед ним точку с запятой можно не ставить, в противном случае компилятор будет считать, что перед словом end стоит пустой оператор.

Можно считать, что и само тело программы, т. к. оно заключено в операторные скобки begin и end, тоже является составным оператором.