Скачиваний:
3
Добавлен:
01.05.2014
Размер:
3 Кб
Скачать
☆
 program Inductive_function_1;
{----------------------------------------------------------------------------}
{                                                                            }
{             ЏаЁ¬Ґа ўлзЁб«Ґ­Ёп Ё­¤гЄвЁў­®Ј® а биЁаҐ­Ёп дг­ЄжЁЁ :            }
{        f( w ) = " ‘㬬  н«Ґ¬Ґ­в®ў ®в१Є  б ¬ ЄбЁ¬ «м­®© б㬬®© " ,        }
{ Ј¤Ґ ®в१®Є - бўп§­ п Ї®¤Ї®б«Ґ¤®ў вҐ«м­®бвм § ¤ ­­®© Ї®б«Ґ¤®ў вҐ«м­®бвЁ w. }
{     Џгбвм Ёб室­ п Ї®б«Ґ¤®ў вҐ«м­®бвм Ґбвм  w = x(1)x(2)...x(n)  Ё Їгбвм   }
{ S(k,l) = SUM ( k <= i <= l : x(i) ), Ј¤Ґ 1 <= k <= l <= n . ’®Ј¤           }
{             f(w) = max ( S(k,l) : 1 <= k <= l <= n ) .                     }
{ ”г­ЄжЁп f - ­ҐЁ­¤гЄвЁў­ . ђ бᬮваЁ¬ Ё­¤гЄвЁў­®Ґ а биЁаҐ­ЁҐ F = ( f, t ),  }
{ Ј¤Ґ                                                                        }
{             t( w ) = max ( S(j,n) : 1 <= j <= n ).                         }
{ ‘®¤Ґа¦ вҐ«м­® t(w) - Ї®вҐ­жЁ «м­л© Є®­Єг७в ⥪г饣® ४®а¤  f(w) ЇаЁ     }
{ Їа®¤®«¦Ґ­ЁЁ Ї®б«Ґ¤®ў вҐ«м­®бвЁ w .  ‚лзЁб«Ґ­ЁҐ   f Ё t :                   }
{              t ( w * x ) = max ( x, x + t(w) ),                            }
{              f ( w * x ) = max ( f(w), t(w*x) ),                           }
{              t ( $ ) = 0,   f( $ ) = MinInt.                               }
{ ‡¤Ґбм $ ®Ў®§­ з Ґв Їгбвго Ї®б«Ґ¤®ў вҐ«м­®бвм.                              }
{ €б室­ п Ї®б«Ґ¤®ў вҐ«м­®бвм зЁв Ґвбп Ё§ д ©«  INITSEQ.DAT .                }
{                                                                            }
{----------------------------------------------------------------------------}
 const MinInt = -32768;
 var   x,               { ®зҐаҐ¤­®© н«Ґ¬Ґ­в Ї®б«Ґ¤®ў вҐ«м­®бвЁ }
       y,               { y = f ( w ) }
       z  : Integer;    { z = t ( w ) }
       fin,             { input file  }
       fout : Text ;    { output file }

 begin
  Assign( fin,  'INITSEQ.DAT' );
  Assign( fout, {'INFREZ.DAT'}'' );
  Rewrite( fout );
  WriteLn( fout, 'н«Ґ¬Ґ­в:  ४®а¤: Є®­Єг७в:' );

  Reset( fin );        { L(fin)=$ }
  y := MinInt;         { y=f($) }
  z := 0;              { z=t($) }
   { inv  : y=f(L(fin)) & z=t(L(fin)) }
   { bound: length(R(fin))            }
  while not Eof(fin) do
    begin
      Read( fin, x );
      Write( fout, x : 8 );
        { ­®ўл© Є®­Єг७в : }
      if z>0 then z := z + x else z := x;
        { ­®ўл© ४®а¤ : }
      if z>y
        then { ®Ў­®ўЁвм ४®а¤ }
         begin
           y := z;
           WriteLn( fout, y : 9 )
         end
        else { ®бв ўЁвм бв ал© }
           WriteLn( fout , z : 20 );
    end { while };
    { y = f ( fin )  &  z = t( fin ) }

  WriteLn( fout, '******      Њ ЄбЁ¬ «м­ п б㬬  = ', y, '    ******' );
  Close( fin );
  Close( fout )
 end { Inductive_function_1 } .
Соседние файлы в папке Индуктивное расширение функции