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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 22:05   #11
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,837
По умолчанию

Объясняю.
У нас есть входной файл. Мы создаем новый файл, в который будем записывать результат.
Проходим входной файл от начала и до конца, ищем в нем минимальное значение и считаем количество его вхождений в этот файл. Записываем нужное число раз это значение в выходной файл.
Затем опять проходим входной файл, ищем минимальное значение, но большее предыдущего минимального значения.
И так делаем до тех пор, пока не обработаем все возможные значения входного файла.
В ОП для хранения всех данных программы нужно не более 100 байт.
Arigato на форуме Ответить с цитированием
Старый 15.11.2008, 01:54   #12
TANKeX3mail
 
Аватар для TANKeX3mail
 
Регистрация: 16.10.2008
Сообщений: 4
По умолчанию

есть так называемый пузырьковый метод выдавливания...
HACK off это по нашему
TANKeX3mail вне форума Ответить с цитированием
Старый 16.11.2008, 12:54   #13
kossner
 
Регистрация: 13.11.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от TANKeX3mail Посмотреть сообщение
есть так называемый пузырьковый метод выдавливания...
а что это такое?
kossner вне форума Ответить с цитированием
Старый 22.11.2008, 17:55   #14
kossner
 
Регистрация: 13.11.2008
Сообщений: 8
По умолчанию

Люди, скажите,пожалуйста, где я ошибся) . Код ниже:
Код:
program tucumcari(input,output);
uses crt;
const n=10;
type numarr=array[1..n] of integer;
     foin=file of integer;
var infile,outtext:text;
    tempfile,outfile:foin;
    goo,i,max,min,numb,k,l,temp:integer;
    c,v:char;
    brk,tr:boolean;
    str,s1,s2:string;
    cl,eef:numarr;
procedure nullarr(var b:numarr; n:integer);
var i:integer;
begin
for i:=1 to n do b[i]:=0
end;

procedure count(var x:numarr;o:integer);
var i:integer;
begin
x[o]:=x[o]+1;
for i:=o downto 1 do
if x[o]>9 then
   begin
        x[o]:=0;
        x[o-1]:=x[o-1]+1;
   end;
end;
procedure write_to_txt(var f:foin;var tex:text);
var temp:integer; ch:char;
begin
reset(f);
rewrite(tex);
while not eof(f) do
      begin
         read(f,temp);
         writeln(tex,temp)
      end
end;

begin
repeat
 nullarr(cl,n);
 nullarr(eef,n);
 writeln('Enter the INPUT file name');
 readln(s1);
 writeln('Enter the OUTPUT file name');
 readln(s2);
 assign(infile,s1);
 reset(infile);{ kontr vvoda!}
 assign(outfile,s2);
 assign(tempfile,'temp');
 rewrite(tempfile);
 if eof(infile) then
    writeln('INPUT file is blank. Select another one')
 else
    begin
        while not eof(infile) do
        begin
          while not eoln(infile) do
          begin
          read(infile,c);
          if c='-' then
             tr:=true
          else tr:=false;
          l:=ord(c)-ord('0');
          if (l>=0)and(l<=9) then
          numb:=numb*10+l;
          end;
          get(infile)
          if tr then numb:=numb*(-1);
          write(tempfile,numb); 
        end;
 close(infile);
 rewrite(outfile);
 {max}
 goo:=-maxint-1;
 k:=0;
 reset(tempfile);
 while not eof(tempfile) do
    begin
       read(tempfile,temp);
       if temp>goo then
          max:=temp
    end;
 reset(tempfile);
 while not eof(tempfile) do
       begin
            read(tempfile,temp);
            if temp=max then inc(k);
       end;

 for i:=1 to k do
 write(outfile,max);

 repeat
      reset(tempfile);
      while not eof(tempfile) do
            begin
                 read(tempfile,temp);
                 if (temp>goo)and(temp<max)
                    then goo:=temp

            end;
      max:=goo;
      reset(tempfile);
      k:=0;
      while not eof(tempfile) do
         begin
              read(tempfile,temp);
              if temp=max then inc(k);
         end;
      for i:=1 to k do
          write(outfile,max);
      reset(tempfile);
      brk:=false;
      min:=maxint;
      while not eof(tempfile) do
            begin
                 read(tempfile,temp);
                 if temp<min then
                    min:=temp
            end;
      if min=max then
         brk:=true;
 until brk=true;
 end;
 writeln('exit? y for yes');
 c:=readkey;
until c='y';
 end.
это чудо зависает на 74 строчке, загружая цп на 99%
kossner вне форума Ответить с цитированием
Старый 05.12.2008, 14:57   #15
kossner
 
Регистрация: 13.11.2008
Сообщений: 8
По умолчанию

Вот, решил выложить полный код программы, вдруг кому-нибудь понадобится). Так как код в сообщение не влезает(слишком длинный), залил его на айфолдер сюда: http://stream.ifolder.ru/9398962
kossner вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива ManU Помощь студентам 1 21.09.2008 10:41
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18
Сортировка массива Kraven Общие вопросы Delphi 3 25.06.2008 18:22
Сортировка массива vitalik007 Общие вопросы Delphi 2 22.09.2007 20:04
Сортировка массива MuRdErDoLL Помощь студентам 2 20.12.2006 00:58