Помощь - Поиск - Пользователи - Календарь
Полная версия: ЗАДАЧА НА СОРТИРОВКУ ДВУМЕРНОГО МАССИВА
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
АНГЕЛ
ВЗЯТЬ ДАННЫЕ ИЗ ФАЙЛА И ОТВЕТ ПОМЕСТИТЬ В ФАИЛ.
ДАН ДВУМЕРНЫЙ МАССИВ 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
Насколько я знаю, эти точки называются седловыми.

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.


Наверное, эту задачу можно написать проще и кто-то предложит другое решение, но я вижу реализацию вот так.
АНГЕЛ
Спасибо!!! smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.