Предмет: Информатика, автор: 1M4X1M1

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

На всякий случай: имена переменных в программах у обучающихся совпадать не должны. Также следует обеспечить ДИАЛОГ с пользователем (например «Введите положительные целые – натуральные – числа», «Ввод ошибочен, повторите ввод…» и т.п.).
В программе обязательны комментарии!!!
Комментарий по ходу выполнения программы давать вразумительный.
Файл прикреплен.

Ответы

Автор ответа: Alex24241
1
Var a,b,i,nod:integer
Begin
a:=-1;
b:=-1;
//ввод первого числа
Writeln('Введите первое число');
While a<0 do
begin
readln(a);
if a<0 then writeln('Ввод ошибочен, повторите ввод первого числа');
end;
//ввод второго числа
Writeln('Введите второе число');
While b<0 do
begin
readln(b);
if b<0 then writeln('Ввод ошибочен, повторите ввод второго числа');
end;
//определение минимального числа
if a>b then i:=b else i:=a;
//перебор чисел от минимального до 0 (т.к. НОД не может быть больше минимального числа)
While nod=0 do
begin
i:=i-1;
if (a mod i = 0) and (b mod i = 0) then nod:=i;
end;
//вывод НОД
Writeln('НОД ', a,' и ', b, ' = ', nod);
end.

Alex24241: Там нужно проверку на делимость и у меньшение i местами поменять, а то когда нод является меньшее число он неверно определяется
Похожие вопросы
Предмет: Математика, автор: tonyaprudkaa
Предмет: Английский язык, автор: angelinacupa303