Решение задач типа А9 ОГЭ по информатике

advertisement
Решение задач типа А9 ОГЭ по информатике
Тема - "Простейший циклический алгоритм, записанный на алгоритмическом языке"
Задача. Запишите значение переменной s, полученное в результате работы
следующей программы. Текст программы приведён на трёх языках
программирования.
Алгоритмический язык
алг
нач
цел s, k
s := 0
нц для k от 4 до 8
s := s + 7
кц
вывод s
кон
Бейсик
DIM k, s AS INTEGER
s=0
FOR к = 4 TO 8
s=s+7
NEXT k
PRINT s
Паскаль
Var s,k: integer;
Begin
s := 0;
for k := 4 to 8 do
s := s + 7;
writeln(s);
End.
Пояснение.
Цикл «for k := 4 to 8 do» выполняется пять раз. Каждый раз переменная s
увеличивается на 7. Поскольку изначально s = 0, после выполнения
программы получим: s = 7 · 5 = 35.
Задача. Запишите значение переменной s, полученное в результате работы
следующей программы. Текст программы приведён на трёх языках
программирования.
Алгоритмический язык
алг
нач
цел d,n
d := 6
d := d-2
нц для п от 1 до 4
d:=d+n
кц
вывод d
кон
Бейсик
DIM n,d AS INTEGER
d=6
d = d-2
FOR n = 1 TO 4
d=d+n
NEXT n
PRINT d
Паскаль
Var d,n: integer;
Begin
d := 6;
d := d-2;
For n := 1 to 4 do
d:=d+n;
Writeln(d);
End .
Пояснение.
Цикл «for n := 1 to 4 do» выполняется четыре раза. Каждый раз переменная d
увеличивается на n. Поскольку изначально s = 6 − 2 = 4, после выполнения
программы получим: d = 4 + 1 + 2 + 3 + 4 = 14.
Ответ: 14.
Задача. Запишите значение переменной s, полученное в результате
работы следующей программы. Текст программы приведён на трёх
языках программирования.
Алгоритмический язык
алг
нач
цел s, k
s := 8
нц для k от 3 до 8
s := s + 8
кц
вывод s
кон
Бейсик
Паскаль
DIM k, s AS INTEGER
s=8
FOR k = 3 TO 8
s=s+8
NEXT k
PRINT s
Var s,k: integer;
Begin
s := 8;
for k := 3 to 8 do
s := s + 8;
writeln(s);
End.
Ответ: ___________________________.
Пояснение. Итак, рассмотрим этот алгоритм, записанный на разных языках.
Вначале объявляется, что будут использованы переменные k и s
целочисленного типа
Алгоритмический язык
Бейсик
Паскаль
цел s, k
DIM k, s AS INTEGER
Var s,k: integer;
Далее переменной s присваивается значение 8.
Алгоритмический язык
Бейсик
Паскаль
s := 8
s=8
s := 8
После этого описывается цикл, где в качестве параметра выступает
переменная k, которая изменяется от 3 до 8 с шагом 1 (т. е. будет принимать
последовательно значения 3, 4, 5, 6, 7 и 8).
Алгоритмический язык
Бейсик
Паскаль
нц для k от 3 до 8
s := s + 8
кц
FOR k = 3 TO 8
s=s+8
NEXT k
for k := 3 to 8 do
s := s + 8;
Как видим, в теле цикла только одна команда s := s + 8. Т. е. эта
операция будет выполняться на каждой итерации (на каждом шаге) цикла.
И в самом конце на экран выводится значение переменной s
Алгоритмический язык
Бейсик
Паскаль
вывод s
PRINT s
writeln(s);
В теле цикла происходит увеличение значения переменной s на 8. Так
как параметр цикла увеличивается от 3 до 8 с шагом 1, то при выполнении
программы тело цикла будет выполняться 6 раз ( k будет равно 3, 4, 5, 6, 7,
8). Т. е. переменная s увеличитая на 8 * 6 = 48. А так как начальное значение
переменной s = 8 и после выполнения программы оно увеличится на 48, то в
конечном итоге значение переменной s станет равным 56.
Ответ: 56
Задача. Запишите значение переменной s, полученное в результате
работы следующей программы. Текст программы приведён на трёх
языках программирования.
Алгоритмический язык
алг
нач
цел s, k
s := 0
нц для k от 2 до 10
s := 2*s + 1
кц
вывод s
кон
Бейсик
Паскаль
DIM k, s AS INTEGER
s=0
FOR k = 2 TO 10
s = 2*s + 1
NEXT k
PRINT s
Var s,k: integer;
Begin
s := 0;
for k := 2 to 10 do
s := 2*s + 1;
writeln(s);
End.
Пояснение.
В переменную s вначале положен ноль. k - это счётчик в цикле. Составим
табличку
k
1
2
3
4
5
6
7
8
9
10
s
0
1
3
7
15
31
63
127
255
511
Ответ: 511
Download