Страница 1 из 1

Pascal - Вычислить НОД!

Добавлено: 10 сен 2008, 19:09
Dimo4ik
Вычислить с - наибольший общий делитель натуральных чисел a и b

Помогите плз...

Re: Pascal - Вычислить НОД!

Добавлено: 10 сен 2008, 19:33
Alex_Burn
[Syntax='Pascal']
program nod;
uses crt;
var a,b:longint;

function NOD(x,y:longint):longint;
begin
if x<>0 then NOD:= NOD(y mod x,x) else NOD:= y;
end;

Begin
Clrscr;
Writeln('Введите a и b: ');
Write('a = '); Readln(a);
Write('b = '); Readln(b);
Writeln('НОД ',a,' и ',b,' = ', NOD(a,b));
Readkey;
End.
[/Syntax]

Re: Pascal - Вычислить НОД!

Добавлено: 10 сен 2008, 23:11
Dimo4ik
function NOD(x,y:longint):longint; - Эту строку можно как нибудь заметить?

И паскаль у меня тупит...
Да...Скиньте ещё плз нормальный Паскаль 7.0 (Dimon9107@yandex.ru)
Или ссылочку выложите.

Re: Pascal - Вычислить НОД!

Добавлено: 11 сен 2008, 08:56
Serge_Bliznykov
лучше заменить первую строчку - вместо program nod; напишите,
например,
program NodFind;
ну, или вообще можно выкинуть эту строку. По стандарту Паскаля она обязательна,
но TurboPascal скушает и так... :-)


Alex_Burn, паскаль не допускает одинаковых идентификаторов!
Даже если это идентификатор программы ;-)

Re: Pascal - Вычислить НОД!

Добавлено: 11 сен 2008, 09:15
Oleg_Rus
также есть метод через while. т.е. пока а или b больше 0, то выполняй деление а на бэ... что-то в этом роде. (метод архимеда, что ли называется)

Re: Pascal - Вычислить НОД!

Добавлено: 11 сен 2008, 15:42
Alex_Burn
Serge_Bliznykov писал(а): Alex_Burn, паскаль не допускает одинаковых идентификаторов!
Даже если это идентификатор программы ;-)


Извиняюсь. :(

Re: Pascal - Вычислить НОД!

Добавлено: 11 сен 2008, 17:31
Dimo4ik
Ды я заметил это!
Мне бы вот точно узнать метод Архимеда?!
Нужно просто без функции как то сделать...

Re: Pascal - Вычислить НОД!

Добавлено: 11 сен 2008, 19:29
Dimo4ik
Всё народ...во всём разобрался.
Благодарю всех за помошь!