С данной презентацией учащиеся знакомятся на пятом уроке по информатике в 9 классе при изучении языка программирования в среде Паскаль. На примере они рассматривают, как компьютер выполняет в программе оператор присваивания. Затем учащиеся пробуют определить, как оператор присваивания меняет значение переменной величины.
5 Что делает оператор присваивания с памятью.ppt
Что делает оператор присваивания с памятью.
Что делает оператор
Что делает оператор
присваивания с
присваивания с
памятью
памятью
Учитель информатики
МОУ Юрцовская СОШ Егорьевский район
Сафонова Ольга Викторовна
Что делает оператор присваивания с памятью.
Пример.
Пример.
VAR a, b , , y: Integer;
y: Integer;
Рассмотрим пример программы:
VAR a, b
BBЕЕGINGIN
a:=10;
a:=10;
b:=6;
b:=6;
y:= a+b+1;
y:= a+b+1;
WriteLn (y+200)
WriteLn (y+200)
END.
END.
В программе между BBЕЕGINGIN и ENDEND встречаются три
переменные, поэтому все они перечислены в описании VAR a,
VAR a,
b b , , y: Integer
двухбайтовые ячейки.
y: Integer. Компьютер отведет для них в памяти 3
Что делает оператор присваивания с памятью.
Работа оператора
Работа оператора
присваивания.
присваивания.
(например, y:=a+b+1
y:=a+b+1),
Выполняя оператор присваивания
a+b+1). Если
компьютер сначала смотрит на его правую часть (a+b+1
в ней встречаются переменные (в нашем случае это aa и bb ), то
компьютер перед вычислением ищет их значения в отведенных
для них ячейках памяти (и находит там 10 и 6), подставляет эти
значения в правую часть и вычисляет ее. Затем вычисленное
значение ( 17 ) компьютер записывает в ячейку памяти,
отведенную под переменную, поставленную в левой части (yy).
Таким образом, когда мы говорим «Компьютер запомнил, что
а а равно 2», мы подразумеваем «Компьютер записал в
ячейку памяти, предназначенную для аа, число 2».
Что делает оператор присваивания с памятью.
Заполнение информацией
Заполнение информацией
ячеек.
ячеек.
В самом начале выполнения паскалевской программы в ячейках
находится неизвестно что. Первым выполняется оператор
a:=10. Согласно определению оператора присваивания в
a:=10
ячейку aa будет записано число 1100 . Затем выполняется
оператор b:=6b:=6, и в ячейке bb появляется число 66. Затем
y:=a+b+1. Компьютер смотрит, что
выполняется оператор y:=a+b+1
находится в ячейках a и b, видит там 1010 и 66, подставляет их в
a+b+1, получается 1177 и записывает в ячейку yy.
выражение a+b+1
WriteLn (y+200). Компьютер
Наконец, выполняется оператор WriteLn (y+200)
заглядывает в ячейку yy, видит там 1717, вычисляет 17+200
17+200 и
выводит 221717 на экран.
Что делает оператор присваивания с памятью.
Изображение данного
Изображение данного
процесса в таблице
процесса в таблице
aa
1010
1010
1010
1010
bb
??
66
66
66
yy
??
??
1717
1717
Что видим на
экране
Что находится в ячейках памяти
Порядок исполнения
операторов
a:=1a:=1
00b:=6b:=6
y:= y:=
a+b+1
a+b+1
WriteLn
WriteLn
(y+200)
(y+200)
WriteLn встречаются выражения с
Если в скобках оператора WriteLn
переменными величинами, то Паскаль находит в памяти
значения этих величин, подставляет их в выражения,
вычисляет выражения и выводит на экран.
Задание.
Задание.
Поменяйте местами операторы b:=6b:=6 и y:= a+b+1
произойдет?
y:= a+b+1. Что
??
Что делает оператор присваивания с памятью.
Оператор присваивания меняет
Оператор присваивания меняет
значение переменной величины
значение переменной величины
Рассмотрим программу:
VAR k: Integer;
VAR k: Integer;
BBЕЕGINGIN
k:=10; WriteLn (k); k:=25; WriteLn (k); k:=4;
k:=10; WriteLn (k); k:=25; WriteLn (k); k:=4;
WriteLn (k)
WriteLn (k)
END.
END.
Запишем схематически процесс изменения информации в ячейке k:
Порядок исполнения
Что находится в ячейке
Что видим на экране
памяти
операторов
k:=10
k:=10
WriteLn (k)
WriteLn (k)
k:=k:=2525
WriteLn (k)
WriteLn (k)
k:=k:=44
WriteLn (k)
WriteLn (k)
1010
1010
2525
2525
44
44
1100
2525
44
Что делает оператор присваивания с памятью.
В процессе работы программы содержимое ячейки k
меняется. Так при выполнении оператора k:=k:=25 25 там вместо
значения 1010 появляется 2525. А куда же делось число 1010? Оно
стирается, то есть компьютер забывает его безвозвратно.
Здесь действует общий принцип всех компьютеров:
Если в какое-нибудь место памяти или
диска записывается новая информация, то
старая информация, записанная там
раньше, автоматически стирается, даже
если она кому-то и нужна.
Раз теперь вместо 1010 в ячейке k находится 2525, то оператор
WriteLn (k)
WriteLn (k)
печатает уже 2525 . Следующий оператор, k:=k:=44 запишет вместо
25 25 – – четыре, а WriteLn (k)
WriteLn (k) её напечатает.
Что делает оператор присваивания с памятью.
Переменная «меняет
Переменная «меняет
сама себя»
сама себя»
Определите, что напечатает следующая программа:
VAR f: Integer;
VAR f: Integer;
BBЕЕGINGIN
f:=30;
f:=30;
(f)(f)
END.
END.
Оператор f:=f+4
или, другими словами ff на 44.
Задания.
Задания.
Определите без компьютера, что будет напечатано при
выполнении следующих фрагментов программ:
; WriteLn
WriteLn
f:=f+4;
f:=f+4
f:=f+4 просто увеличивает число в ячейке ff на 44 ,
аа:=:=10100;0; а
WriteLn (а)а)
WriteLn (
аа:=:=10100;0; а
аа:=:=110;0;
1 ;
а:=:=10*а10*а++1 ;
а:=:=– а;
WriteLn (а)а)
a:=b – a; WriteLn (
b:=25 ;
b:=25
– а; WriteLn (
; a:=b – a;
WriteLn (аа,’ ‘,b
,’ ‘,b))
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.