Паскаль

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by rubik-nerubik, 28 Dec 2007.

  1. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    Последний вопрос по паскалю:
    Есть задача:
    Code:
    program db2;
    uses crt;
    var a,b,i,k,max1,max2:integer;
    mas:array[1..100,1..100] of integer;
    begin
    clrscr;
    assign(input,'input2.txt');
    reset(input);
    assign(output,'output2.txt');
    rewrite(output);
    readln(i);
    readln(k);
    for a:=1 to i do
    for b:=1 to k do
    read(mas[a,b]);
    max1:=mas[1,1];
    max2:=mas[i,1];
    for a:=1 to i do begin
    if mas[a,a]>max1 then max1:=mas[a,a];
    if mas[a,k-a+1]>max2 then max2:=mas[a,k-a+1];
    end;
    if max1<max2 then max1:=max2;
    mas[(i div 2)+1,(i div 2)+1]:=max1;
    for a:=1 to i do begin
    writeln;
    for b:=1 to k do
    writeln(mas[a,b],' ');
    end;
    end.

    и в input.txt такое:
    3 3
    1 2 3
    4 5 6
    7 8 9

    и выводит он такое:
    4
    5
    6
    Вопрос: Как сделать так, чтобы выводил по условию:
    Дана действительная квадратная матрица.... Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементами, стоящими на пересечении этих диагоналей.
     
  2. dinar_007

    dinar_007 Мадемуазель

    Joined:
    18 Jan 2005
    Messages:
    1,019
    Likes Received:
    770
    Reputations:
    97
    Просматриваешь элементы стоящие на диагоналях, запоминаешь номер наибольшего... Потом меняешь его с элементом который по середине... Это же легко...
     
  3. dinar_007

    dinar_007 Мадемуазель

    Joined:
    18 Jan 2005
    Messages:
    1,019
    Likes Received:
    770
    Reputations:
    97
    rubik-nerubik, держи вообщем
    http://slil.ru/25357418
    :)
     
    3 people like this.