Показать сообщение отдельно

  #152  
Старый 22.12.2007, 02:16
Neovild
Познающий
Регистрация: 18.12.2007
Сообщений: 32
Провел на форуме:
614948

Репутация: 86
По умолчанию

Меня запарило такую фигню писать, ИМО это только для 8-9 класса лицея.
Моя шняга работает с квадратными матрицами. Порядок в матрице задается в константах.
Меня просто запарило писать такую гадость
Код:
program MATRIX;
uses crt;
const
  MAX=4;
var
  a,b,t1,t2,c1,c2:array [1..MAX,1..MAX] of integer;
  j,i,k:integer;
  key1,key2:char;
begin
  while true do begin
  clrscr;
  for j:=1 to MAX do
    for i:=1 to MAX do begin
      t1[j,i]:=0; t2[j,i]:=0; c1[j,i]:=0; c2[j,i]:=0;
    end;
  repeat
    clrscr;
    writeln('1-console input'); writeln('2-auto'); writeln('3-exit');
    key1:=readkey;
  until ((key1='1') or (key1='2') or (key1='3'));

  if key1='3' then break;
  if key1='1' then begin
    for j:=1 to MAX do begin
      for i:=1 to MAX do begin
        write('a[', j ,',' ,i ,']='); read(a[j,i]);
      end;
      writeln;
    end;
    for j:=1 to MAX do begin
      for i:=1 to MAX do begin
        write('b[', j ,',' ,i ,']='); read(b[j,i]);
      end;
      writeln;
    end;
  end;

  if key1='2' then begin
    writeln('Matrix 1');
    for j:=1 to MAX do begin
      for i:=1 to MAX do begin
        a[j,i]:=random(10); write(a[j,i]); write('   ');
      end;
      writeln;
    end;
    writeln('Matrix 2');
    for j:=1 to MAX do begin
      for i:=1 to MAX do begin
        b[j,i]:=random(10); write(b[j,i]); write('   ');
      end;
      writeln;
    end;
  end;
  writeln('                      Matrix created, press key'); key2:=readkey;

  writeln('T-Matrix 1');
  for i:=1 to MAX do begin
    j:=1;
    while j<=MAX do begin
      t1[i,j]:=a[j,i]; inc(j);
    end;
  end;
  for j:=1 to MAX do begin
    for i:=1 to MAX do
      write(t1[j,i],'   ');
    writeln;
  end;

  writeln('T-Matrix 2');
  for i:=1 to MAX do begin
    j:=1;
    while j<=MAX do begin
      t2[i,j]:=b[j,i]; inc(j);
    end;
  end;
  for j:=1 to MAX do begin
    for i:=1 to MAX do
      write(t2[j,i],'   ');
    writeln;
  end;

  writeln('                     T-Matrix created, press key'); key2:=readkey;

  writeln('Matrix 1 * Matrix 2');
  for i:=1 to MAX do
    for j:=1 to MAX do
      for k:=1 to MAX do
        c1[i,j]:=c1[i,j]+a[i,k]*b[k,j];
  for j:=1 to MAX do begin
    for i:=1 to MAX do
      write(c1[j,i],'   ');
    writeln;
  end;
  writeln('Matrix 2 * Matrix 1');
  for i:=1 to MAX do
    for j:=1 to MAX do
      for k:=1 to MAX do
        c2[i,j]:=c2[i,j]+b[i,k]*a[k,j];
  for j:=1 to MAX do begin
    for i:=1 to MAX do
      write(c2[j,i],'   ');
    writeln;
  end;
  writeln('              Increase Matrix created, press key to clear screen'); key2:=readkey;
  end;
end.
 
Ответить с цитированием