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.

8.5.<br />

Ámbito y visibilidad de los id<strong>en</strong>tificadores 179<br />

Además, el ord<strong>en</strong> <strong>en</strong> que se defin<strong>en</strong> los subprogramas es relevante, ya que los<br />

definidos <strong>en</strong> primer lugar pued<strong>en</strong> ser usados por los sigui<strong>en</strong>tes.<br />

Como ejemplo, vamos a modificar los id<strong>en</strong>tificadores de nuestro programa<br />

MultiplicaCifras de forma que coincidan sus nombres <strong>en</strong> los difer<strong>en</strong>tes bloques.<br />

Llamaremos numero a numPosit del programa principal, a n de LeerNumPos y a<br />

n de QuitaUltimaCifra. El programa quedaría de la sigui<strong>en</strong>te forma:<br />

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

var<br />

numero: integer;<br />

procedure LeerNumPos(var numero: integer);<br />

{Efecto: solicita un numero hasta obt<strong>en</strong>er uno positivo}<br />

begin<br />

repeat<br />

Write(’Escriba un <strong>en</strong>tero mayor que cero: ’);<br />

ReadLn(numero)<br />

until numero > 0<br />

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

function ProductoCifras(numero: integer): integer;<br />

{Dev. el producto de las cifras de numero}<br />

var<br />

acumProd, cifrUnidades: integer;<br />

procedure QuitaUltimaCifra(var numero, ultima: integer);<br />

{Efecto: elimina la última cifra de numero y la almac<strong>en</strong>a<br />

<strong>en</strong> ultima}<br />

begin<br />

ultima:= numero mod 10;<br />

numero:= numero div 10<br />

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

begin<br />

acumProd:= 1;<br />

repeat<br />

QuitaUltimaCifra(numero, cifrUnidades);<br />

acumProd:= acumProd * cifrUnidades<br />

until numero = 0;<br />

ProductoCifras:= acumProd<br />

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

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

Saved successfully!

Ooh no, something went wrong!