Другие языки программирования и технологии
кто может решить и кому не лень помогите с задачей по паскалю, сам плохо с двумерными массивами лажу
Варианты. Заданы две матрицы целых чисел, каждую из них обработать, используя функцию с параметрами для обработки, процедуру ввода матрицы и где необходимо процедуру вывода матрицы 2.Найти в каждой строке наибольший и наименьший элементы и поменять их с первым и последним элементами строки соответственно. ((( помогите пипец как надо )))
Вариант с тремя процедурами и двумя функциями:
program mm;
type tarray=array [1..100,1..100] of integer;
{Процедура ввода матрицы}
procedure input(var a:tarray; var N:integer);
var i,j:integer;
begin
write('Введите размер матрицы N: ');
readln(N);
writeln('Введите элементы матрицы: ');
for i:= 1 to N do
for j:= 1 to N do
begin
write('a[',i,',',j,'] = ');
readln(a[ i,j]);
end;
end;
{Процедура вывода матрицы на экран}
procedure print(const a:tarray; const N:integer);
var i,j:integer;
begin
for i:= 1 to N do
begin
for j:= 1 to N do
write (a[ i,j]:5);
writeln;
end;
readln;
end;
{Функция поиска минимума в строке k}
function FindMin(const a:tarray; const N,k:integer):integer;
var i,m:integer;
begin
m := 1;
for i := 2 to N do
if a[k,i] < a[k,m] then m := i;
FindMin := m;
end;
{Функция поиска максимума в строке k}
function FindMax(const a:tarray; const N,k:integer):integer;
var i,m:integer;
begin
m := 1;
for i := 2 to N do
if a[k,i] > a[k,m] then m := i;
FindMax := m;
end;
{Процедура обработки массива}
procedure process(var a:tarray; const N:integer);
var i,j,tmp:integer;
begin
for i := 1 to N do
begin
j := FindMax(a,N,i);
tmp := a[ i,1];
a[ i,1] := a[ i,j];
a[ i,j] := tmp;
j := FindMin(a,N,i);
tmp := a[ i,N];
a[ i,N] := a[ i,j];
a[ i,j] := tmp;
end;
end;
var a,b:tarray;
na,nb:integer;
begin
writeln('Ввод 1-й матрицы. ');
input(a,na);
writeln('Ввод 2-й матрицы. ');
input(b,nb);
process(a,na);
process(b,nb);
writeln('Преобразованная 1-я матрица: ');
print(a,na);
writeln('Преобразованная 2-я матрица: ');
print(b,nb);
end.
program mm;
type tarray=array [1..100,1..100] of integer;
{Процедура ввода матрицы}
procedure input(var a:tarray; var N:integer);
var i,j:integer;
begin
write('Введите размер матрицы N: ');
readln(N);
writeln('Введите элементы матрицы: ');
for i:= 1 to N do
for j:= 1 to N do
begin
write('a[',i,',',j,'] = ');
readln(a[ i,j]);
end;
end;
{Процедура вывода матрицы на экран}
procedure print(const a:tarray; const N:integer);
var i,j:integer;
begin
for i:= 1 to N do
begin
for j:= 1 to N do
write (a[ i,j]:5);
writeln;
end;
readln;
end;
{Функция поиска минимума в строке k}
function FindMin(const a:tarray; const N,k:integer):integer;
var i,m:integer;
begin
m := 1;
for i := 2 to N do
if a[k,i] < a[k,m] then m := i;
FindMin := m;
end;
{Функция поиска максимума в строке k}
function FindMax(const a:tarray; const N,k:integer):integer;
var i,m:integer;
begin
m := 1;
for i := 2 to N do
if a[k,i] > a[k,m] then m := i;
FindMax := m;
end;
{Процедура обработки массива}
procedure process(var a:tarray; const N:integer);
var i,j,tmp:integer;
begin
for i := 1 to N do
begin
j := FindMax(a,N,i);
tmp := a[ i,1];
a[ i,1] := a[ i,j];
a[ i,j] := tmp;
j := FindMin(a,N,i);
tmp := a[ i,N];
a[ i,N] := a[ i,j];
a[ i,j] := tmp;
end;
end;
var a,b:tarray;
na,nb:integer;
begin
writeln('Ввод 1-й матрицы. ');
input(a,na);
writeln('Ввод 2-й матрицы. ');
input(b,nb);
process(a,na);
process(b,nb);
writeln('Преобразованная 1-я матрица: ');
print(a,na);
writeln('Преобразованная 2-я матрица: ');
print(b,nb);
end.
Похожие вопросы
- ПОМОГИТЕ С ЗАДАЧАМИ В ПАСКАЛЕ
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- Помогите написать задачи в паскале!!!!
- Помогите с задачей на паскале
- Помогите плиз!!Задача в Паскале
- Помогите с задачей в паскале.
- Помогите сделать задачу на паскале.
- Помогите плизззз! задача в паскале! Дана строка символов. Группы символов, разделенные одним или несколькими пробелами
- Помогите с задачами на паскале кто может. пожалуста очень нужно...
- Помогите с задачей в паскале абс