home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d123456 / STR_BIT.ZIP / 16 / PRIM / MATRGG.PAS < prev    next >
Pascal/Delphi Source File  |  2001-06-19  |  1KB  |  46 lines

  1. program MatrDemo;
  2. {$F+,R+}
  3.  uses  StrBit16;
  4.  Label est_bstr, end_p, N_CK;
  5.  var M: array [1..78] of PStr_Bit;
  6.      Rez_s, NameRez : string;
  7.      Rx, Ry, i, stolb, St : integer;
  8.      Prom : pointer;   FileRez : text;
  9. begin             { Äß¡«ó¡«Ñ Γѽ« »p«úpá¼¼δ }
  10.  Writeln('Åp«úpἼᠻαÑ«íα-∩ ¼áΓα¿µ »« á½ú«α¿Γ¼π âáπßßá-å«αñá¡á');
  11.  Writeln('ÇóΓ«α : æѼѡ«ó é.ï. éÑαß¿∩ 3.1 «Γ 19.06.01 ú.');
  12.  write('éóÑñ¿ΓÑ αẼÑα¡«ßΓ∞ ¼áΓα¿µδ (ò Y): ');
  13.  readln ( Rx, Ry );
  14.  Write ('ê¼∩ Σá⌐½á αѺπ½∞ΓáΓá:  ');
  15.  Readln(NameRez);
  16.  For i := 1 to Ry do begin
  17.    M[i] := New(PStr_Bit, Init(Rx));
  18.    write('éóÑñ¿ΓÑ ßΓ᫬π', i:2, '  ');  readln ( rez_s );
  19.    M[i]^.Init_Sim (Rez_S);
  20.                      end;
  21.   Stolb:= 0;  St := 1;
  22.   Assign(FileRez,NameRez);
  23.   Rewrite(FileRez);
  24.    For i := 1 to Ry do
  25.      Writeln(FileRez, M[i]^.Val_sim(SizeOf(Rez_S)-1));
  26. N_CK:
  27.    repeat
  28.      For i := St to Ry do
  29.       If M[i]^.GetBit(stolb) = bt1 then begin
  30.          Prom := M[i];  M[i] := M[St];  M[st] := Prom;
  31.          goto est_bstr                 end;
  32.    inc (stolb);
  33.    until stolb >= Rx;
  34.    goto end_p;
  35. est_bstr:
  36.   for i := 1 to Ry do
  37.    If (M[i]^.GetBit(stolb) = bt1) and (i<>St) then
  38.      M[i]^.Mod2(M[St]);
  39.    writeln (FileRez, 'Φáú',St:3);   inc(St);
  40.    For i := 1 to Ry do
  41.      Writeln(FileRez, M[i]^.Val_sim(SizeOf(Rez_S)-1));
  42.  Goto N_CK;
  43.  end_p: For i := 1 to Ry do  Dispose(M[i],Done);  {Äßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿}
  44.  Close(FileRez);
  45.  writeln('¬«¡Ñµ «ípáí«Γ¬¿');
  46. end.