Сортировка двумерного массива

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Eldarion
Сообщения: 1
Зарегистрирован: 03 июн 2007, 15:18

Здравствуйте , помогите пожалуйста решите задачу сортировки двумерного массива по возрастанию
Дан массив [1..7,1..16] of string необходимо произвести сортировку по 7 столбцу по возрастанию, программа на Delphi
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

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

Код: Выделить всё

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
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):приходится вручную заполнять все элементы массива, т.к. строковый тип не может заполняться 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
Аватара пользователя
Новенький
Сообщения: 73
Зарегистрирован: 01 июн 2007, 17:35
Откуда: Чусовой (Пермский край)
Контактная информация:

somewhere,
ну да, можно и так, но ведь получится просто набор символов, даже не слова, хотя в задании не сказано, что это должно быть слова
Программирование - хорошая штука
ichups
Сообщения: 14
Зарегистрирован: 06 июн 2007, 21:57

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