Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задание на паскаль - сортировка Radix обмен, Предложенный набор символов отсортироват 
:(
    Опции темы
flashg
  Дата 14.8.2005, 22:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть пример RADIX обмена с цифрами уже вложенными в код т.е. именно их уже программа рассортирует.

у меня задание вот такое

Предложенный набор символов отсортировать сортировкой Radix обмен

т.е. необходимо чтобы с клавиатуры считывла программа то что она д.б отсортировать

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

Const
  m = 256;
  a: arrType =
       (44, 55, 12, 42, 94, 18, 6, 67);


а мне надо ещё чтобы программ запрашивала символы т.е. при RUN появилось сообщение введите с клавиатруы а с клавиатуры можно набить и:
1) ABC
2) АБВ
3) 123

вот вопрос что мне надо изменить в коде чтобы программа могла воспринимать любой символ и чтобы символы вводились по запросу с клавиатуры

вот код программы полностьб (пример с цифрами)
Код

Const
  n = 8;

Type
  arrType = Array[0 .. Pred(n)] Of Byte;

Const
  m = 256;
  a: arrType =
       (44, 55, 12, 42, 94, 18, 6, 67);

Procedure RadixSort(Var source, sorted: arrType);
  Type
    indexType = Array[0 .. Pred(m)] Of Byte;
  Var
    distr, index: indexType;

    i: integer;
  begin
    fillchar(distr, sizeof(distr), 0);
    for i := 0 to Pred(n) do
      inc(distr[source[i]]);

    index[0] := 0;
    for i := 1 to Pred(m) do
      index[i] := index[Pred(i)] + distr[Pred(i)];

    for i := 0 to Pred(n) do
      begin
        sorted[ index[source[i]] ] := source[i];
        index[source[i]] := index[source[i]] + 1;
      end;
  end;

Var
 b: ArrType;
 i: Integer;
begin
 RadixSort(a, b);
 For i := 1 To Pred(n) Do
   Write(b[i]:4); 
 ReadLn;
end.

smile
  Вверх
flashg
Дата 15.8.2005, 19:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











мне помогли но к сожелению не десь не вежливо не отвечать когда просят помощи

но я вас прощаю smile
вот код программы - если кому то понадобится
Код

procedure sort(var src, dst: string);
var
  m : array[char] of integer;
  i : integer;
  c : char;
begin
  fillchar(m, sizeof(m), 0);
  for i := 1 to length(src) do
    inc(m[src[i]]);
  dst := '';
  for c := #0 to #255 do
    while m[c] > 0 do
    begin 
      dst := dst + c;
      dec(m[c]);
    end;
end;

var
  a, b : string;

begin
  writeln('Введите последовательность символов');
  readln(a);
  sort(a, b);
  writeln('Отсортированная последовательность символов:');
  writeln(b);
  readln;
end.

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.