Матрица: перестановка строк / столбцов, поиск среднего арифметического положительных / отрицательных элементов - Turbo Pascal

Формулировка задачи:

Написать программу, которая в матрице А(9 строк и 9 столбцов) осуществляет перестановку строк, перестановку столбцов, находит среднее арифметическое положительных и среднее арифметическое отрицательных элементов. Работу программы оформить в виде меню: 1. Заполнение матрицы случайными числами. 2. Перестановка строк. 3. Перестановка столбцов. 4. Поиск среднего арифметического отрицательных элементов. 5. Поиск среднего арифметического положительных элементов. 6. Выход. Заполнение матрицы случайными числами в диапазоне -99..+99. Все перестановки выполнять в исходной матрице( не использовать дополнительную матрицу). После выполнения каждого пункта меню на экран должен выводиться результат и исходная матрица.

Код к задаче: «Матрица: перестановка строк / столбцов, поиск среднего арифметического положительных / отрицательных элементов - Turbo Pascal»

textual
uses crt;
var a:array [1..100,1..100] of integer;
i,j,q,w,n,e,r:integer;
procedure resultat;
var i,j:integer;
begin
writeln('Новый массив');
for i:=1 to 9 do begin
   for j:=1 to 9 do
      write(a[i,j]:4);
    writeln;
     end;
end;
procedure vivod;
var i,j:integer;
begin
writeln('Исходный массив:');
for i:=1 to 9 do
  begin
   for j:=1 to 9 do
      write(a[i,j]:4);
    writeln;
   end;
end;
procedure random;
var i,j:integer;
begin
for i:=1 to 9 do
   for j:=1 to 9 do
      a[i,j]:=random(198)-99; 
vivod;      
end;
procedure swap(var n1,n2:integer);
var b:integer;
begin
  b:=n1;
  n1:=n2;
  n2:=b;
end; 
procedure swap_col(n1,n2:integer);
var i:integer;
begin
 for i:=1 to 9 do swap(a[i,n1],a[i,n2]);
end;
procedure swap_strok(n1,n2:integer);
var j:integer;
begin
 for j:=1 to 9 do swap(a[n1,j],a[n2,j]);
end;
procedure sr_otr;
var i,j,s,k:integer;
begin
k:=0;s:=0;
for i:=1 to 9 do
  for j:=1 to 9 do
      if a[i,j]<0 then 
         begin 
             s:=s+a[i,j];
             inc(k);
          end;      
writeln('Среднее арифметическое отрицательных элементов:',s/k);          
end;
procedure sr_pol;
var i,j,s,k:integer;
begin
k:=0;s:=0;
for i:=1 to 9 do
  for j:=1 to 9 do
      if a[i,j]>0 then 
         begin 
             s:=s+a[i,j];
             inc(k);
          end;      
writeln('Среднее арифметическое положительных элементов:',s/k);          
end;
begin
clrscr;
randomize;
writeln('1. Заполнение матрицы случайными числами.');
writeln('2. Перестановка строк.');
writeln('3. Перестановка столбцов.');
writeln('4. Поиск среднего арифметического отрицательных элементов.');
writeln('5. Поиск среднего арифметического положительных элементов.');
writeln('6. Выход.');
repeat
readln(n);
if n=1 then random;
if n=2 then
  begin
        write('Какие строки поменять местами:');
        readln(e,r);
        for i:=9 downto 1 do swap_strok(e,r);
        resultat;
     end;
if n=3 then 
     begin
        write('Какие столбцы поменять местами:');
        readln(q,w);
        for i:=9 downto 1 do swap_col(q,w);
        resultat;
     end;
if n=4 then sr_otr;
if n=5 then sr_pol;      
until n=6;     
readkey;
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

7   голосов, оценка 4.000 из 5


СДЕЛАЙТЕ РЕПОСТ