Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2010, 20:29   #1
amfisat
Пользователь
 
Регистрация: 16.06.2009
Сообщений: 13
По умолчанию Евклид - программа должна запрашивать у пользователя 2 числа и считать их НОД

Всем привет!
Помогите, пжлст, разобраться в алгоритме в задаче на алгоритм Евклида (отыскание НОД, не расширенный): программа должна запрашивать у пользователя 2 числа и считать их НОД. Запрашивает она до того времени, пока пользователь не введет два нуля. Вот мой псевдокод:

bol=0
пока not bol
{
Enter a
Enter b
если a != 0 and b != 0
{
gcd(a, b) //ф-ция написана, ее не надо
bol = 0
}
иначе bol = 1
}

Мне сказали, что здесь есть ошибка, но обнаружить ее пока не могу.

Спасибо за любую помощь!
amfisat вне форума Ответить с цитированием
Старый 16.09.2010, 22:34   #2
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию

эммм... на паскале будет так:
Код:
var a,b,i,k:integer;
begin
while true do
begin
readln(a,b);
if (a=0) and (b=0) then
begin
exit;
end;
if a>b then
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
for i:=1 to a do
begin
if ((a)mod(i)=0) and ((b)mod(i)=0) then
begin
k:=i;
end;
end;
write('NOD=',k);
readln;
end;
end.
но это только натуральные НОДы =)
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ
c0zak вне форума Ответить с цитированием
Старый 17.09.2010, 09:53   #3
amfisat
Пользователь
 
Регистрация: 16.06.2009
Сообщений: 13
По умолчанию

Ага спасибо!
Но мне надо, чтобы программа бесконечно спрашивала 2 числа и считала их нод (спросила-посчитала-спросила-посчитала ...), но, как только введены два нуля - остановилась. Вот мой псевдокод, но прога останавливается, даже если введен 1 ноль. Подскажите, где может быть ошибка:


bool = 0
ПОКА not bool:
ВВЕСТИ А
ВВЕСТИ В
ЕСЛИ ((a != 0) and (b != 0)):
{
gcd(a, b)
bool = 0
}
ИНАЧЕ
{
bool = 1
exit
}

Спасибо

Последний раз редактировалось amfisat; 17.09.2010 в 10:41.
amfisat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа должна вычислять количество точек на границе круга heny Помощь студентам 9 05.03.2010 11:32
Как считать числа из ячейки с учетом пробела? hostagedown Microsoft Office Excel 3 11.01.2010 01:11
Программа должна вычерчивать схему сложной электрической цепи. aiktz Помощь студентам 2 20.05.2009 09:15
Числа - считать от 00001 до 99999 JRcoker Общие вопросы Delphi 19 06.08.2008 22:43
Delphi 6 - Программа должна узнать уровень загруженности процессора Никки Общие вопросы Delphi 3 20.11.2007 19:40