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.

9.6. Un ejemplo detallado: repres<strong>en</strong>tación de funciones 205<br />

Pedir los datos xmínima, xmáxima, ymínima, ymáxima<br />

Trazar la cabecera de la gráfica<br />

Trazar las líneas sucesivas<br />

Trazar el pie de la gráfica<br />

La lectura de los datos es trivial:<br />

procedure PedirDatos(var xMin, xMax, yMin, yMax: real);<br />

{Efecto: lee el fragm<strong>en</strong>to del plano que se desea ver}<br />

begin<br />

Write(’xMínimo, xMáximo: ’);<br />

ReadLn(xMin, xMax);<br />

Write(’yMínimo, yMáximo:’);<br />

ReadLn(yMin, yMax)<br />

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

La cabecera de la repres<strong>en</strong>tación gráfica debe reflejar el intervalo de las ord<strong>en</strong>adas<br />

elegido y escribir un eje del tamaño numY :<br />

procedure TrazarCabecera(yMin, yMax: real);<br />

{Efecto: Traza la cabecera c<strong>en</strong>trada dep<strong>en</strong>di<strong>en</strong>do del tama~no de la<br />

pantalla}<br />

begin<br />

WriteLn(yMin:9:2, {a la izquierda}<br />

’y = s<strong>en</strong> (x)’: NumY div 2-1, {<strong>en</strong> el c<strong>en</strong>tro}<br />

yMax:(NumY div 2-1):2); {a la derecha}<br />

Write(’------+’);<br />

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

Write(’-’);<br />

WriteLn(’>’)<br />

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

si<strong>en</strong>do NumX, NumY las constantes (globales) descritas al principio. (Los parámetros<br />

de formato ti<strong>en</strong><strong>en</strong> por misión c<strong>en</strong>trar el nombre de la función de manera que<br />

no haya que redefinir este procedimi<strong>en</strong>to si cambia el tamaño de la pantalla.)<br />

El trazado de cada línea consiste <strong>en</strong> lo sigui<strong>en</strong>te:<br />

Hallar la abscisa xi<br />

Hallar la posición (<strong>en</strong> la pantalla) de la ord<strong>en</strong>ada f(xi)<br />

Escribir la línea (comprobando si cae fuera de la zona)<br />

lo que se detalla a continuación. La abscisa xi se halla fácilm<strong>en</strong>te:<br />

xi = xmín + i xmáx − xmín<br />

, i ∈ {0, . . . ,NumX}<br />

NumX

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

Saved successfully!

Ooh no, something went wrong!