Вопрос задан 20.07.2023 в 21:01. Предмет Информатика. Спрашивает Букал Елизавета.

Напишите программу на языке Паскаль, которая будет вычислять наибольший общий делитель для двух

целых чисел а) с помощью repeat б) с помощью while
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Котельников Артём.

а)

var a,b:integer;

begin

read(a,b);

repeat

if a>b then

a:=a-b

else

b:=b-a;

until (a=b);

write(a);

end.

б)

var a,b:integer;

begin

read(a,b);

while (a<>b) do

if a>b then

a:=a-b

else

b:=b-a;

write(a);

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для вычисления наибольшего общего делителя (НОД) двух целых чисел можно использовать алгоритм Евклида. Этот алгоритм основан на идее того, что НОД двух чисел не изменится, если большее число заменить на остаток от деления на меньшее число. Этот процесс повторяется до тех пор, пока одно из чисел не станет равным нулю. Затем НОД будет равен ненулевому числу, которое останется.

Давайте реализуем программу на языке Паскаль, используя оба варианта циклов: repeat и while.

а) Реализация с помощью repeat:

pascal
program GCD_With_Repeat; var a, b: Integer; function GCD(a, b: Integer): Integer; begin while b <> 0 do begin a := a mod b; a := a + b; b := a - b; a := a - b; end; Result := a; end; begin WriteLn('Введите два целых числа для вычисления НОДа:'); ReadLn(a, b); WriteLn('Наибольший общий делитель (НОД): ', GCD(abs(a), abs(b))); end.

б) Реализация с помощью while:

pascal
program GCD_With_While; var a, b: Integer; function GCD(a, b: Integer): Integer; var temp: Integer; begin while b <> 0 do begin temp := b; b := a mod b; a := temp; end; Result := abs(a); end; begin WriteLn('Введите два целых числа для вычисления НОДа:'); ReadLn(a, b); WriteLn('Наибольший общий делитель (НОД): ', GCD(a, b)); end.

Обе программы работают одинаково и будут запрашивать у пользователя ввод двух целых чисел, после чего вычислят и выведут на экран наибольший общий делитель (НОД) с помощью алгоритма Евклида.

0 0

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

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

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

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