Логотип Автор24реферат
Задать вопрос
%
уникальность
не проверялась
Решение задач на тему:

Например у нас такая программа где i = 2

уникальность
не проверялась
Аа
2466 символов
Категория
Информатика
Решение задач
Например у нас такая программа где i = 2 .pdf

Зарегистрируйся в 2 клика в Кампус и получи неограниченный доступ к материалам с подпиской Кампус+ 🔥

Условие

Например у нас такая программа, где i = 2, n = 10 While i * i <= n - это цикл пока выполняется условие i * i <= n Begin i = i + 1; End;

Нужно полное решение этой работы?

Ответ

2 3 2003

Решение

Потяни, чтобы посмотреть
Подставляем i = 2, n = 10 (смотрим куда указывает стрелка туда и подствляем)
2 * 2 <= 10 да меньше значит цикл пока не прерывается и выполняем следующую строку:
i = i + 1 = 2 + 1 = 3; i становится равно 3 запоминаем
Подставлем в условие i * i <= n число 3
3 * 3 <= 10 да 9 меньше 10 значит цикл не прерывается строка ниже выполняется
i = i + 1 = 3 + 1 = 4; i становится равно 4 запоминаем
Подставлем в условие i * i <= n уже число 4
4 * 4 <= 10 нет 16 > 10 условие не выполняется цикл прерывается
В нашей программе это означает что этот участок кода будет выполняться пока i*i не станет больше n
var
i, n: integer;
begin
write('Введите число: ');
readln(n);
i := 2;
while i*i<=n do
begin
if n mod i = 0 then
begin
write(i, ' ');
n := n div i;
end
else
inc(i);
end;
if n > 1 then
write(n);
end.
Когда i*i станет больше n цикл прервется и будет выполняться
следующий код за этим блоком
While i * i <= n это начальное условие, если даже мы сразу введем число 3, которое сразу не удовлетворит это условие (2 * 2 <= 3)
То мы ее все равно в конце выведем, вот тут:
if n > 1 then
write(n);
то есть это условие в самом начале программы должно в первый раз обязательно выполниться, если мы даже введем числа больше 3.
Далее по ходу цикла While i * i <= n
n будет меняться (вот здесь n := n div i), а значит и критерий условия будет меняться.
Например число n = 18;
Проверим саму программу с этим примером начнем программу со строчки с while i*i<=n
2 * 2 <= 18 да меньше значит выполняем:
If 18 mod 2 = 0 да равно 0 значит выводим первый множитель 2
И значит еще меняется и само n = n div i = 18 div 2 = 9 значит n = 9
Возвращаемся в цикл while:
2 * 2 <= 9 вот n поменялся стал равным 9 , условие выполняется
If 9 mod 2 = 0 не равно 0 значит выолним inc(i) i = i + 1 = 2 + 1 = 3
Возвращаемся в цикл while:
3 * 3 <= 9 равно
If 9 mod 3 = 0 да равно 0 значит выводим второй множитель 3
И значит еще меняется и само n = n div i = 9 div 3 = 3 значит n = 3
Возвращаемся в цикл while:
3 * 3 < = 3 не равно цикл while прерывается
Переходим к строке
if n > 1 then
write(n); n в конце у нас оставался равным 3 его и выводим
Ответ: 2 3 3
50% задачи недоступно для прочтения
Переходи в Кампус, регистрируйся и получай полное решение
Получить задачу
Больше решений задач по информатике:
Все Решенные задачи по информатике
Закажи решение задач
Оставляя свои контактные данные и нажимая «Найти работу», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.

Наш проект является банком работ по всем школьным и студенческим предметам. Если вы не хотите тратить время на написание работ по ненужным предметам или ищете шаблон для своей работы — он есть у нас.