Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачка с использованием "очереди"
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
certain83
Доброе время суток =)
Экстренно нужна помощь того кто в этом разбирается.. своими силами справицца не могу (наверное не всем сужденно стать программерами).

Дело вот в чем - получил задание которое нужно будет защитить, а мне его даже и не выполнить . Задача вот такая вот:

С использованием структуры "очередь" за один просмотр файла, содержащего целые числа, распечатать файл в следующем виде: сначала - все числа, меньше А; затем -все числа из [А,В]; потом - все остальные числа.
П.с. Число А и промежуток [А,В] вводятся с клавиатуры...


Если кто может помочь, помогите ПЛИИИЗ =) . Мне хотяб исходник, а в принципе работы проги я постараюсь самостоятельно разобрацца

Воть тут есть примерная програмка, которую пытаюся переделать под поставленное задание, но... безуспешно...

Текст выглядит так:::


Код


program ups;
uses crt;
type

fifo=^ch;
ch=record
next:fifo;
data:string;
end;
var
begQ:fifo;
endQ:fifo;
sim:string;
a:integer;

procedure Sozd(val:string);
    var p:fifo;
   begin
   clrscr;
   New(p);
   p^.data:=val;
   p^.next:=nil;
   begq:=p;
   endq:=p;
   write('sozdali');
end;

procedure add(sim:string);
    var p:fifo;
    begin
    new(p);
    p^.data:=sim;
    P^.next:=nil;
    endQ^.next:=p;
    endQ:=p;
    write(sim);

end;
 
procedure Ud(val:string);
    var p:fifo;
    Begin
    Val:=begQ^.data;
    p:=begQ;
    BegQ:=p^.next;
    dispose(p);
    Write(Val);
end;
begin
    begQ:=nil;
    endQ:=nil;
    while sim<>#13 do begin
sim:=readkey;
sozd(sim);
    end;
writeln('Vvedite comandu');
readln(a);
if a=1 then begin
while sim<>#13 do begin
    sim:=readkey;
    add(sim);
    end;
    end;
    writeln('Vvedite comandu');
    readln(a);
if a=2 then begin
Writeln('Budet udaljon element');

readln;
end.



Буду благодарен любой помощи ! Со мной можно связатся по certain@xaker.ru или UIN - 347030632 или сбрасывайте сюда соопсчения =)
Заранее благодарен!!!
virt
вроде работает ,проверял ,но если вдруг ... ,сразу спрашивай.
Код

program fifo_an;
type fifo=^ch;
    ch=record
          data:integer;
          next:fifo;
       end;

var nachalo:fifo;
   p,last:fifo;
   a,b,x:integer;

begin
  writeln('vvedite a i b');
  readln(a,b);
  assign(input,'in.txt');reset(input);
  assign(output,'out.txt');rewrite(output);
  nachalo:=nil;
  last:=nil;
  while not eof do
  begin
     read(x);
     if nachalo=nil then
     begin
        new(nachalo);
        nachalo^.data:=x;
        nachalo^.next:=nil;
        last:=nachalo;
     end else
        begin
           new(p);
           p^.data:=x;
           p^.next:=nil;
           last^.next:=p;
           last:=last^.next;
        end;
  end;
  close(input);
  p:=nachalo;
  while p<>nil do
  begin
     if p^.data<a then writeln(p^.data);
     p:=p^.next;
  end;
  p:=nachalo;
  while p<>nil do
  begin
     if (p^.data>=a) and (p^.data<=b) then writeln(p^.data);
     p:=p^.next;
  end;
  p:=nachalo;
  while p<>nil do
  begin
     if p^.data>b then writeln(p^.data);
     p:=p^.next;
  end;
end.
certain83
Virt, огромное Тебе спасибо!!!!!

Ты меня выручил rolleyes.gif . Я даж не ожидал что так быстро ктонгибудь поможет... оперативно, оперативно =)))
Сейчас сижу скрипт по строчке разбираю дэшифрую :D

СЯНКЗ еще раз! ;)
certain83
ЗДОРОВО ЧТО В ИНТЕРНЕТЕ ЕСТЬ ЛЮДИ ГОТОВЫЕ ПОМОЧЬ ДРУГИМ! УРААААААА!!!!! :D :D :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.