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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

11.3. Conjuntos 249<br />

Y <strong>en</strong> un segundo refinami<strong>en</strong>to de Calcular los números primos m<strong>en</strong>ores que<br />

256 se obt<strong>en</strong>dría: 5<br />

G<strong>en</strong>erar el conjunto inicial primos<br />

para cada elem<strong>en</strong>to elem mayor que 1 y m<strong>en</strong>or o igual que 16<br />

Eliminar del conjunto todos sus múltiplos<br />

Y <strong>en</strong> un nivel de refinami<strong>en</strong>to inferior, Eliminar del conjunto todos sus múltiplos<br />

se puede desarrollar así:<br />

Dar valor inicial (igual a 2) al coefici<strong>en</strong>te k<br />

repetir<br />

Eliminar elem * k del conjunto primos<br />

Increm<strong>en</strong>tar k <strong>en</strong> una unidad<br />

hasta que elem * k sea mayor o igual que 256<br />

Desde este nivel de refinami<strong>en</strong>to es fácil pasar a una implem<strong>en</strong>tación <strong>en</strong> <strong>Pascal</strong>,<br />

como puede ser la sigui<strong>en</strong>te:<br />

Program Criba (output);<br />

{Halla y escribe los primeros números primos}<br />

const<br />

N = 255;<br />

type<br />

tConjuntoPositivos = set of 1..N;<br />

var<br />

primos: tConjuntoPositivos;<br />

elem, k: integer;<br />

procedure EscribirConjuntoPositivos(c: tConjuntoPositivos);<br />

{Efecto: se muestran <strong>en</strong> la pantalla los elem<strong>en</strong>tos<br />

del conjunto c}<br />

var<br />

i: integer;<br />

begin<br />

for i:= 1 to N do<br />

if i in c th<strong>en</strong><br />

WriteLn(i : 3, ’ es primo’)<br />

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

5 Como se com<strong>en</strong>tó <strong>en</strong> el apartado 8.2.1, basta con eliminar los múltiplos de los números naturales<br />

m<strong>en</strong>ores o iguales que la raíz cuadrada de la cota (<strong>en</strong> nuestro ejemplo, los m<strong>en</strong>ores o iguales<br />

que √ 256 = 16).

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

Saved successfully!

Ooh no, something went wrong!