{ Деление ОДЦ на короткое. если не делится без остатка то выводит сообщение. }
function dell(delimoe,delitel:string):string;
var
res,ost,stemp:string;
i1,i2,s2,x,q,tmp:integer;
{http://rucode.blogspot.ru/}
begin {комментарии в фигурных скобках показывает выполнение для 3975/55 }
//delimoe:=edit1.Text; {3975}
//delitel:=edit2.text; {55}
i1:=length(delimoe);//количество разрядов в делимом {4}
i2:=length(delitel);//количество разрядов в делителе {2}
s2:=strtoint(delitel);
//цикл по количеству разрядов делителя дабы
//узнать какое первое число мы будем делить
for q:=1 to i2 do {2 раза выполнится}
begin
stemp:=stemp+delimoe[q];{stemp принимает значение 39} //постепенно получаем i2 количество первых цифр делимого
i1:=i1-1; {i1 становится 2}//опускаем счетчик разрядов делимого ниже
end;
{если 39<55 то берем i2+1 тобишь 3 разряд, i1 становится 1}
if strtoint(stemp)< s2 then begin stemp:=stemp+delimoe[i2+1]; i1:=i1-1; end; //сравниваем то число что взяли с делителем если меньше то
//берем еще разряд и опускаем счетчик разрядов еще на 1
{на входе в цикл имеем 397 выолнение цикла 2 раза. так как остался +1 разряд}
for x:=1 to i1+1 do //цикл по количеству не взятых разрядов
begin
{1-выполнение цикла. если 397<55 невыполняется}
{2-выполнение цикла имеем стемп=12 условие выполняется берется разряд}
if strtoint(stemp)< s2 then begin stemp:=stemp+delimoe[i1+1]; i1:=i1-1; end; //это условие для 2 и последующих выполнений цикла в роли
//стемп уже выступает частное от предыдущего расчета.
{1-выполнение тмп=7
2выолнение тмп=125/55}
tmp:=strtoint(stemp) div s2; // делим наше входное число на делитель и записываем резуль в ответ
res:=res+inttostr(tmp);
tmp:=strtoint(stemp) mod s2;
{1выполнение ост=12}
ost:=inttostr(tmp); //записали остаток теперь к нему нужно прибавить след разряд
stemp:=ost;{присвоенно значение 12} //для этого мы присваем переменной стемп наш остаток и цикл включается еще раз
//если остались заряды
end;
if strtoint(ost)<>0 then res:='печально, не делится';
result:=res;
end;
17 дек. 2012 г.
Delphi Деление ОДЦ на короткое.
Откопал свои старый исходник, код ужасен, но переписывать лень
кому нужно разберется.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий