ребят, а кто-нить из вас изучал паскаль?
можете мне помочь решить задачу?
я как ни пытаюсь-не получается
вот собсно задача:
решить задачу, использую подпрограммы.
в тех строках матрицы А(12,14) для которых выполняется условие: К-ый элемент от начала строки равен К-му элементу от конца строки (к=1,2,3...) заменить на ноль максимальный элемент. в других строках заменить на ноль минимальный положительный элемент.
я нарешала какую-то фигню:
слабонервным не читать
Program Podprogrammu;
const RazmN=3;
RazmM=4;
type matr=array[1..RazmN,1..RazmM] of integer;
var M:matr;
i,j:byte;
min, max:integer;
p:boolean;
Procedure VVOD(var M:matr; RazmN:byte; RazmM:byte);
var i,j:byte;
BEGIN
writeln('введите матрицу',RazmN,'*',RazmM);
for i:=1 to RazmN do
begin
writeln('введите строку',i,' ');
for j:=1 to RazmM do
Read (M[i,j]);
readln;
end;
END;
Procedure VIVOD(var M:matr; RazmN:byte; RazmM:byte);
var i,j:byte;
BEGIN
writeln('полученный результат');
for i:=1 to RazmN do
begin
for j:=1 to RazmM do
write(M[i,j],' ');
writeln;
end;
END;
function PP1(var M:matr):boolean; {выполняется ли условие в итой строке}
var i,j:byte;
p:boolean;
BEGIN
p:=true; {все элементы равны}
for j:=1 to RazmM do
begin
if (M[i,j]<>M[i,RazmM-j+1]) and (p=true)
then p:=false;
end;
PP1:=P;
END;
procedure MAXel(M:matr; RazmN:byte; RazmM:byte); {максимальный элемент в строке заменяем на ноль}
var i,j,nmax:byte; {n-номер макс элемента в строке}
max:integer;
BEGIN
max:=M[i,j];
for j:=1 to RazmM do
begin
if M[i,j]>max then begin
max:=M[i,j];
nmax:=j;
end;
end;
M[i,nmax]=0;
END;
procedure MINel(M:matr; RazmN:byte; RazmM:byte); {минимальный положительный элемент в строке и замена его на ноль}
var i,j,nmin:byte;
min:integer;
f:boolean;
BEGIN
f:=false; {первый положит элемент не найден}
for j:=1 to RazmM do
begin
if (M[i,j]>0) and (f=false)
then begin
min:=M[i,j];
f:=true;
end
else begin
if (M[i,j]>0) and (f=true) and (M[i,j]<min)
then begin
min:=M[i,j];
nmin:=j;
end;
end;
end;
M[i,nmin]=0
END;
BEGIN
writeln('в тех строках матрицы А(12,14), для которых выполняется условие: К-ый элемент от начала равен К-му элементу от конца строки (к=1,2,3...) заменить на ноль максимальный элемент. В других строках заменить на ноль минимальный полож элемент.');
VVOD(M, RazmN, RazmM);
p:=PP1(M);
for i:=1 to RazmN do
begin
if p=true then MAXel(M, RazmN, RazmM)
else MINel(M, RazmN, RazmM);
end;
VIVOD(M, RazmN, RazmM);
END.