tanyaandreeva728
?>

Надо с постусловием, предусловием и счетчиком

Информатика

Ответы

diana-kampoteks
// pascalabc.net 3.2, сборка 1417 от 28.03.2017 // внимание! если программа не работает, обновите версию! type   fraction=(integer,integer); function ratfact(self: array of integer): sequence of fraction;       extensionmethod; // // на основе алгоритма 78б // в кн.: агеев м.и., алик в.п., марков ю.и. // библиотека алгоритмов 51б-100б. (справочное пособие.) вып.2. // м.б "сов. радио", 1976. // // отыскание рациональных корней полиномов с целыми коффициентами. // используется предоженное дж.пеком расширение вычисления полинома // методом горнера. // ! коэффициенты полинома записываются, начиная со свободного члена ! // begin   var l: =new list< fraction> ; // вынужденное: метод иногда дает дубликаты   (var a0, var an): =(abs(self.first),abs(self.last));   for var p: =1 to a0 do begin       if a0 mod p< > 0 then continue;       for var q: =1 to an do begin           if an mod q< > 0 then continue;           var g: =self.first; (var f, var t): =(g,p);           foreach var k in self.skip(1) do begin               var r: =k*t; (f,g,t): =(f*q+r,-g*q+r,t*p);               end;           if f=0 then l.add((p,q));           if g=0 then l.,q))           end       end;       result: =l end; function redfrac(self: fraction): fraction; extensionmethod; begin   (var p,var q): =self;   var s: =sign(p*q);   (p,q): =(abs(p),abs(q));   (var a,var b): =(p,q);   while b< > 0 do begin a: =a mod b; swap(a,b) end;   result: =(s*p div a,q div a) end; function beautify(self: sequence of fraction): sequence of string;       extensionmethod; begin   result: =self.select(e-> e.redfrac).distinct.orderby(x-> x[0]/x[1]).       select(e-> e[0]+(e[1]< > 1? '/'+e[1]: '')) end; begin   readarrinteger(4).ratfact.beautify.println end. примеры 1) -36x³+3x²+14x+3 = 0   3 14 3 -36 -1/3 3/4 2) (x-1)(x+2)(x+3/5) = 0;   5x³+8x²-7x-6 = 0 -6 -7 8 5 -2 -3/5 1
Yeremeev
// pascalabc.net 3.2, сборка 1417 от 28.03.2017// внимание! если программа не работает, обновите версию! function sumd(k: integer): integer; begin  result: =0;   while k> 0 do (result,k): =(result+k mod 10,k div 10)end; function good(k,s: integer): boolean; begin  var p: =1;   while k> 0 do (p,k): =(p*(k mod 10),k div 10);   result: =p=send; begin  var n: =readinteger('n=');   var s: =sumd(n);   range(1,n-1).where(n-> good(n,end. пример n= 44 8 18 24 42

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Надо с постусловием, предусловием и счетчиком
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Murad Gushcharin
maksmi
egorstebenev6
tefdst
X2755070
Аврамец1911
mirsanm26249
achernakov
sisychev
Жуков219
lubavarif83
Svetlana1877
dream2366
Vitalik6928
M19026789436