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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 09:16   #1
CrownedClown
 
Регистрация: 05.06.2011
Сообщений: 3
Печаль Сортировка и подсчет данных

Код:
Program qsort;
  uses crt;
  Type
    list = array[1..40] of integer;
  Var
    data: list;
    i,max,maxn,z: integer;
    s:char;
  Procedure quicksort(Var a: list;Lo,Hi: integer);
  Procedure sort(l,r: integer);
  Var
    i,j,x,y: integer;
  Begin
    i:=l;
    j:=r;
    x:=a[(l+r) div 2];
    Repeat
      While a[i]<x do
        i:=i+1;
      While x<a[j] do
        j:=j-1;
      If i<=j then
        Begin
          y:=a[i];
          a[i]:=a[j];
          a[j]:=y;
          i:=i+1;
          j:=j-1;
        end;
    until i>j;
  If l<j then
    sort(l,j);
  If i<r then
    sort(i,r);
  end;
  Begin
  {quicksort};
    sort(Lo,Hi);
  end;
  Begin
    ClrScr;
  {qsort}
{$I-}
    repeat
       writeln('Vvedite max koli4estvo elementov(ot 1 do 40)');
       readln(max);
       if IOResult<>0 then
          writeln('NEVERNII 4islovoi format');
       if (max<1) or (max>40) then
          writeln('Nevernoe znachenie max, povtorite vvod');
    until (max>=1) and (max<=40) and (IOResult=0);
    repeat
       writeln('Vvedite max 4islo v massive ne bolshe 99');
       readln(maxn);
        if IOResult<>0 then
          writeln('NEVERNII 4islovoi format');
       if maxn>99 then
          writeln('Nevernoe znachenie maxn, povtorite vvod');
    until (maxn<=99) and (IOResult=0);
    repeat
       writeln('4usla vvodyatsya randomno(press y), ili s lkaviaturi(press n)?');
       s:=readkey;
    until (s=#89) or (s=#78) or (s=#121) or (s=#110);
    if (s=#89) or (s=#121) then begin
       For i:=1 to max do
         data[i]:=random(maxn);
    end;
    if (s=#78) or (s=#110) then begin
       writeln('Vvedite elementi massiva ne bolshe ',maxn);
       For i:=1 to max do begin
         repeat
            readln(z);
            if IOResult<>0 then
               writeln('NEVERNII 4islovoi format');
            if z>maxn then
               writeln('4isla dolzni bit ne bolshe ',maxn,' Povtorite vvod!');
         until(z<=maxn) and (IOResult=0);
         data[i]:=z;
         end;
    end;
{$I+}
    WriteLn;
    WriteLn('Sortirovka 4isel:');
    quicksort(data,1,max);
    WriteLn;
    For i:=1 to max do
      WriteLn(data[i]:8);
      Writeln('Press any key for exit');
      readkey;
  end.
Как видите программа сортировки написана, но она еще должна выводить результаты работы как в пошаговом, так и в автоматическом режиме, плюс выводить число сравнений и сортировок. Надеюсь на вашу помощь



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.06.2011 в 13:58.
CrownedClown вне форума Ответить с цитированием
Старый 07.06.2011, 13:51   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

И чем же тебе помочь ?
mss вне форума Ответить с цитированием
Старый 07.06.2011, 14:26   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выводить результаты работы как в пошаговом
Т.е.? Накидать Readln в каждый цикл?
Что имеется ввиду под этими режимами работы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.06.2011, 16:28   #4
CrownedClown
 
Регистрация: 05.06.2011
Сообщений: 3
По умолчанию

"Пошаговый режим, это ввод переменных в ручную" -это уже сделал,
Мне необходимо, чтобы это программа еще выводила число сравнений и перестановок(
CrownedClown вне форума Ответить с цитированием
Старый 07.06.2011, 17:17   #5
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
необходимо, чтобы это программа еще выводила число сравнений и перестановок
Ну и ?
Ты не знаешь где в ТВОЕМ (ли ?) коде в подпрограмме qsort фигурируют сравнения и перестановки ?
Или тебя напрягает добавить пару переменных (сч-к сравнени и сч-к перестановок) и инкрементировать каждую из них соответственно перед сравнением и перед перестановкой ?
mss вне форума Ответить с цитированием
Старый 07.06.2011, 20:56   #6
CrownedClown
 
Регистрация: 05.06.2011
Сообщений: 3
По умолчанию

Хех, на счет МОЯ (ли?) можешь не сомневаться моя, корпел очень долго над ней, меня не напрягает, я просто не могу понять какой код еще надо написать для того, чтобы он считал, а куда и так понятно>_< Да даже если бы и напрягало мог бы хотя бы ссылку дать на материал где, написано про, подсчет каких-то действий. Словами кидаться каждый может... А я обращаю за помощью не потому, что лень, а из-за незнания материала так, как в моем учебном пособие не нашел, можешь считать глаза косые так, как не спал уже 2 ночь из-за сроков, к этому заданию... Живу дома и нету роскоши общажной жизни, где можно спросить и узнать на 2 года вперед...

Последний раз редактировалось CrownedClown; 07.06.2011 в 22:19.
CrownedClown вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет данных введенных в одной ячейке. Hagen83 Microsoft Office Excel 12 15.06.2013 12:31
Объединение одинаковых данных и подсчет их(в огромных таблицах) Nicotinni Microsoft Office Excel 28 26.04.2011 16:57
Сортировка данных SlavaSH БД в Delphi 17 14.09.2009 13:32
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30
Подсчет данных в DBGrid Alexander_20 БД в Delphi 19 14.05.2009 18:41