Матрица

Тема в разделе "Pascal and Delphi", создана пользователем NemoI3, 16 дек 2010.

Статус темы:
Закрыта.
  1. NemoI3

    NemoI3 Гость

    Заданы две матрицы A=[1..3, 1..3], B=[1..4, 1..4]/
    Расставить в порядке возрастания элементы в каждой строке матрицы, затем получить сумму элементов последнего столбца в каждой матрице. Расстановку элементов в порядке возрастания оформить в виде подпрограммы.
    Исходные данные:

    A=((1.8, 3.4, -1.5), (3.1, 0, 2.1), (0.25, 4, 1.1));
    B=((1,0.8,2.5,-1),(2.1,0.3,3.1,1.5),(2.5,0.33,2.1,5),(6.4,1.3,0.25,1));



    Код (Text):
    Type mass1=array[1..3,1..3]of real;
    Type mass2=array[1..4,1..4]of real;
    Type mass3=array of real;

    procedure TForm1.Button1Click(Sender: TObject);

    procedure vozr(n:integer; var x:mass1);
    var i,j:integer; t:real;
    begin
    for i:=1 to n-1 do
    for j:=1 to n do
    if (x[i,j]<x[i,j+1]) then begin
    t:=x[i,j]; x[i,j]:=x[i,j+1]; x[i,j+1]:=t; end;
    end;

    var i,j,m,l:integer; v:mass1; c:mass2;
    const a1:mass1=((1.8, 3.4, -1.5), (3.1, 0, 2.1), (0.25, 4, 1.1));
    b1:mass2=((1,0.8,2.5,-1),(2.1,0.3,3.1,1.5),(2.5,0.33,2.1,5),(6.4,1.3,0.25,1));
    begin
    for i:=1 to 3 do
    for j:=1 to 3 do begin
    stringgrid1.Cells[i-1,j-1]:=floattostr(a1[j,i]);
    v[i,j]:=a1[i,j];end;

    for i:=1 to 4 do
    for j:=1 to 4 do begin
    stringgrid2.Cells[i-1,j-1]:=floattostr(b1[j,i]);
    c[i,j]:=b1[i,j] end;
    m:=3; l:=4;
    vozr(m,v);
    vozr(l,c);

    for i:=1 to 3 do
    for j:=1 to 3 do
    stringgrid1.cells[i-1,j-1]:=floattostr(v[j,i]);


    for i:=1 to 4 do
    for j:=1 to 4 do
    stringgrid2.cells[i-1,j-1]:=floattostr(c[j,i]);

    end;

    end.


    не выходит у меня правильная сортировка...подскажите где не прав?
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Проблема в сортировке тебе надо фиксировать строку и сортировать одномерный массив
    Код (Text):
    for i:=1 to n do
    //здесь сортировка одномерного массива если честно давно пользую созданные класс с быстрой сортировкой поэтому код точно не помню можешь сам в сети пузьрковую сортировку поискать но вроде так

    for j:=1 to n do
    for k:=1 to n do
    if (x[i,j]<x[i,k]) then
    begin
    t:=x[i,j];
    x[i,j]:=x[i,k];
    x[i,k]:=t;
    end;
    end;
     
  3. NemoI3

    NemoI3 Гость

    во...спасибо большое)
     
Загрузка...
Похожие Темы - Матрица
  1. fatpunk
    Ответов:
    0
    Просмотров:
    1.136
  2. нини
    Ответов:
    3
    Просмотров:
    1.744
  3. phobiaxx
    Ответов:
    1
    Просмотров:
    1.277
  4. vladis222
    Ответов:
    1
    Просмотров:
    1.285
  5. LudmilaUt
    Ответов:
    0
    Просмотров:
    1.383
Статус темы:
Закрыта.

Поделиться этой страницей