Страница 1 из 1

Сума матриц - это просто ?

Добавлено: 25 май 2010, 22:35
eva.t
Приветики ))
помогите пожалуйста - очень много надо сделать, а я никак не могу разобраться...
завал..
уже башка не соображает...
мне нужно написать казалось бы простую прогу - есть два двумерных массива, нужно написать процедуры : лосования ( создания массива случайным выбором) , которая покажет его на экран, но а потом еще вызвать функцию ( или процедуру) суммы двух массивов ( я так понимаю, это как бы две копии одного массива) и умножения...

но все строго за "правилами" - нужно реализовать уже данное меню...
и я не совсем могу понять как вызивать эти функции...
помогите пожалуйста...

меня есть еще один вопрос, но такой,что даже стыдно на форуме спрашивать :-[
ведь это матрици - кажись простое =( нарыла прогу с первой листы,которую еще не сдала.. и застряла..
где-то что-то упустила.. а ведь дальше все в файлах и графике уже решать =\ а есть только неделя...

так вот, я написала (почти написала прогу)..
нужно умножить и додать две матрицы... но все строго за меню главной функции..
я не могу понять как сделать,чтобы вызвать ф-ю лосовых (случайных) чисел.. но чтобы потом этот массив использували остальные....

и например,почему при вызове есть (а,а,с,н)...
не мог понять как задекларировать - компилятору не нравиться...

Код: Выделить всё

[PASCAL]        Program tablica;
uses Crt;
const n=10;

  type tab = array [1..n, 1..n] of integer;

  var i,j,k: integer;
      s:integer;
      a,c:tab;


 procedure losujTab (var a : tab; n:integer);
   var i,j : integer;
   begin
   Randomize;
     for i:=1 to n do
       for j:=1 to n do
         a[i,j] := Random (10);
         writeln (a [i,j]:5);
 end;




 procedure wypiszTab ( a: tab; n:integer);
  var i,j : integer;
  begin
    writeln ( ' TABLICA ');
    writeln;
    write ('     |');
    for i:=1 to n do write (i:5);
    writeln;
    write ('     |');
    for i:=1 to n do  write ('-----');
    writeln;
    for j:=1 to n do
      begin
        write (j:5,'|');
        for i:=1 to n do write (a[i,j]:5);
        writeln;
      end;
  end;


 procedure dodajTab (a: tab; c: tab; n:integer);
   var i,j: integer;
   begin
   for i:=1 to n do
       for j:=1 to n do
         begin
          c[i,j] := a[i,j]+ a[i,j];
          Writeln (c [i,j]);

   end;
   end;


 procedure mnozTab (a: tab; c: tab; n:integer);
   var i,j: integer;
   begin
   for i:=1 to n do
       for j:=1 to n do
         begin
          c[i,j] := a[i,j]*a[i,j];
          Writeln (c [i,j]);

   end;
   end;


begin



  losujTab ( a , n);
  Writeln ('Wylosowane elementy tablicy : ');
  wypiszTab (a,n);
  dodajTab (a,a,c,n);
  Writeln ('Suma: ');
  wypiszTab (c,n);
  mnozTab(a,a,c,n);
  Writeln ('Iloczyn: ');
  wypiszTab (a,n);
  Write ('Nacisnij klawisz Enter');
  Readln
end.[/PASCAL]
вот то что я пробовала писать...