Миха : другие произведения.

Домашнее задание обхахочишься(((

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:

  {Ввести матрицю цiлих чисел вимiрнiстю 5*5, в кожному рядку знайти максимальний елемент та замiнити його на дiагональний }
  
   program p2_2;
  
   type matr=array[1..5,1..5]of integer;
  
   vector=array[1..5]of integer;
  
   var
  
   a:matr; {матриця}
  
   max:vector; {масив максимальних елементiв}
  
   ind:vector; {масив номерiв стовпчикiв,де є максим.елемент}
  
   i,j:integer; {параметри циклiв}
  
   n:integer; {вимiрнiсть матрицi}
  
  { ----- ввiд вимiрнiстi np матрицi та значень елементiв матрицi ap-----}
  
   procedure vvod(var ap:matr;var np:integer);
  
   var i,j:integer;
  
   begin
  
   write('ввiд вимiрностi матрицi n: ');
  
   readln(np);
  
   writeln('ввiд матрицi matr');
  
   for I:=1 to np do
  
   for j:=1 to np do
  
   read(ap[i,j]);
  
   end;
  
  {--- пошук максимальних елементiв та їх индексiв --------------- }
  
  procedure poisk(ap:matr;np:integer;var maxp:vector;var indp:vector);
  
   {ap-матриця,np-вимiрнiсть матрицi,maxp-масив максим. елементiв,
  
   indp-масив iндексiв стовпчикiв}
  
   var i,j:integer;
  
   begin
  
   for i:=1 to np do {перегляд рядкiв матрицi}
  
   begin
  
   maxp[i]:=ap[i,1];indp[i]:=1; {фiксацiя першого максимального елемента}
  
   for j:=1 to np do {перегляд стовпчикiв}
  
   if maxp[i]  
   begin
  
   maxp[i]:=ap[i,j]; {визначення максим. елемента та його iндексiв}
  
   indp[i]:=j; {масив iндексiв максимальних елементiв рядкiв}
  
   end;
  
   end;
  
   end;
  
   {---------------вивiд матрицi----------------------------------}
  
   procedure VyvodMatr(ap:matr; np:integer);
  
   var i,j:integer;
  
   begin
  
   for I:=1 to np do
  
   begin
  
   for j:=1 to np do {вивiд елементiв рядка матрицi}
  
   write(ap[i,j],' ');
  
   writeln; {переведення курсора на новий рядок}
  
   end;
  
   end;
  
   {------- вивiд максим. елементiв та їх iндексiв----------------}
  
   procedure VyvodVector(maxp:vector;np:integer);
  
   var i:integer;
  
   begin
  
   for i:=1 to np do
  
  writeln('В рядку ',i,' максим. елемент ',maxp[i],'ind=', ind[i]);
  
   end;
  
   {--------замiна максим.елементiв на дiагональнi --------------}
  
   procedure zamena(var ap:matr;np:integer;indp:vector);
  
   var i,j:integer; {передаються елементи i вимiрнiсть матрицi, iндекси максим. елементiв}
  
   begin
  
   for i:=1 to np do
  
   ap[i,indp[i]]:=a[i,i]; {на позицiях максим. елементiв розмiщуються дiагональнi}
  
   end;
  
   {----------- головна програма ----------------}
  
   begin
  
   writeln('Результати л.р.2_2 вар.30');
  
   vvod(a,n);
  
   writeln('задана матриця');
  
   VyvodMatr(a,n);
  
   poisk(a,n,max,ind);
  
   VyvodVector(max,n);
  
   zamena(a,n,ind);
  
   writeln('матриця пiсля замiни');
  
   VyvodMatr(a,n);
  
   end.
  
  
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"