domingo, 25 de marzo de 2012

Representación de funciones

Programa que permite la representación de funciones en Pascal, usando una ventana gráfica junto con la ventana de texto. El tamaño de la ventana que se genera viene determinado por las características de la tarjeta gráfica, por lo que es más que probable que se tengan que cambiar las constante de ancho y medio para un mejor funcionamiento de la aplicación.

program dibujaFuncion(input,putput);

uses Graph;

const
     {Estos parametros se han de cambiar para que se ajusten a las distintas
     pantallas, de todas formas, creo que es posible que de algun modo se
     detecten estos parametros de manera automatica y no sea necesario ajustarlos
     para cada ordenador}

     ancho=1365;
     medio=360;

type
  tp_posicion=integer;
  tp_coordenadas=real;

var
  Driver, Modo: smallint;
  pos,x,anterior,actual:tp_posicion;
  salto:boolean;
  x0,xf,y:tp_coordenadas;

begin
  Driver :=detect;
  Modo := VgaHi;
  write('Introduzca los extremos del intervalo de la X: ');readln(x0,xf);
  write('Introduzca los extremos del intervalo de la Y: ');readln(y);
  InitGraph(driver, modo, '');
  for x:=1 to ancho do
      putpixel(x,medio,14);
  for x:=1 to (2*medio) do
    putpixel((ancho div 2),x,14);
  salto:=false;
  anterior:=medio-trunc((medio/y)*f(x0+(xf-x0)*(1/ancho)));
  for x:=1 to ancho do begin
      actual:=medio-trunc((medio/y)*f(x0+(xf-x0)*(x/ancho)));
      if anterior<actual then
         for pos:=anterior to actual do
             putpixel(x,pos,15)
      else
         for pos:=anterior downto actual do
             putpixel(x,pos,15);
      anterior:=actual
  end;
  Readln;
  CloseGraph
end
.

Salud!

No hay comentarios:

Publicar un comentario