Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_7.docx
Скачиваний:
4
Добавлен:
22.01.2022
Размер:
57.02 Кб
Скачать

Операторы языка Паскаль

1. Оператор присваивания

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

<переменная>:=<выражение>

В зависимости от типа переменной, стоящей в левой части, операторы присваивания делятся на следующие группы: арифметические, логические и символьные. Арифметичес­кий оператор присваивания служит для присваивания переменной вещественного или целого типа числового значения. В связи с этим в правой части такого оператора должно быть записано арифметическое выражение, задающее правило вычисления числового значения. Например, формула х = а + 2 записывается в виде оператора присваивания:

х: = а + 2;

При выполнении этого оператора к значению, которое имеет переменная а, прибавляется 2 и результат присваивается переменной х. Прежнее значение переменной х, если оно и было, теряется. С помощью оператора присваивания можно как задавать переменной начальное значение, так и изменить то имеющееся значение. Например, оператор:

n: = n + 1

увеличит значение переменной n на 1. Этот пример подчеркивает различие между симво­лом присваивания и знаком равенства, используемым в математических формулах. Очевидно, что запись n: = n + 1 не имеет смысла, если ее рассматривать как уравнение.

Для увеличения или уменьшения значения переменной целого типа можно использовать процедуры inc и dec. Процедура inc(x[,i]) увеличивает значение x на i, а при отсутствии i– на 1. Процедура dec(x[,i]) уменьшает значение x на i, а при отсутствии i – на 1.

Примеры.

1. Записать оператор присваивания, который позволяет вычислить расстояние между двумя точками на плоскости с координатами (x1, y1) и (x2, y2).

Оператор будет иметь вид: d:=sqrt(sqr(x1-x2)+sqr(y1-y2));

2. Записать последовательность операторов присваивания, обеспечивающих обмен значениями переменных x и y в памяти компьютера.

c:=x; x:=y; y:=c;

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

x:=y; y:=x;

т.к. уже после первого из них мы имеем два значения y, а исходное значение x потеряно.

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

2. Ввод данных

Задание исходных данных, над которыми должны выполняться преобразования в программе, можно организовать различными способами:

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

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

      3. В языке Паскаль предусмотрены процедуры ввода Read и Readln осуществляю­щие ввод из стандартного файла Input. Использование этих процедур позволяет выполнять программы с различными наборами исходных данных. Форма использования процедур ввода следующая:

Read (<список ввода>);

Readln(<список ввода>).

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

Read(a,b,с);

При выполнении этого оператора система перейдет в состояние ожидания ввода с клавиатуры трех значений. Типы вводимых значений должны совпадать с типами переменных а, b и с, но, если переменные а, b, с вещественного типа, то соответствующие им значения могут быть, либо вещественными числами, либо целыми (в этом случае осуществляется преобразование целого числа в вещественный тип). Значения при вводе должны отделяться друг от друга одним или несколькими пробелами, а ввод должен быть завершен нажатием клавиши Enter. Наличие других символов в качестве разделителей приводит к ошибке. В процессе ввода значений набираемые на клавиатуре символы отображаются на экране. После нажатия клавиши Enter введенные значения будут присвоены переменным а, b и с, и выполнение программы будет продолжено.

Стандартная процедура Readln отличается от процедуры Read тем, что после ввода всех указанных данных очищается буфер клавиатуры и осуществляется переход к началу следующей строки.

Процедура Readln может быть и без параметров, в этом случае она просто пропускает все символы в текущей входной строке и переходит к началу следующей строки. Эта процедура задерживает выполнение всех операторов программы до нажатия клавиши Enter.