09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

17.3. Colas 375<br />

El único tipo que se necesita definir para este programa es el tipo tCola. Las<br />

variables que almac<strong>en</strong>arán los datos del programa son el número de personas<br />

que llegarán a la caja, numCli<strong>en</strong>tes, el número máximo de artículos que cada<br />

persona puede llevar, maxArti, y la probabilidad de que una persona se una a<br />

la cola, probLlegada. Además se usará la variable t para medir los distintos<br />

instantes de tiempo, la variable contCli<strong>en</strong>tes para contar el número de personas<br />

que se han puesto <strong>en</strong> la cola y la variable caja, que es de tipo tCola.<br />

El <strong>en</strong>cabezami<strong>en</strong>to del programa es el sigui<strong>en</strong>te:<br />

Program SimuladorDeColas (input, output);<br />

type<br />

tElem = integer;<br />

tApNodo = ^tNodo;<br />

tNodo = record<br />

cont<strong>en</strong>ido: tElem;<br />

sigui<strong>en</strong>te: tApNodo<br />

<strong>en</strong>d; {tNodo}<br />

tCola = record<br />

principio, final: tApNodo<br />

<strong>en</strong>d; {tCola}<br />

var<br />

t, contCli<strong>en</strong>tes, numCli<strong>en</strong>tes, maxArti: integer;<br />

probLlegada: real;<br />

caja: tCola;<br />

Se usarán los sigui<strong>en</strong>tes procedimi<strong>en</strong>tos estándar del tipo tCola: CrearCola,<br />

PonerEnCola, SacarDeCola, y además MostrarCola que, como su nombre indica,<br />

muestra todos los elem<strong>en</strong>tos de la cola. Su implem<strong>en</strong>tación se pres<strong>en</strong>ta a<br />

continuación:<br />

procedure MostrarCola(cola: tCola);<br />

{Efecto: muestra <strong>en</strong> pantalla todos los elem<strong>en</strong>tos de cola}<br />

var<br />

apuntaAux: tApNodo;<br />

begin<br />

if cola.final= nil th<strong>en</strong><br />

WriteLn(’La caja está desocupada’)<br />

else begin<br />

apuntaAux:= cola.principio;<br />

repeat<br />

WriteLn(apuntaAux^.cont<strong>en</strong>ido);<br />

apuntaAux:= apuntaAux^.sigui<strong>en</strong>te<br />

until apuntaAux= nil<br />

<strong>en</strong>d {else}<br />

<strong>en</strong>d; {MostrarCola}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!