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

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


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.


Похожие ответы
  1. Написал программу замены k-ой строки на l-тую строку, но программа не работает, помогите разобраться в чем причина.

  1. Дан массив из первых n натуральных чисел( т. е. произвольная перестановка из первых n натуральных чисел ). Преобразовать массив таким образом, чтобы в нем оказалась перестановка индексных номеров при приведении исходной перестановки к натуральной( решение дать без использования вспомогательного массива ).

  1. Задана матрица Б размера 7X7. Составить программу, осуществляющую перестановку элементов в каждой строке матрицы так, чтобы 1-й элемент строки поменялся с последним, 2-й с предпоследним и т.д.

  1. Никак не могу сообразить алгоритм задачи: Есть матрица(размерность любая),с неё нужно сделать вектор Х. Компоненты вектора X - среднее арифметические значения элементов i-х столбцов матрицы, в строках которой отрицательные элементы переставлены в начале, а положительные - после них. Если не сложно,объясните как отрицательные поставить в начало,а положительные после них

  1. 1.Сделать задания с использованиям процедур та функции 2. данные ввести из текстового файлу 3.матрицу и результат вывести в другой текстовый файл та на екран основной программе 4.Все данные передать в подпрограмму с помощью списка формальных/фактичных предметов. В массиве A={a1},i=1,n элемент аk вставить на место аm,а элемент с-го по аk-1 Дано:А=(1.1,2.5,3.4,-0.8,4.5),n=6,k=4,m=1.

  1. Разработать модуль программиста,содержащий следующие процедуры и функции работы с одномерным числовым массивом: ввод массива,вывод массива, поиск номера максимума и номера минимума, перестановка элементов массива с заданными номерами. Используя процедуры и функции модуля программиста, разработайте программу: даны два одномерных числовых массива одинаковой размерности. В том из них, где максимум стоит раньше минимума поменять местами максимальный и минимальный элемент.

  1. Квадратная матрица А (треугольная или симметричная) по- рядка n в целях экономии памяти задана в виде одномерного массива из (n + 1)n/2 чисел: сначала идет n элементов первой строки, затем n – 1 элементов второй строки, начиная со второго элемента, и т. д. (из последней n-й строки берется только n-й элемент).

  1. Дана матрица B[N,M]. Найти в каждой строке матрицы максимальный и минимальный элемент и поменять их местами с первым и последним элементом строки соотвественно.

  1. Нужен фрагмент программы в котором бы в матрице элементы переставлялись бы следующим образом: в первом столбце матрицы находились минимальные эл-ты строк,а в последнем-максимальные. П.с. Скиньте пожалуйста ссылку на тему где выложены программы для Паскаля.