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.

7.2. Aspectos teóricos 135<br />

7.2.4 Equival<strong>en</strong>cia de diagramas<br />

Tras definir lo que se <strong>en</strong>ti<strong>en</strong>de por programa estructurado cabe plantearse si<br />

un programa dado <strong>en</strong> forma no estructurada puede expresarse de forma “equival<strong>en</strong>te”<br />

mediante un programa estructurado. En este apartado se detalla el<br />

concepto de equival<strong>en</strong>cia de diagramas, que será usado más adelante al <strong>en</strong>unciar<br />

los teoremas de la programación estructurada.<br />

Dos diagramas propios se dice que son equival<strong>en</strong>tes si designan los mismos<br />

cálculos; esto es, si para una misma <strong>en</strong>trada de datos las líneas de flujo llevan a<br />

bloques idénticos.<br />

Como ejemplo, considér<strong>en</strong>se los diagramas de las figuras 7.2 y 7.3: no resulta<br />

difícil comprobar que, para una misma <strong>en</strong>trada de datos, los cálculos especificados<br />

por cada diagrama son exactam<strong>en</strong>te los mismos y, por lo tanto, ambos<br />

diagramas son equival<strong>en</strong>tes.<br />

Los teoremas de la programación estructurada (véase el apartado 7.2.5) afirman<br />

que todo diagrama propio se puede expresar equival<strong>en</strong>tem<strong>en</strong>te como un<br />

diagrama privilegiado. El problema es la construcción del diagrama privilegiado<br />

equival<strong>en</strong>te.<br />

Para realizar esta transformación se pued<strong>en</strong> usar, <strong>en</strong>tre otras, las operaciones<br />

de agrupami<strong>en</strong>to, inversión de predicados y desdoblami<strong>en</strong>to de bucles. A<br />

continuación se describirán estas operaciones y veremos algunos ejemplos que<br />

aclararán estos conceptos.<br />

Mediante el agrupami<strong>en</strong>to podemos evitar la multiplicidad de salidas de un<br />

programa, o que un bloque t<strong>en</strong>ga más de una flecha de <strong>en</strong>trada. En el ejemplo de<br />

la figura 7.4 se mostró un programa no propio porque ti<strong>en</strong>e dos salidas; haci<strong>en</strong>do<br />

uso del agrupami<strong>en</strong>to se convierte <strong>en</strong> un programa estructurado. Un caso<br />

similar se muestra <strong>en</strong> el sigui<strong>en</strong>te ejemplo, <strong>en</strong> el que también se hace uso de un

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

Saved successfully!

Ooh no, something went wrong!