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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 20:33   #1
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию Обмены и сравнения

Скажите пожалуйста,а почему у меня в ответе выходит ,что сравнений и обменов ноль постоянно,и время ноль
Код:
uses crt,dos;
const 
e = 10000;
type
        mas=array[1..e] of integer;
var
hour,min,sec,hund:word;
  t,t1,t2:longint;
     srav,obme,sr,ob,sravnen,obmen, k,i,j,n:integer;
        a,b:mas;
Procedure Puzir(n:integer;var a:mas);

var
       srav,obme, i,j,x:integer;
begin
srav:=0;
obme:=0;
 for i:=2 to n do
srav:=srav+1;
  for j:=n downto i do
   if a[j-1]>a[j] then
      begin
obme:=obme+1;
       x:=a[j-1];
      a[j-1]:=a[j];
      a[j]:=x;
     end;
end;
Procedure Dvoich(n:integer;var a:mas);

var
       sr,ob, i,j,m,l,r,x:integer;
begin
sr:=0;
ob:=0;
         for i:=2 to n do
       begin
sr:=sr+1;
       x:=a[i];
   l:=1;
      r:=i;
    while l<r do
     begin
ob:=ob+1;
      m:=(l+r) div 2;
       if a[m]<=x then
    l:=m+1
    else
      r:=m
    end;
   for j:=i downto r+1 do
      a[j]:=a[j-1];
         a[r]:=x;
                        end;
end;
Procedure Priamoi(n:integer;var a:mas);
var
        sravnen,obmen,i,j,r,x:integer;
begin
sravnen:=0;
obmen:=0;
         for i:=1 to n-1 do
        begin
sravnen:=sravnen+1;
       r:=i;
       x:=a[i];
        for j:=i+1 to n do
          if a[j]<x then
        begin
obmen:=obmen+1;
          r:=j;
        x:=a[r];
         end;
         a[r]:=a[i];
          a[i]:=x;
           end;
end;
begin
writeln('Vvedite dlinnu massiva: ');
readln(n);
repeat
writeln('1-Zapolnit cluchaino 2-Vvesti s klaviaturu');
read(k);
until k in[1..2];
case k of
1:for i:=1 to n do
  a[i]:=random(n);
2:begin
  writeln('Vvedite elementu massiva');
  for i := 1 to n do
   begin
    write('a[',i,']=');
    readln(a[i])
   end;
  end;
end;
        
                writeln;
                b:=a;
                Puzir(n,a);
                writeln('Sortirovka metodom obmena,Resultat: ');
                        for i:=1 to n do
                                write(a[i],' ');
        
              writeln;
              GetTime(hour,min,sec,hund);
             writeln(hour,':',min,':',sec,':',hund);
              t1:=sec*1000+min*60000+hund*10;
              {sort(1,n);}
              delay(1000);
              GetTime(hour,min,sec,hund);
              writeln(hour,':',min,':',sec,':',hund);
              t2:=sec*1000+min*60000+hund*10;
                t:=t2-t1;
                 writeln;
               writeln('t1=',t1);
              writeln('t2=',t2);
               writeln('t=',t);
               writeln('Kol-vo sravnenii=',srav);
                  write('Kol-vo obmenov=',obme);

        writeln;
        a:=b;
        Dvoich(n,a);
        writeln('Sortirovka metodom dvoich vkliuchenia,resultat: ');
                for i:=1 to n do
                        write(a[i],' ');

              writeln;
              GetTime(hour,min,sec,hund);
             writeln(hour,':',min,':',sec,':',hund);
              t1:=sec*1000+min*60000+hund*10;
              {sort(1,n);}
              delay(1000);
              GetTime(hour,min,sec,hund);
              writeln(hour,':',min,':',sec,':',hund);
              t2:=sec*1000+min*60000+hund*10;
                t:=t2-t1;
                 writeln;
               writeln('t1=',t1);
              writeln('t2=',t2);
               writeln('t=',t);
            writeln('Kol-vo sravnenii=',sr);
             write('Kol-vo obmenov=',ob);
        writeln;
        a:=b;
        Priamoi(n,a);
        writeln('Sortirovka metodom priamogo vubora,resultat: ');
                for i:=1 to n do
                        write(a[i], ' ');

              writeln;
              GetTime(hour,min,sec,hund);
             writeln(hour,':',min,':',sec,':',hund);
              t1:=sec*1000+min*60000+hund*10;
              {sort(1,n);}
              delay(1000);
              GetTime(hour,min,sec,hund);
              writeln(hour,':',min,':',sec,':',hund);
              t2:=sec*1000+min*60000+hund*10;
                t:=t2-t1;
                 writeln;
               writeln('t1=',t1);
              writeln('t2=',t2);
               writeln('t=',t);
writeln('Kol-vo sravnenii=',sravnen);
write('Kol-vo obmenov=',obmen);
    readln
end.
lialia вне форума Ответить с цитированием
Старый 03.04.2013, 21:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А отладчиком ты прошлась?
Пошаговку умеешь делать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.04.2013, 21:27   #3
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

умею делать,но не понимаю как определять где ошибка
lialia вне форума Ответить с цитированием
Старый 03.04.2013, 21:29   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Я же уже исправлял Вам эту ошибку (0 в сравнениях и обменах).
http://programmersforum.ru/showpost....91&postcount=4
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 03.04.2013, 21:33   #5
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

ааааааа,все ,я еще раз посмотрела и поняла,спасибоо!!
lialia вне форума Ответить с цитированием
Старый 03.04.2013, 21:38   #6
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

извините за беспокойство)
lialia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнения времени xedoss PHP 1 09.09.2012 19:23
макрос сравнения... Slavatron1984 Microsoft Office Excel 6 06.04.2012 14:10
Операторы сравнения krugolet Общие вопросы C/C++ 4 30.03.2012 21:05
Ошибка сравнения R71MT Win Api 11 20.06.2011 00:15
функция сравнения bank_notes Microsoft Office Excel 3 12.02.2010 22:08