1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова (Сам и контр)
Вариант 1 Самостоятельная работа 26 ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)
Босова, Босова, Бондарева
8 класс
Автор
Босова, Босова, Бондарева

Вариант 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



Общая оценка
4.6 / 5
Другие учебники
Другие предметы