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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2016, 21:04   #1
alexic3
Новичок
Джуниор
 
Регистрация: 13.04.2016
Сообщений: 3
По умолчанию Нахождение НОК

Если число K>=l то пишет, что попытка деления на нуль, если l>k то никаких ошибок нет. Прошу помочь, в заранее
спасибо.
Только познаю азы )

program nok;
var i,k,j,l,s,max:longint;
begin
writeln ('введите число 1');
readln (k);
writeln ('введите число 2');
readln (l);
s:=k*l;
if k>=l then k:=max else max:=l;
i:=max;
j:=k;
j:=l;

begin
if ((i mod k =0) and (i mod l =0)) then writeln ('nok=',i) else writeln (s);
if k=l then writeln (j);
end;


end.
alexic3 вне форума Ответить с цитированием
Старый 13.04.2016, 21:14   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

if k>=l then k:=max else max:=l;
наверно здесь надо немного не так.
точнее, не наверно, а наверняка.
а поскольку изначально max не задано, то оно будет =0.
значит k:=0
и далее получим (i mod k{=0}) деление на ноль!!!
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.04.2016 в 21:19.
evg_m вне форума Ответить с цитированием
Старый 13.04.2016, 21:22   #3
alexic3
Новичок
Джуниор
 
Регистрация: 13.04.2016
Сообщений: 3
По умолчанию

так я же написал, что если K>=l то оно и есть макс, или l>=k то l это макс
alexic3 вне форума Ответить с цитированием
Старый 13.04.2016, 21:25   #4
alexic3
Новичок
Джуниор
 
Регистрация: 13.04.2016
Сообщений: 3
По умолчанию

если я ошибаюсь, то как написать что max может принимать любые значения
alexic3 вне форума Ответить с цитированием
Старый 13.04.2016, 21:46   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

if k>=l then
максимальный это будет k // КАК это записать кодом? ЧЕМУ будет равен максимальный ?
else
максимальный это будет l // и как это записать кодом ?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.04.2016, 08:05   #6
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Я дико извиняюсь, но НОК вычисляется иначе.
НОК вычисляют одним из способов
1. Разложение на простые множители - как в школе.
2. Через НОД, т.к. вычисление НОД легко формализуется.
НОК
НОД
Алгоритм Евклида
Бинарный алгоритм вычисления НОД
FPaul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа в qt "Нахождение НОД, НОК" kartofaan Общие вопросы C/C++ 0 09.01.2016 16:26
нахождение НОД и НОК Spanchik Общие вопросы Delphi 5 14.12.2014 20:48
с++ нок yeah enko Помощь студентам 7 09.11.2012 15:10
нахождение НОК,немного недоработанная прога llatpoh Паскаль, Turbo Pascal, PascalABC.NET 1 06.11.2011 22:25
Нахождение НОК и НОД на ассемблере Ханако Сейсин Помощь студентам 2 09.11.2010 17:25