vinarsky_evgeny

Untitled

Dec 6th, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.56 KB | None | 0 0
  1. program t_17_2_a(input,output,f);
  2. type
  3.      queue=^node;
  4.      node=record
  5.             elem: real;
  6.             next: queue
  7.           end;
  8.      FR=file of real;
  9.          
  10. var f1,f2: FR;
  11.     c,i,a,b: real;
  12.     begO1,endO1,begO2,endO2: queue;
  13.  
  14. procedure pushQ(var begO,endO: queue; c: real);
  15. var u: queue;
  16.   begin
  17.     new(u);
  18.     u^.elem:=c;
  19.     u^.next:=nil;
  20.     if(begO=nil)
  21.       then begO:=u
  22.     else
  23.       endO^.next:=u;
  24.     endO:=u;    
  25.   end;
  26.  
  27. procedure popQ(var begO,endO: queue; c: real);
  28. var u: queue;
  29.   function emptyQ(var x1: queue): boolean;
  30.     begin
  31.       emptyQ:=(x1=nil);
  32.     end;
  33.   begin
  34.     if emptyQ(begO) then
  35.       writeln('очередь пуста')
  36.     else
  37.       begin
  38.         c:=begO^.elem;
  39.         u:=begO;
  40.         begO:=begO^.next;
  41.         dispose(u);
  42.       end;
  43.   end;
  44.  
  45. begin
  46.   i:=0;
  47.   assign(f1,'input.txt');
  48.   assign(f2,'task.txt');
  49.   rewrite(f1);
  50.   read(c);
  51.   while(c<>0) do
  52.     begin
  53.       write(f1,c);
  54.       read(c);
  55.     end;
  56.   read(a,b);
  57.   reset(f1);
  58.   rewrite(f2);
  59.   while (not(eof(f1))) do
  60.     begin
  61.       read(f1,c);
  62.       if(c<a) then
  63.         write(f2,c)
  64.       else if((c>=a) and (c<=b)) then
  65.              pushQ(begO1,endO1,c)
  66.            else
  67.              pushQ(begO2,endO2,c);
  68.     end;
  69.   while(begO1<>nil) do
  70.     begin
  71.       popQ(begO1,endO1,c);
  72.       write(f2,c);
  73.     end;
  74.   while(begO2<>nil) do
  75.     begin
  76.       popQ(begO2,endO2,c);
  77.       write(f2,c);
  78.     end;
  79.   reset(f2);
  80.   while not(eof(f2)) do
  81.     begin
  82.       read(f2,c);
  83.       write(c,' ');
  84.     end;
  85.   writeln;
  86. end.
Advertisement
Add Comment
Please, Sign In to add comment