Вариант 1 Самостоятельная работа 26 ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ С УСЛОВИЕМ ОКОНЧАНИЯ РАБОТЫ
ВАРИАНТ 1
1. Сколько раз исполнится следующий цикл, записанный на двух языках программирования?
Ответ: бесконечное число раз (зацикливание), так как i всегда будет не больше 21 (i :=i – 5)
2. Какое число будет выведено в результате работы следующей программы, записанной на двух языках программирования?
Цикл завершится, когда выполнится условие. А условие (3 < 8) выполняется сразу после первого входа в цикл.
Ответ: 1
3. В программе, записанной на двух языках программирования, поменяли местами две строки. Изменится ли результат работы программы? В ответе запишите результат работы каждой из программ.
Ответ: в первом случае будет выведено 24, во втором случае будет выведено 16. Результат работы программы изменится.
4. Дополнительное задание. Используя цикл с условием окончания работы, напишите программу получения и вывода в порядке убывания всех делителей данного числа.
Максимальный делитель числа (если не учитывать, что число делится само на себя) не может быть больше половины числа. В задании не указано, учитывать в перечислении делителей само число. В приведенной программе это учитывается. Делитель 1 не учитывается, т.к. любое натуральное число делится на 1.
var
n, k: integer;
begin
write(' > > ‘);
readln(n);
k := trunc(n/2);
write(‘Делители: ‘, n);
repeat
if n mod k = 0 then write(‘, ‘, k);
k := k — 1
until k < 2;
end.
Окно вывода:
> > 45
Делители: 45, 15, 9, 5, 3
> > 95
Делители: 95, 19, 5
Python
n=int(input())
k=int(n/2)
print(»,n)
while True:
if n%k==0:print(»,k)
k-=1
if k < 2:break
Выполнение
1. Цикл будет выполняться бесконечно, так как значение $$i$$ уменьшается на 5, но условие окончания не станет истинным: $$i \le 21$$ сохраняется всегда.
Ответ: бесконечное число раз.
2. Цикл завершится сразу после первого выполнения, так как условие $$3 < 8$$ истинно уже при первом входе в цикл.
Ответ: 1.
3. При перестановке строк результат изменится.
В первом случае будет выведено $$24$$, во втором случае — $$16$$.
Ответ: результат работы программы изменится: $$24$$ и $$16$$.
4. Программа для вывода делителей числа в порядке убывания:
var
n, k: integer;
begin
write(‘ >> ‘);
readln(n);
k := trunc(n / 2);
write(‘Делители: ‘, n);
repeat
if n mod k = 0 then write(‘, ‘, k);
k := k — 1
until k < 2;
end.
Пример работы программы:
$$45 \rightarrow 45, 15, 9, 5, 3$$
$$95 \rightarrow 95, 19, 5$$
В Python это можно записать так:
n = int(input())
k = n // 2
print(‘Делители:’, n)
while True:
if n % k == 0:
print(k, end=’ ‘)
k -= 1
if k < 2:
break