Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2016, 16:55   #1
Korban
Пользователь
 
Регистрация: 02.11.2016
Сообщений: 26
По умолчанию Квадратная матрица

Дано массив B(M,M). Сформировать массив S из суммы тех элементов столбцов, которые размещены под главной диагональю, массив P из произведений элементов на параллелях, которые лежат над главной диагональю. Полученные массивы объединить в массив С следующим образом: C (S1, S2, S3, ... ,P3, P2, P1).
Korban вне форума Ответить с цитированием
Старый 12.11.2016, 20:43   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
uses crt;
const m=3;
var b:array[1..m,1..m]of byte;
    s:array[1..m-1]of byte;
    p:array[1..m-1]of integer;
    c  :array[1..2*m-2]of integer;
procedure readdata;
var i,j:byte;
begin
 randomize;
 for i:=1 to m do
 begin
  for j:=1 to m do
   b[i,j]:=1+random(9);
  if i<m then
   begin
     s[i]:=0;p[i]:=1;c[i]:=0;c[2*i]:=0;
   end;
 end;
end;
procedure outdata;
var i,j:integer;
begin
 for i:=1 to m do
  begin
   for j:=1 to m do
    write(b[i,j]:5);
   writeln;
  end;
end;
procedure find_and_print_upper;
var i,j:byte;
begin
  for i:=1 to m do
   begin
     for j:=1 to m do
      begin
        if i-1<j then write(' ':5)
        else
         begin
          write(b[i,j]:5);
          s[j]:=s[j]+b[i,j];
         end;
      end;
     writeln;
   end;
  writeln;
  for i:=1 to m-1 do write('S[',i,'] : ',S[i]:2,'; ');
  writeln;
end;
procedure find_and_print_under;
var i,j:byte;
begin
  for i:=1 to m do
   begin
     for j:=1 to m do
      begin
        if i+1>j then write(' ':5)
        else
         begin
          write(b[i,j]:5);
          p[j-1]:=p[j-1]*b[i,j];
         end;
      end;
     writeln;
   end;
  writeln;
  for i:=1 to m-1 do write('P[',i,'] : ',p[i]:2,'; ');
  writeln;
end;
procedure merge_and_print;
var i:byte;
begin
  for i:=1 to m-1 do
   begin
     c[i]:= s[i];
     c[i+m-1]:=p[m-i];
   end;
 for i:= 1 to 2*m-2 do
  write('C[',i,']: ',c[i],'; ');
  writeln;
end;
BEGIN
 clrscr;
 readdata;
 outdata;
 writeln;writeln;
 find_and_print_upper;
 writeln;writeln;
 find_and_print_under;
 writeln;
 merge_and_print;
 readln;
END.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 13.11.2016, 00:24   #3
Korban
Пользователь
 
Регистрация: 02.11.2016
Сообщений: 26
По умолчанию

Спасибо
Korban вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Квадратная матрица zlobrik Помощь студентам 0 22.03.2015 20:46
квадратная матрица рита соломонова Паскаль, Turbo Pascal, PascalABC.NET 2 12.03.2012 18:53
Квадратная матрица (C#) Vovchik123 Помощь студентам 5 26.10.2011 00:50
Квадратная матрица anna_ Помощь студентам 8 15.12.2009 21:16