Здравствуйте , помогите пожалуйста решите задачу сортировки двумерного массива по возрастанию
Дан массив [1..7,1..16] of string необходимо произвести сортировку по 7 столбцу по возрастанию, программа на Delphi
Сортировка двумерного массива
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
- Новенький
- Сообщения: 73
- Зарегистрирован: 01 июн 2007, 17:35
- Откуда: Чусовой (Пермский край)
- Контактная информация:
программа написана на Паскале, но я уверен, ты без проблем переведешь её в дедльфи. Языки не очень отличаются
приходится вручную заполнять все элементы массива, т.к. строковый тип не может заполняться randomайзом!
Код: Выделить всё
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айзом!
Код: Выделить всё
s := '';
for x := 1 to random(12)+1 do s := s + chr(random(26) + ord('a'));
It's a long way to the top if you wanna rock'n'roll
а можно вообще слова в массив в соответствии с 7 столбцом сразу в отсортированном виде или расширить массив от7 до скажем 33 и использовать какую нето функцию для определения номера но для этого массива это слишком сложно