Вопрос задан 31.07.2023 в 01:57. Предмет Информатика. Спрашивает Касенчук Егор.

Составьте и запишите КОМПЬЮТЕРНУЮ программу на языке программирования Паскаль для решения

следующей задачи: НАЙТИ НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ (сокращённо НОД) двух целых чисел Х и Y. КРОМЕ этого, ВАША ПРОГРАММА не должна вычислять НОД, если введено хотя бы одно отрицательное число. О неправильном вводе чисел следует сообщить пользователю!!!
0 0
Перейти к ответам

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

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

PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var (x,y):=ReadInteger2('Введите через пробел два числа:');
  if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим')
  else begin
    while y>0 do (x,y):=(y,x mod y);
    Writeln('НОД=',x)
    end
end.

Примеры
Введите через пробел два числа: 14 -2
Ввод отрицательных чисел недопустим

Введите через пробел два числа: 32 76
НОД=4

2. Традиционный "школьный" код

var
  x,y,t:integer;

begin
  Write('Введите через пробел два числа: ');
  Read(x,y);
  if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим')
  else begin
    while y>0 do begin
      x:=x mod y;
      t:=x; x:=y; y:=t
      end;
    Writeln('НОД=',x)
    end
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи на языке программирования Паскаль, можно использовать следующий код:

pascal
program GreatestCommonDivisor; var X, Y, temp, remainder: integer; begin writeln('Введите два целых числа X и Y для нахождения НОД:'); readln(X, Y); if (X < 0) or (Y < 0) then begin writeln('Неправильный ввод! Введите положительные числа.'); end else begin // Найдем НОД с помощью алгоритма Евклида while Y <> 0 do begin temp := Y; Y := X mod Y; X := temp; end; // Результат будет храниться в переменной X writeln('Наибольший общий делитель (НОД) чисел X и Y: ', X); end; end.

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

0 0

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

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

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

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