Программа для нахождения НОК в Паскале. Объясните, пожалуйста строчки, помечанные цифрами. Заранее спасибо. var n,m:integer;
i,k:integer;
delitsya:boolean; 1.
begin
write('Vvedite N: ');
readln(n);
write('Vvedite M: ');
readln(m);
if (m<>0) and (n<>0) then
begin
k:=n*m; 2
i:=k; 3
while i>0 do 4
begin
if (i mod n=0) and (i mod m=0) then 5
k:=i; 6
i:=i-1; 7
end;
writeln('NOK ',m,' i ',n,' raven ',k)
end
else writeln('Na nol delit nelzya');
readln;
end.
Ответы
Ответ дал:
1
delitsya:boolean; - видимо переменная delitsya типа boolean (значение 0 или 1)
k:=n*m; - присваиваем переменной k значение произведения n*m
i:=k; - присваиваем переменной i значение переменной k
while i>0 do - цикл, который будет выполняться пока значение i>0
if (i mod n=0) and (i mod m=0) then - если остатки отделения i mod n и i mod m равны нулю, то выполняется 2 строчки ниже с присвоением k значения i и уменьшением i на 1
Ощущение, что программа написана криво, она вообще работает?
k:=n*m; - присваиваем переменной k значение произведения n*m
i:=k; - присваиваем переменной i значение переменной k
while i>0 do - цикл, который будет выполняться пока значение i>0
if (i mod n=0) and (i mod m=0) then - если остатки отделения i mod n и i mod m равны нулю, то выполняется 2 строчки ниже с присвоением k значения i и уменьшением i на 1
Ощущение, что программа написана криво, она вообще работает?
sh432:
Спасибо. А насчёт того работает ли - это не факт. В любом случае, она не моя и в любом случае, ещё раз спасибо. Единственное, я всё равно немного не понимаю ЗАЧЕМ мы присваивает произведение.
var i,k,n,m:integer;
label syda;
begin
syda:
write('Vvedite N: ');
readln(n);
write('Vvedite M: ');
readln(m);
if (m=0) and (m=0) then goto syda else
if (m<>0) and (n<>0) then
begin
k:=n*m;
i:=k;
end;
while i>0 do
begin
i:=i-1;
end;
writeln('NOK ',m,' i ',n,' raven ',k)
end.
Вас заинтересует
10 месяцев назад
10 месяцев назад
1 год назад
1 год назад
6 лет назад
7 лет назад