Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Наибольший общий делитель для 3 чисел

Автор: DaNTeS 23.01.2007 15:16

В прикреплённом файле прога находящая НОД для 3 натуральных чисел введённых с клавиатуры, но работает блин не всегда, числа приходиться вводить в оределённом порядке....нитак чё введёшь сразу деление на ноль.... mega_chok.gif
Помогите плз ошибку найти, чтоб в любом порядке можно было вводить.... wacko.gif


Прикрепленные файлы
Прикрепленный файл  ZADACHA_.PAS ( 471 байт ) Кол-во скачиваний: 314

Автор: volvo 23.01.2007 15:34

Вообще-то по алгоритму Евклида должно быть так (если ты уже собрался делать это процедурой, а не функцией):

Procedure delenie(a,b:Longint; Var s1:Longint);
Begin
while (a <> 0) and (b <> 0) do

if a >= b then a := a mod b
else b := b mod a;

s1 := a + b; { <--- !!! }
end;

Тогда никак не получится НОД = 0 ...

Автор: DaNTeS 23.01.2007 15:50

Пасиб Volv give_rose.gif (а процедурой просто в школе сделать сказали)