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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2009, 20:21   #1
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
Стрелка Воторения

Вот я написала такую процедуру, которая сортирует рейтинг кандидатов:
Код:
procedure  get;
var
 s:array[1..50] of integer;
 s1:array[1..50] of string;
n,k,i,j,l: integer;
 vote: longint;
 amin,err: integer;
  q,bmin:string;
begin
clrscr;
 reset(res_f);
 reset(info_f);
 n:=0;
    while not eof(res_f) do begin
    info.rat:=0;
       for i:=1 to filesize(pynkt_f) do begin
        readln(res_f,votes);
        val(copy(votes,62,10),vote,err);
        q:=copy(votes,1,35);
        inc(n);
        s1[n]:=q;
      info.rat:=info.rat+vote;
      s[n]:=info.rat;
      end;
     writeln(s1[n],'|':10,s[n],'-',n);
   end;
    for i:=1 to n do begin
    amin:=s[i];
    bmin:=s1[i];
    l:=i;
    J:=i+1;
    while j<=n do begin
      if amin<s[j] then
        begin
          amin:=s[j];
          bmin:=s1[j];
          l:=j;
        end;
      j:=J+1;
    end;
    s[l]:=s[i];
    s1[l]:=s1[i];
    s[i]:=amin;
    s1[i]:=bmin;
    for i:=1 to n do writeln(s1[i],' | ',s[i]);
    end;
 close(res_f);
end;
Файл res_f не типизированный, а pynkt_f - типизированный.
Кол-во записей в res_f - 4, pynkt_f-2.
Вот какой я получаю результат:
Код:
  
                              дДем2 | 17
                               Дем1 | 13
                              дДем2 | 12
                               Дем1 | 8
А должен
Код:
дДем2 | 17
Дем1 | 13
Меня интересует откуда взялось:
дДем2 | 12
Дем1 | 8
Dem6 вне форума Ответить с цитированием
Старый 09.04.2009, 15:31   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

может отсюда?
Код:
    while not eof(res_f) do begin
    info.rat:=0;
       for i:=1 to filesize(pynkt_f) do begin
        readln(res_f,votes);
        val(copy(votes,62,10),vote,err);
        q:=copy(votes,1,35);
        inc(n);
        s1[n]:=q;
      info.rat:=info.rat+vote;
      s[n]:=info.rat;
      end;
     writeln(s1[n],'|':10,s[n],'-',n);
   end;
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 09.04.2009, 15:34   #3
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

хотя нет...... нам дефис ещё какой-то.....
предоставьте листинги файлов.
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Ответ


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