rotacion.pas
{ ppc386 -va -vh *.pas }
{ COMIENZO DE DESCRIPCION
Ejercicio tomado en el 1er parcial, 16/04/02.
Escribir un procedimiento ROTACION (var C: cola), el cual
saca una cierta cantidad de enteros del frente de la cola
C y los vuelve a insertar en fin de la cola, de tal manera
que quede en el frente de cola un n\'umero par. Por ejemplo,
si C = [1, 3, 5, 2, 4] entonces, despu\'es de ROTACION (C),
debe quedar C = [2, 4, 1, 3, 5].
keywords: cola
FIN DE DESCRIPCION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
{ $ Id: rotacion.pas 2002/04/04 17:40 mstorti Exp jdelia $ }
program rotar ;
uses u_colapi ;
type
cola = colapi;
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
procedure ROTACION (var C : cola);
begin
if C.VACIA then exit;
while C.FRENTE mod 2 = 1 do begin
C.PONE (C.FRENTE);
C.QUITA;
end;
end; { ROTACION }
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
var
C : cola ;
k : integer;
begin
randomize ();
C.ANULA;
for k := 1 to 10 do C.PONE ( random (10) );
{ para asegurarse que haya un elemento par }
C.PONE (10);
C.IMPRIME ('C antes: ');
ROTACION (C);
C.IMPRIME ('C despues :');
{ Salida tipica:
C antes : 3 7 9 3 4 7 1 4 0 3 10
C despues : 4 7 1 4 0 3 10 3 7 9 3 }
end.
{-----+-----+-----+-----+-----+-----+-----+-----+-----+-----}
Generated by GNU enscript 1.6.1.