Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2008, 17:45   #1
ReM
Пользователь
 
Регистрация: 22.09.2008
Сообщений: 27
По умолчанию Записи

Господа. Есть проблемка, а именно, хочется узнать каким образом можно упорядочить записи (по двум полям: Строка и Число). Если есть наглядный кодик, буду рад, если, нет то хотя бы на "пальцах" объясните.
ReM вне форума Ответить с цитированием
Старый 14.10.2008, 17:28   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Уточните что значит по двум полям. Сначало по одному, а потом по второму (если в первом есть одинаковые) или просто либо по первому, либо по второму. Можно в массив двумерный заносить и сортировать. Вот примерчик.
Код:
const
  N = 5;
type rec = record
  p1: string[2];
  p2: integer;
end;
var
  r: rec;
  i, j: integer;
  mas: array[1..N] of rec;
begin
  writeln('DANO');
  for i := 1 to N do
  begin
    mas[i].p1 := chr(random(26)+65);
    mas[i].p2 := random(100);
    writeln(mas[i].p1, '   ', mas[i].p2)
  end;
  writeln('PO STROKE');
  for i := 1 to N - 1 do
  for j := i + 1 to N do
  if mas[i].p1 > mas[j].p1 then
  begin
    r := mas[i];
    mas[i] := mas[j];
    mas[j] := r
  end;
  for i := 1 to N do writeln(mas[i].p1, '   ', mas[i].p2);
  writeln('PO CHISLY');
  for i := 1 to N - 1 do
  for j := i + 1 to N do
  if mas[i].p2 > mas[j].p2 then
  begin
    r := mas[i];
    mas[i] := mas[j];
    mas[j] := r
  end;
  for i := 1 to N do writeln(mas[i].p1, '   ', mas[i].p2);
  readln
end.
eoln вне форума Ответить с цитированием
Старый 15.10.2008, 08:50   #3
ReM
Пользователь
 
Регистрация: 22.09.2008
Сообщений: 27
По умолчанию

Упорядочить список по алфавиту по возрастанию номеров групп (вот такое задание)... ...но я думаю далше сам смогу разобраться. Спасибо за пример.
ReM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи Rio309 Помощь студентам 1 15.03.2008 22:23
Записи Xeon332 Помощь студентам 5 12.01.2008 23:17
Записи RECREATOR Помощь студентам 3 25.12.2007 10:58
записи 11111 Паскаль, Turbo Pascal, PascalABC.NET 2 29.11.2007 15:28
Записи zzzzz Помощь студентам 1 25.05.2007 16:26