Переменные величины. Оператор присваивания. Учитель информатики МОУ Юрцовская СОШ Егорьевский район Сафонова Ольга Викторовна
Переменные величины. Понятие переменной величины известно из школьной математики. r. Пусть несколько лет назад ваш рост равнялся 130 см. Обозначим это так: r=130. Теперь он равен 140 см, т.е. r=140. Получается, что величина r изменилась. Поэтому она называется переменной величиной. Числа 130 и 140 называются значениями переменной величины r.
Что же мы можем делать с переменными величинами, программируя на Паскале? Прежде всего мы можем задавать компьютеру значение той или иной переменной величины. Это можно сделать при помощи нового оператора, который называется оператором присваивания.
Оператор присваивания. а 6 Если мы хотим сказать, что а имеет значение 6, то должны записать: а:=6 а:=6 а 6 а:=6 а а:=6. Вместо значка = употребляется значок :=. Он называется знаком присваивания, а сама запись а:=6 называется оператором присваивания. Говорят, что величине а присваивается значение 6. С момента выполнения оператора а:=6 компьютер будет помнить, что а равно шести.
:= Справа от значка := в операторе присваивания можно писать не только числа, но и переменные величины и выражения. После выполнения следующего фрагмента программы: … a:=2*3+4; b:=a; y:=a+b+1 … а y компьютер будет знать, что а равно 10, b равно 10, y равно 21.
Примеры. Фрагменты программ Что запомнит компьютер v := ; h := 10*v; s := v+h v=8 h=80 s=88 t := 0; n := 2*t+40; z := -n t=0 n=40 z= -40 WriteLn Необходимо помнить, что компьютер выполняет оператор присваивания «в уме», то есть результат его выполнения не отображается на экране. Если мы хотим видеть результат выполнения оператора присваивания, используйте WriteLn.
Примеры. Фрагменты программ На экране v := ; h := 10*v; s := v+h; v := ; h := 10*v; s := v+h; WriteLn(s) s v := ; h := 10*v; v := ; h := 10*v; WriteLn(v+h) v := ; v := ; WriteLn(v+10*v) 88
v := ; h := 10*v; s := v+h; WriteLn(v+1000,,10*h,,s) Фрагменты программ На экране v := ; h := 10*v; s := v+h; WriteLn(v,,h,,s)
:= с:=34 34:=с z := f – v+990 Нужно иметь в виду, что слева от знака := может стоять только переменная величина, но не число и не выражение. Можно писать с:=34, но нельзя писать 34:=с Можно писать z := f – v+990, f – v+990 := z но нельзя писать f – v+990 := z. Оператор присваивания устроен так, что сначала он смотрит или вычисляет, какое значение имеет правая часть, а затем присваивает это значение переменной, стоящей в левой части. Нет смысла присваивать значение числу или выражению.
Обратите внимание. d+2d 3d d Когда ученик видит выражение (например, d+2d ), он не обязательно его вычисляет. Он может его преобразовать или упростить (получив 3d ). Компьютер же, видя выражение, сначала его, может быть, и упростит, но затем обязательно вычислит. А для этого он должен знать численные значения входящих в него величин (в данном случае это величина d ).
y:=a+b+1 ab Итак, вычисляя правую часть оператора присваивания (например, y:=a+b+1 ), компьютер должен обязательно заранее знать, чему равны переменные, из которых эта правая часть состоит (в нашем случае это a и b). Ответственность за это знание лежит полностью на программисте. Пусть забывчивый программист записал такой фрагмент:... а:=10; y:=a+b+1... b... а:=10; y:=a+b+1..., нигде в программе не придав b никакого значения.
a+b+1 b b b При вычислении выражения a+b+1 компьютер не будет знать, чему равно b. В такой ситуации разные языки программирования поступают по-разному. Некоторые просто отказываются вычислять выражения, другие подставляют вместо b нуль, Паскаль же иногда может поступить довольно вредно: вместо b он подставит случайное значение и получит, например, результат равным
Подведём итог. := Оператор присваивания состоит из знака присваивания :=, слева от которого пишется переменная, а справа – число, переменная или выражение. При выполнении оператора присваивания компьютер «в уме» (т.е. ничего не показывая на мониторе) вычисляет правую часть и присваивает вычисленное значение переменной, стоящей в левой части.
Задание. t k:=1+2; s:=2*k; t:=6 – s Какое значение будет присвоено переменной t после выполнения фрагмента k:=1+2; s:=2*k; t:=6 – s ?
Используемая литература 1. Лукин Н.С. Турбо-Паскаль 7.0. Самоучитель для начинающих – 2-е изд., испр. И допол. – М.: «Диалог-МИФИ», – 400 с.