{ Деление ОДЦ на короткое. если не делится без остатка то выводит сообщение. } 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)
Комментариев нет:
Отправить комментарий