Матрица: перестановка строк / столбцов, поиск среднего арифметического положительных / отрицательных элементов - Turbo Pascal
Формулировка задачи:
Написать программу, которая в матрице А(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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д