Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
К. Поляков, 2009-2013
Тема: Оператор присваивания в языке программирования1.
Что нужно знать:
for i:=1 to N do begin
{ что-то делаем }
end;
while { условие } do begin
{ что-то делаем }
end;
Определите значение переменной c после выполнения следующего фрагмента программы.
a := 5;
a := a + 6;
b := a;
c := a 2*b;
Решение:
a |
b |
c |
|
? |
? |
? |
a |
b |
c |
|
? |
? |
? |
|
a := 5; |
5 |
a |
b |
c |
|
? |
? |
? |
|
a := 5; |
5 |
||
a := a + 6; |
11 |
a |
b |
c |
|
? |
? |
? |
|
a := 5; |
5 |
||
a := a + 6; |
11 |
||
b := a; |
11 |
a |
b |
c |
|
? |
? |
? |
|
a := 5; |
5 |
||
a := a + 6; |
11 |
||
b := a; |
11 |
||
c := a 2*b; |
33 |
Возможные ловушки и проблемы:
|
Определите значение переменной c после выполнения следующего фрагмента программы.
a := 40;
b := 10;
b := - a / 2 * b;
if a < b then
c := b - a
else
c := a - 2 * b;
Решение:
a |
b |
c |
|
? |
? |
? |
|
a := 40; b := 10; |
40 |
10 |
b := - a / 2 * b;
не забываем, что умножение и деление имеют равный приоритет, и в такой цепочке сначала выполнится деление, а потом умножение
b := - (40 / 2) * 10 = - 20 * 10 = - 200
a |
b |
c |
|
? |
? |
? |
|
a := 40; b := 10; |
40 |
10 |
|
b := - a / 2 * b; |
-200 |
Возможные ловушки и проблемы:
|
В результате выполнения фрагмента программы
while n < > 0 do begin
write ( 2*(n mod 10)+1);
n := n div 10;
end;
на экран выведено число 13717. Укажите все числа, которые могли находиться в переменной n до выполнения этого цикла.
Решение (вариант 1, аналитический):
1 3 7 17
1 3 7 1 7
13 7 17
13 7 1 7
1 3 7 17 0 1 3 8
1 3 7 1 7 0 1 3 0 3
13 7 17 6 3 8
13 7 1 7 6 3 0 3
Возможные ловушки и проблемы:
|
Решение (вариант 2, перебор, М.Н. Мамчур, УГАТУ):
Исходная цифра |
n mod 10 |
2*(n mod 10)+1 |
0 |
0 |
1 |
1 |
1 |
3 |
2 |
2 |
5 |
3 |
3 |
7 |
4 |
4 |
9 |
5 |
5 |
11 |
6 |
6 |
13 |
7 |
7 |
15 |
8 |
8 |
17 |
9 |
9 |
19 |
1 3 7 1 7
1 3 7 17
13 7 17
13 7 1 7
0 1 3 0 3
0 1 3 8
6 3 8
6 3 0 3
a := 3 + 8*4;
b := (a div 10) + 14;
a := (b mod 10) + 2;
a := 1819;
b := (a div 100)*10+9;
a := (10*ba) mod 100;
a := 42;
b := 14;
a := a div b;
b := a*b;
a := b div a;
x := 5;
y := 7;
t := x;
x := y mod x;
y := t;
а :=6*12 + 3;
b :=(a div 10)+ 5;
a :=(b mod 10)+ 1;
x := 336
У := 8;
x := x div y;
y := х mod у;
а :=1686;
b :=(a div 10) mod 5;
а := а - 200*b;
х := 11;
у := 5;
t := y;
у := х mod у;
x := t;
у := у + 2*t;
х := 19;
у := 3;
z := у*2;
у := х mod у;
х := х - z;
у := у + z;
х := 13;
у := 3;
z := x;
x := z div у;
у := х;
while n <> 0 do begin
write ( 2*(n mod 5 + 3) );
n := n div 10;
end;
на экран выведено число 10614. Какое число хранилось до этого в переменной n, если известно, что все цифры в нем нечетные?
a := -5;
b := 5 + 7 * a;
b := b / 2 * a;
a := 5;
b := 5 - 3 * a;
b := b / 2 * a;
a := 5;
b := 5 + 5 * a;
b := b / 2 * a;
a := 7;
b := 7 + 3 * a;
b := b / 2 * a;
a := 100;
b := 30;
a := a b*3;
if a > b then
c := a b
else c := b a;
a := 2468;
b := (a mod 1000)*10;
a := a div 1000 + b;
a := 6;
b := 15;
a := b a*2;
if a > b then
c := a + b
else c := b a;
a := -5;
b := 14;
b := b + a*2;
if a > b then
c := a + b
else c := b a;
a := -5;
b := 3;
a := a - b*2;
if a > b then
c := b - a
else c := a b;
a := -5;
b := -3;
a := a - b*3;
if a > b then
c := b + a
else c := a b;
a := -2;
b := -3;
a := b + a*3;
if a < b then
c := a - b
else c := b a;
a := 40;
b := 10;
b := a - 2*b;
if a < 2*b then
c := a
else c := b;
a := 120;
b := 100;
a := a + b / 2;
if b < a / 2 then
c := b + a
else c := b + a / 2;
S:=1; i:=1;
while i < 5 do begin
S := S + i*(i+1);
i := i + 1;
end;
S:=0; i:=7;
while i > 1 do begin
S := S + i div 2;
i := i - 1;
end;
P:=1; i:=3;
while i <= 9 do begin
P := P * (i div 3);
i := i + 1;
end;
a:= 7;
a:= a - 4;
b:= -a;
c:= -a + 2*b;
a:= 5;
a:= 12 a*a;
b:= -a;
c:= 10*a - b;
x:= 2.5E+02; { 2.5E+02 = 2.5·10+02 = 250}
x:= x + 0.5E+02; { 0.5E+02 = 0.5·10+02 = 50}
y:= -x;
c:= -2*y - x;
m:= 67;
m:= m + 13;
n:= m/4 m/2;
c:= m - n;
x:= 8 + 2*5;
y:= (x mod 10) + 14;
x:= (y div 10) + 3;
c:= x - y;
a := 30;
b := 6;
a := a / 2 * b;
if a > b then
c := a - 3 * b
else c := a + 3 * b;
a := 30;
b := 6;
a := a / 5 * b;
if a > b then
c := a - 4 * b
else c := a + 4 * b;
a := 6*12 + 3;
b := a div 10 + 5;
a := b mod 10 + 1;
c := a*a + b*b a / 2 * b;
a := 30;
b := 14;
a := a 2 * b;
if a > b then
c := b + 2 * a
else
c := b - 2 * a;
a := 40;
b := 6;
a := a * 3 / b;
if a > b then
c := a + 5 * b
else
c := a - 5 * b;
a:= 30;
b:= 6;
a:= a * 3 / b;
if a < b then
с:= 2*a - 10 * b
else
с:= 2*a + 10 * b;
a:= 30;
b:= 6;
a:= a * 3 / b;
if a > b then
с:= 2*a - 5*(b+2)
else
с:= 2*a + 5*(b+2);
n := 1;
s := 0;
while n <= 101 do begin
s := s + 7;
n := n + 1
end;
n := 4;
s := 0;
while n <= 8 do begin
s := s + 15;
n := n + 1
end;
n := 0;
s := 512;
while s >= 0 do begin
s := s - 20;
n := n + 1
end;
n := 14;
s := 0;
while n <= 18 do begin
s := s + 25;
n := n + 1
end;
a:= 30;
b:= 6;
a:= a/5 (b 3);
if 2*a > b then
с:= a - 5*b + 2;
else
с:= a + 5*b + 2;
1 Здесь рассматривается только язык Паскаль, который является наиболее распространенным в школах России.
2 Источники заданий:
Демонстрационные варианты ЕГЭ 2004-2013 гг.
Тренировочные варианты МИОО.
Гусева И.Ю. ЕГЭ. Информатика: раздаточный материал тренировочных тестов. СПб: Тригон, 2009.
Крылов С.С., Лещинер В.Р., Якушкин П.А. ЕГЭ-2010. Информатика. Универсальные материалы для подготовки учащихся / под ред. В.Р. Лещинера / ФИПИ. М.: Интеллект-центр, 2010.
Якушкин П.А., Ушаков Д.М. Самое полное издание типовых вариантов реальных заданий ЕГЭ 2010. Информатика. М.: Астрель, 2009.
М.Э. Абрамян, С.С. Михалкович, Я.М. Русанова, М.И. Чердынцева. Информатика. ЕГЭ шаг за шагом. М.: НИИ школьных технологий, 2010.
Самылкина Н.Н., Островская Е.М. ЕГЭ 2011. Информатика. Тематические тренировочные задания. М.: Эксмо, 2010.
17 http://kpolyakov.spb.ru