Вариант 2 Самостоятельная работа 26 ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)
1. Сколько раз исполнится следующий цикл, записанный на двух языках программирования?
Ответ: цикл исполнится 1 раз, так как 12 – 2 = 10 и условие выхода из цикла выполняется.
2. Какое число будет выведено в результате работы следующей программы, записанной на двух языках программирования?
Ответ:16 (1+3+5+7)
3. В программе, записанной на двух языках программирования, поменяли местами две строки. Изменится ли результат программы? В ответе запишите результат работы каждой из программ.
Результат работы изменится. Цикл выполняется только один раз, так как k < 8 и в первой (k=3), и во второй программе (k=3).
Результат первой программы: вывод 3, результат второй программы вывод 1
4. Дополнительное задание. Используя цикл с условием окончания работы, напишите программу определения наибольшего общего делителя двух натуральных чисел.
var
a, b: integer;
begin
write('a, b > > ‘);
readln(a, b);
repeat
if a > b then a := a — b
else b := b — a
until a = b;
writeln(‘НОД = ‘, a)
end.
Окно вывода:
a, b > > 9 54
НОД = 9
a, b > > 78 12
НОД = 6
Python
a,b=map(int,input().split())
while True:
if a > b:a=a-b
else:b=b-a
if a==b:break
print(‘НОД=’,a)
1. Цикл выполнится один раз, так как после первого шага получаем $$12-2=10$$, и условие выхода из цикла выполняется.
2. В программе суммируются нечётные числа $$1+3+5+7$$:
$$1+3+5+7=16$$
3. При перестановке строк результат изменится. В обеих программах цикл выполнится только один раз, так как $$k<8$$ и в первой, и во второй программе при $$k=3$$.
Результат первой программы: $$3$$.
Результат второй программы: $$1$$.
4. НОД двух натуральных чисел можно находить вычитанием меньшего числа из большего, пока числа не станут равны.
var
a, b: integer;
begin
write(‘a, b >> ‘);
readln(a, b);
repeat
if a > b then a := a — b
else b := b — a;
until a = b;
writeln(‘НОД = ‘, a)
end.
Проверка:
$$9 \text{ и } 54 \rightarrow \text{НОД} = 9$$
$$78 \text{ и } 12 \rightarrow \text{НОД} = 6$$
a, b = map(int, input().split())
while True:
if a > b:
a = a — b
else:
b = b — a
if a == b:
break
print(‘НОД =’, a)