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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2007, 15:46   #1
Newnata
 
Регистрация: 20.11.2007
Сообщений: 4
По умолчанию Упорядочить данные по фамилии автора-PASCAL

Упорядочить данные по алфавиту, напишите, пожалуйста, эту процедуру.
Newnata вне форума Ответить с цитированием
Старый 20.11.2007, 16:26   #2
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Вот примерный код...
Есть два минуса:
1. Оформлен как программа, а не процедура... (Это несущественно)
2. Упорядочивает только по первому символу...(Наиболее существенный)
Код:
program uporyad;
uses crt;
var
bb:boolean;
ss,s2,s:string;
c,t,i,j:integer;
a:array[1..200] of string;
b:array[1..200] of integer;
f:text;
begin
clrscr;
s:='abcdefghijklmnopqrstuvwxyz';
s2:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
assign(f,'FILEBASE.txt');
reset(f);
while not eof(f) do begin
t:=t+1;
readln(f,a[t]);
c:=length(a[t]);
bb:=false;
for i:=1 to 26 do begin
ss:=copy(s,i,1);
if ss=copy(a[t],1,1) then begin b[t]:=i; bb:=true; end;
end;
for i:=1 to 26 do begin
ss:=copy(s2,i,1);
if ss=copy(a[t],1,1) then begin b[t]:=i; bb:=true; end;
end;
if bb=false then b[t]:=27;
end;
for j:=1 to 27 do
for i:=1 to t do
if b[i]=j then writeln(a[i]);
close(f);
readkey;
end.
База береться из файла FILEBASE.txt. Одно слово- одна строка
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 20.11.2007, 16:59   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

А в Гугл сходить лень?

http://www.cyberguru.ru/programming/...ia-page12.html

Пардон, код по ссылке был с ошибкой и тоже сортирует по первому символу
Код:
type  DataItem = string[80];
       DataArray = array [1..150] of DataItem;

procedure QsString(var item: DataArray; count:integer);

       procedure qs(var it:DataArray;l, r: integer);
         var
         i, j: integer;
         x, temp: DataItem;
       begin
         x := it[(l+r) div 2];
         i := l;
	 j := r;
        
         repeat
           while it[i] < x do inc(i);
           while it[j] > x do dec(j);
           if i<=j then
           begin
             temp := it[i];
             it[i] := it[j];
             it[j] := temp;
             inc(i);
             dec(j);
           end;
         until i>=j;
         if i<r then qs(it,i,r);
         if j>l then qs(it,l,j);
       end;

begin
  qs(item,1, count);
end;


Var Source:DataArray;
    i,total:integer;
    fromf,tof:text;

Begin
  write('Locating files...');
  Assign(fromf,'in.txt');
  Assign(tof,'out.txt');
  Reset(fromf);
  ReWrite(tof);
  Writeln(' OK');

  write('Reading...');  
  While not(EOF(fromf)) do
  begin
    inc(total);
    Readln(fromf,Source[total]);  
  end;
  Writeln(' OK');

  write('Sorting...');
  QsString(Source,total);
  Writeln(' OK');

  write('Writing...'); 
  for i:=1 to total do
  begin
    Writeln(tof,Source[i]);
  end;
  Close(tof);
  Writeln(' OK');
  
  Close(fromf);
End.
пыщь

Последний раз редактировалось JTG; 20.11.2007 в 18:01.
JTG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить слова в алфавитном порядке sasha45 Общие вопросы C/C++ 36 20.06.2011 11:03
Как можно изменить автора программы xReactions Общие вопросы Delphi 0 03.05.2008 09:25
Упорядочить содержимое ComboBox Ermiss Общие вопросы Delphi 2 25.01.2008 16:24
Помогите упорядочить строки матрицы по убыванию kitty Помощь студентам 1 06.12.2007 23:23
Определение автора(владельца) запроса в Mysql Квэнди БД в Delphi 1 15.10.2007 16:00