PDA

Просмотр полной версии : Сортировка двумерного массива



Eldarion
03.06.2007, 15:23
Здравствуйте , помогите пожалуйста решите задачу сортировки двумерного массива по возрастанию
Дан массив [1..7,1..16] of string необходимо произвести сортировку по 7 столбцу по возрастанию, программа на Delphi

Новенький
09.06.2007, 22:03
программа написана на Паскале, но я уверен, ты без проблем переведешь её в дедльфи. Языки не очень отличаются


uses crt;
type mas=array[1..7,1..16]of string;
procedure zapolnenie(var massiv:mas);
var i,j:integer;
begin
for i:=1 to 7 do
for j:=1 to 16 do
begin
write('Введите слово в ',i,'-ой строке и ',j,'-ом столбце: ');
readln(massiv[i,j]);
end;
end;

procedure sortirovka(var massiv:mas);
var i,j,l:integer;
slovo:string;
begin
slovo:=' ';
for i:=1 to 7 do
for j:=1 to 7 do
if massiv[i,7]<massiv[j,7]
then for l:=1 to 16 do
begin
slovo:=massiv[i,l];
massiv[i,l]:=massiv[j,l];
massiv[j,l]:=slovo;
end;
end;

var massiv:mas;
i,j:integer;
begin
clrscr;
zapolnenie(massiv);
clrscr;
writeln('Отсортированный массив:');
sortirovka(massiv);
for i:=1 to 7 do
begin
for j:=1 to 16 do
write(massiv[i,j]:7);
writeln;
end;
readln;
end.
приходится вручную заполнять все элементы массива, т.к. строковый тип не может заполняться randomайзом!

somewhere
14.06.2007, 09:33
приходится вручную заполнять все элементы массива, т.к. строковый тип не может заполняться randomайзом!
Ну почему же не может, надо только немного пофантазировать.


s := '';
for x := 1 to random(12)+1 do s := s + chr(random(26) + ord('a'));

Новенький
14.06.2007, 13:40
somewhere,
ну да, можно и так, но ведь получится просто набор символов, даже не слова, хотя в задании не сказано, что это должно быть слова

ichups
14.06.2007, 21:44
а можно вообще слова в массив в соответствии с 7 столбцом сразу в отсортированном виде или расширить массив от7 до скажем 33 и использовать какую нето функцию для определения номера но для этого массива это слишком сложно