Вопрос задан 29.07.2023 в 17:29. Предмет Информатика. Спрашивает Горышина Вероника.

98 баллов, информатика 1)Дана последовательность операторов, вычисляющих n! (факториал числа n):

k:= 0; f:= 0; repeat f = f * k; k:= k + 1; until k = n; которая содержит пять ошибок. Найдите ошибки и их исправьте. 2)k:= 1; f:= 0; while k < n do f := f * k; k:= k + 1; 3)p:=n; while p>= 0 do begin a:=a + p mod 10; p:= p div 10 end 4)p:=n; while p>= 0 do begin a:=a + p mod 10; p:= p div 10 end
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Филимоненко Виолетта.
1)
k:= 1; f:= 1;
repeat f := f * k;
k:= k + 1;
until k > n;

2)
k:= 1; f:= 1;
while k <= n do 
 begin
 f:= f * k;
 k:= k + 1;
 end;

3)
p:=n;
while p > 0 do
begin
a:=a*10 + p mod 10;
p:= p div 10;
end;

4)
как 3)
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
  1. В данном коде есть несколько ошибок:

а) Необходимо инициализировать переменную f значением 1, чтобы корректно вычислить факториал числа.

б) Вместо f = f * k нужно записать f = f * k + 1, чтобы аккумулировать произведение.

в) Вместо k:= k + 1 нужно записать k := k + 1, чтобы инкрементировать переменную k.

г) Вместо until k = n нужно записать until k > n, чтобы выполнить нужное количество итераций.

д) Вместо repeat должно быть repeat until, чтобы цикл выполнялся, пока условие истинно.

Исправленный код:

css
k := 1; f := 1; repeat f := f * k; k := k + 1; until k > n;
  1. В данном коде тоже есть ошибки:

а) Нужно инициализировать переменную f значением 1, так как мы собираемся умножать на неё.

б) Вместо while k < n do нужно записать while k <= n do, чтобы включить в вычисление факториала число n.

Исправленный код:

arduino
k := 1; f := 1; while k <= n do begin f := f * k; k := k + 1; end;
  1. и 4) В обоих фрагментах кода ошибки связаны с некорректным условием завершения цикла.

а) Вместо while p >= 0 do нужно записать while p > 0 do, чтобы выполнить итерации до тех пор, пока число p не станет равным 0.

Исправленный код:

css
p := n; a := 0; while p > 0 do begin a := a + p mod 10; p := p div 10; end;

Обратите внимание, что в обоих случаях инициализируется переменная a, которая, предполагается, что уже определена и имеет значение 0 перед началом вычислений.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос