Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
05.06.2018
Размер:
29.18 Кб
Скачать

Билет №21. Оператор присваивания.

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

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

Оператор присваивания состоит из левой и правой частей, которые разделяются знаками присваивания (:=). Левая часть - это переменная любого типа, правая часть - выражение, совместимое по типу с переменной левой части. При выполнении этого оператора вычисляется значение выражения правой части и это значение становится значением переменной левой части. Таким образом, присваивание, это - "передача значения" справа налево.

Следует усвоить, что присваивание не является обычным равенством (почему и используется знак присваивания, отличный от равенства). Действительно, пусть Х - переменная типа integer. Тогда при выполнении последовательности присваиваний Х:=2; Х:=Х+5; переменная Х получит значение 7, в то же время, очевидно, что второе присваивание не является равенством. Заметим, что присваивание такого вида часто используется в программах, и в Турбо Паскале предусмотрен сокращенный вариант записи этих присваиваний (стандартные процедуры inc и dec):

inc(X,j) ~ X:=X + j; dec(X,j) ~ X - j; где j - любое выражение типа integer.

Если j=1, возможна и ещё более короткая запись: inc(X) или dec(X).

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

 Тип переменной левой части real, а тип выражения правой части - integer, т.е. преобразование вида real  integer.

 Тип переменной левой части string, а тип выражения правой части - char, т.е. преобразование вида string  char.

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

Задача 4.2.6(21)

program Project21;

type mas=array[1..4,1..5] of Integer;

mass=array[1..5] of integer;

var a:mas;

b:mass;

i,j:Integer;

procedure p(x:mas; e:Integer; var y:integer);

var i,k:Integer;

begin

k:=0;

for i:=2 to 4 do

if x[i,e]<x[i-1,e] then k:=k+1;

if k=0 then y:=1

else y:=0;

end;

begin

for i:=1 to 4 do

for j:=1 to 5 do

read(a[i,j]);

writeln;

for i:=1 to 5 do

begin

p(a,i,b[i]);

write(b[i],' ');

end;

Readln;

end.

Соседние файлы в папке 1 семестр сессия