Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Помоги построить блок схемы по коду программы


Автор: angel9630 29.4.2013, 16:24
Помогите построить блок схему к этому коду программы!пожалуйста,а то через программу не строиться.ошибку выдает(


uses crt;
const 
  nmax=20;
var 
  n:byte;    
type 
  Tmatr=array[1..nmax,1..nmax] of integer;
  procedure Vvod(var mt:Tmatr;c:string);
var 
  i,j:byte;
begin
  writeln('введите ',n*n,' элементов матрицы ',c);
  for i:=1 to n do
  for j:=1 to n do
    begin
      write('el[',i,',',j,']=');
      readln(mt[i,j]);
    end;
    clrscr;
  end;

procedure Vyvod(var mt:Tmatr;c:string);
var 
  i,j:byte;
begin
  writeln(c,':');
  for i:=1 to n do
    begin
      for j:=1 to n do
      write(mt[i,j]:5);
      writeln;
    end;
  writeln;
end;
procedure UmnMatrab(m1,m2:Tmatr;var m:Tmatr);
var 
  i,j,k:byte;
begin
  for k:=1 to n do
  for j:=1 to n do
    begin
      m[k,j]:=0;
      for i:=1 to n do
      m[k,j]:=m[k,j]+m1[k,i]*m2[i,j];
    end;
end;

procedure SumMatr(m1,m2:Tmatr;var m:Tmatr);
var
  i,j:byte;
begin
  for i:=1 to n do
  for j:=1 to n do
    m[i,j]:=m1[i,j]+m2[i,j];
end;

procedure UmnMatrba(m1,m2:Tmatr;var m:Tmatr);
var 
  i,j,k:byte;
begin
  for k:=1 to n do
  for j:=1 to n do
    begin
      m[k,j]:=0;
      for i:=1 to n do
      m[k,j]:=m[k,j]+m2[k,i]*m1[i,j];
    end;
end;

var 
  a,b,c:Tmatr;
  w:char;
begin
  clrscr;
  randomize;
  write(‘введите размер матрицы n=');
  readln(n);
  Vvod(a,'A');
  Vvod(b,'B');
  Vyvod(a,'Matrica A');
  Vyvod(b,'Matrica B');
  write('Press Enter...');
  readln;
  repeat
  clrscr;
  Vyvod(a,'Matrica A');
  Vyvod(b,'Matrica B');
  writeln('выберите действие’);
  writeln('1-сложение A+B');
  writeln('2-умножение A*B');
  writeln('3-умножение B*A');
  writeln('выход');
  write('w=');readln(w);
  case w of
   '1':begin
         SumMatr(a,b,c);
         Vyvod(c,'ответ C=A+B');
         write('Press Enter...');
         readln
       end;
   '2':begin
         UmnMatrab(a,b,c);
         Vyvod(c,'ответ C=A*B');
         write('Press Enter...');
         readln
       end;
   '3':begin
         UmnMatrba(a,b,c);
         Vyvod(c,'ответ C=B*A');
         write('Press Enter...');
         readln
       end;
  else exit;
end;
until not(w in ['1'..'3']);
end.



 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)