Programación Para Newbies: Fortran 6: Vectores y Arrays

Acá desarrollaremos el manejo más básico de vectores y arrays (también conocidos como arreglos en español) en el lenguaje Fortran.

A muchos les puede sonar conocida la palabra vector, para algunos, es un organismo que transmite enfermedades, para otros (los más matemáticos) es una cantidad dirigida, o un elemento de una estructura algebraica conocida como espacio vectorial, por lo tanto partimos definiendo ¿qué es un vector o un array en Fortran?.

Básicamente un vector (o array también) es una manera de manejar una gran cantidad de datos de manera más cómoda, ¿a qué nos referimos con esto? se preguntarán algunos, bueno, más especificamente un vector es un tipo de variable, que dentro de si contiene distintos valores.

Por ejemplo, en matemáticas, podemos definir el vector A=(x,y,z) en el espacio de 3 dimensiones, en Fortran es muy similar (recordemos que el objetivo del lenguaje es ayudar en tareas de matemáticas, ciencia e ingeniería), podemos definir vectores con cuantas componentes queramos. Los arrays son un poco distintos, estos trabajan (por dar un par de ejemplos) en distintas dimensiones, con esto me refiero a filas, columnas, etc, estas imágenes son más explicativas:

Sigue leyendo

¿Qué son los lenguajes dinámicos?

¡Hola, Lectores!

Ustedes pudieron apreciar que yo uso lenguajes como PHP, Python y Ruby. Éstos tienen características especiales, por lo que se les llama “lenguajes dinámicos”. Pero, ¿cuál es la diferencia con un lenguaje estático?, más bien, ¿qué es lo que hace a estos lenguajes dinámicos?

Cada lenguaje de programación tiene sus propias “terminologías”. Vale decir, dependiendo de la manera en que cada lenguaje aborde un problema, crea un idioma para que los desarrolladores se comuniquen. Hay muchos ejemplos, pero no quiero confundirles, así es que les daré sólo uno: los lenguajes interpretados no tienen “tiempo de compilación”, porque el lenguaje no se compila. La idea es que un lenguaje de programación dinámico agregue todas estas características en tiempo de “ejecución”, no en tiempo de “compilación” o de “carga”.

La definición de un lenguaje dinámico es: todo aquel lenguaje que posea características que permitan alterar el curso del lenguaje de manera legítima, a través de la inyección de código o de la ejecución de funcionalidades especiales. Describiré, pues, algunas de las maneras de agregar dinamismo a un lenguaje de programación e intentaré explicarlas con pseudocódigo.

Sigue leyendo

Programación para Newbies II: Introducción

Nota: No es que la segunda parte tenga otra introducción, a la primera parte le cambié el título a Prefacio. Sólo modifiqué el título y no el link, porque no quería que fallaran los enlaces.

Antes de querer aprender a hacer algo, es necesario saber qué es lo que vamos a aprender, ¿no?. Puede ser un poco obvio, pero nunca está de más detenerse a pensar que realmente significa lo que vamos a intentar aprender.

Programar, programas…. ¿ah?

Todos como usuarios de un equipo sabemos de la existencia de distintos programas (o aplicaciones), hay algunas para escribir (procesador de texto), para calcular (calculadora), otros para ver/escuchar multimedia (reproductores) y así podríamos continuar mencionando varios (y seguramente no terminaríamos nunca). Así podemos ver que cada programa cumple una tarea específica, en el procesador de texto no se puede jugar ni tampoco ver un video de YouTube. Podríamos decir entonces que cada programa resuelve algún problema en particular y como los problemas del mundo tienden al infinito, por tautología, tendríamos que la variedad de programas es prácticamente inacabable. Lógicamente, esto es directamente proporcional con la dificultad para escribir un programa. Hacer que un programa te pregunte el nombre y luego te salude debería ser bastante más simple que un programa que muestre dos ejércitos enfrentándose entre sí mientras esquivan una lluvia de flechas ardiendo por el ejército enemigo y fuego que es escupido por dragones que zurcan un estrellado cielo con 3 lunas.

Sigue leyendo esta segunda parte…