Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ ЗАДАЧА НА СОРТИРОВКУ ДВУМЕРНОГО МАССИВА

Автор: АНГЕЛ 11.06.2008 19:59

ВЗЯТЬ ДАННЫЕ ИЗ ФАЙЛА И ОТВЕТ ПОМЕСТИТЬ В ФАИЛ.
ДАН ДВУМЕРНЫЙ МАССИВ 5 НА 5. ВЫВЕСТИ ТАКИЕ ЧИСЛА КОТОРЫЕ БУДУТ МИНИМАЛЬНЫ В СТРОКЕ И МАКСИМАЛЬНЫ В СТОЛБЦЕ И НАОБОРОТ МАКСИМАЛЬНЫ В СТРОКЕ И МИНИМАЛЬНЫ В СТОЛБЦЕ.

ПОЖАЛУЙСТА ПОМОГИТЕ!!! ЗАРАНЕЕ СПАСИБО!!!

У МЕНЯ ПОЛУЧИЛОСЬ ВЗЯТЬ ИЗ ФАЙЛА, А КАК ДАЛЬШЕ Я НЕ ЗНАЮ. НЕ ПОЛУЧАЕТСЯ ОТСОРТИРОВАТЬ.

VAR F: TEXT;
I,J: INTEGER;
VAR A:ARRAY [1..5,1..5] OF INTEGER;
BEGIN
ASSIGN(F,'MASSIV.DAT');
RESET(F);
FOR I:= 1 TO 5 DO BEGIN
FOR J:= 1 TO 5 DO BEGIN
READ(F, A[I,J]);
WRITE(A[I,J]:4);
END;
WRITELN;
END;
END.

ПОМОГИТЕ!!!!!

Автор: Alеx J'Root 12.06.2008 0:23

Насколько я знаю, эти точки называются седловыми.

Program Sedl;
Uses Crt;
Var
X:array[1..5,1..5] of integer;
maxstr,minstr:array[1..5] of integer;
maxst,minst:array[1..5] of integer;
i,j:integer;
max,min:integer;
fl:boolean;
f: text;
Begin
ClrScr;
Assign(f,'MASSIV.DAT');
Reset(f);
For i:=1 to 5 do
Begin
For j:=1 to 5 do
Begin
read(f,X[i,j]);
End;

End;

for i:= 1 to 5 do
begin
max:=x[i,1];
min:=x[i,1];
for j:=2 to 5 do
begin
if x[i,j] < min then min:= x[i,j];
if x[i,j] > max then max:= x[i,j];
end;
maxstr[i]:= max;
minstr[i]:= min;
end;

for i:= 1 to 5 do
begin
max:= x[i,1];
min:= x[i,1];
for j:= 2 to 5 do
begin
if x[j,i] < min then min:= x[j,i];
if x[j,i] > max then max:= x[j,i];
end;
maxst[i]:= max;
minst[i]:= min;
end;

For i:=1 to 5 do
Begin
For j:=1 to 5 do
Begin
write(X[i,j]:4);
end;
writeln;
end;

Rewrite(f);
For i:=1 to 5 do
Begin
For j:=1 to 5 do
Begin
write(f,X[i,j]:2);
End;
writeln(f);
End;

fl:=false;
For i:=1 to 5 do
For j:=1 to 5 do
if (maxstr[i]=minst[j]) or (minstr[i]=maxst[j]) then
begin
fl:= true;
writeln;
writeln('Sedlov to4ka ');
writeln('stroka ',i);
writeln('stolbec ',j);
writeln('Zna4enie: ',X[i,j]);

writeln(f);
writeln(f,'Sedlov to4ka ');
writeln(f,'stroka ',i);
writeln(f,'stolbec ',j);
writeln(f,'Zna4enie: ',X[i,j]);

end;

if not fl then
writeln('sedlovix to4ek net.');
readln;
Close(f);
End.


Наверное, эту задачу можно написать проще и кто-то предложит другое решение, но я вижу реализацию вот так.



Прикрепленные файлы
Прикрепленный файл  Zadanie.rar ( 731 байт ) Кол-во скачиваний: 200

Автор: АНГЕЛ 12.06.2008 10:26

Спасибо!!! smile.gif