Помогите, пжлста!
Переставить столбцы двумерного массива а[n,n]в порядке возрастания элементов 2-й строки. Использовать метод шелла.
Я уже не знаю к кому обратиться. Буду очень признателен за помощь...
Цитата:
Originally posted by 13pm
ТОварищи программёры. Требуется помощь. НУжно написать следующую программу в дельфи:
Переставить столбцы двумерного массива а[n,n]в порядке возрастания элементов 2-й строки. Использовать метод шелла.
Я уже не знаю к кому обратиться. Буду очень признателен за помощь...
ТОварищи программёры. Требуется помощь. НУжно написать следующую программу в дельфи:
Переставить столбцы двумерного массива а[n,n]в порядке возрастания элементов 2-й строки. Использовать метод шелла.
Я уже не знаю к кому обратиться. Буду очень признателен за помощь...
Блин ты объесняй че те надо подробней...
Как я понимаю в строке символы сидят такиеже как в массиве,и тебе надо выставить их в массиве,так же как в строке...
Я правильно понял?
Короче лучше приведи конкретный код
Цитата:
Originally posted by Dstr
Короче лучше приведи конкретный код
Короче лучше приведи конкретный код
Ну допустим дана матрица 2 на 2:
1 2
3 1
После переставления элементов должна получится матрица: 2 1
1 3
Вот. Конкретный код привести не могу, тык кык его у меня нет. Есть только код метода Шелла. Потому что к кому я не обращался делали удивлённые лица типа "штоещёзаметодшелла?". Если надо будет-выложу...
procedure Sorting(Down: boolean; var Data: Variant);
var
Skach, m, n: integer;
St: boolean;
Tmp: Variant;
begin
Skach := VarArrayHighBound(Data, 1) - 1;
while Skach > 0 do
begin
Skach := Skach div 2;
repeat
St := True;
for m := 0 to VarArrayHighBound(Data, 1) - 1 - Skach do
begin
n := m + Skach;
if (Down and (Data[n] < Data[m]))
or ((not Down) and (Data[n] > Data[m])) then
begin
Tmp := Data[m];
Data[m] := Data[n];
Data[n] := Tmp;
St := False;
end;
end;
until St;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
A: Variant;
i: integer;
begin
A := VarArrayCreate([0, Memo1.Lines.Count - 1], varVariant);
for i := 0 to Memo1.Lines.Count - 1 do
A := Memo1.Lines.Strings;
Sorting(True, A);
for i := 0 to Memo1.Lines.Count - 1 do
Memo1.Lines.Strings := A;
end;
Честно говоря я с многомерными масивами не работал,но недавно я случайно вычитал статейку,где мне все разтолковали...А функции я привожу из статьи,от куда я ее взял,нескажу,если скажу нашу лавочку быронько поприкроют извини но вежать я в нее не буду,мне надо вычитать блин про используемые функции,время много потеряю,(я ща над другим проектом работаю...)
Спасиба, если так!
Цитата:
Originally posted by 13pm
Эт типа уже готовая программа?
Спасиба, если так!
Эт типа уже готовая программа?
Спасиба, если так!
Эта типа статья из DelphiWorld
Я вообще в отчаинье уже...