miércoles, 11 de junio de 2008

Arreglos implícitos

No se si el título realmente identifica lo que quiero mostrar, pero no importa...
El tema es así, para generar un vector -llamemoslo X- que vaya desde un valor determinado -límite inferior (li)- hasta otro -límite superior- con un incremento dx solíamos hacer -antes de ver la luz- un ciclo do de la siguiente manera:

do i=0,K
x(i)= li + real(i)*dx
end do


Esto me resultaba bastante incómodo, porque por cada inicialización de una variable independiente debíamos reccorrer todo un cliclo y hacer tres lineas de código, cuando en lenguajes interpretados esto se hace en una sola.

Bien, acá el tema es que fortran (ya empiezo a sentir cosas por él) es un lenguaje ecléctico entre aquelos interpretados y compilados, caracterísctica que a mi modo de ver lo destaca.

Para evitar las tediosas tres lineas anteriores, basta con definir el vector X de la siguiente manera:

X=(/(i*dx, i=li,ls)/)


Por ejemplo, si quisieramos tener valores entre -0.5 y 0.5 con un dx=0.1:

X= (/(i*0.1,i=-5,5)/)


Esto nos daría,

-0.5000000
-0.4000000
-0.3000000
-0.2000000
-0.1000000
0.000000
0.1000000
0.2000000
0.3000000
0.4000000
0.5000000

Muy útil para tener programas más limpios...
Hasta la próxima

1 comentario:

Emiliano López dijo...

Hay que tener en cuenta que li y ls no terminan siendo realmente los límites inferior y superior, ya que el paso dx es el que determina el rango de valores. De modo que se deben calcular los extremos del intervalo en función del valor de dx.