3 dic 2010

Programa Fortran

En fortran dado a que se usa principalmente para cálculos matemáticos y científicos, hice un programa que nos dice las raíces ya sean reales o imaginarias, de una ecuación de segundo grado, y que se escribe de la siguiente forma:


Y se puede resolver con la fórmula general para obtener las raíces, la cual esta también incluida en la imagen anterior.

El código.

PROGRAM raiz
      REAL disc, xa, xb, xi, xr, a, b, c
      PRINT*, 'Solucion ecuacion de segundo grado'
      PRINT*, 'Escribe el valor de a'
      READ(*,*) a
      PRINT*, 'Escribe el valor de b'
      READ(*,*) b
      PRINT*, 'Escribe el valor de c'
      READ(*,*) c
      disc = (b*b)-(4*a*c)
      IF (disc .GT. 0.0) THEN
         xa = (-b + (sqrt(disc)))/(2*a)
         xb = (-b - (sqrt(disc)))/(2*a)
         PRINT*, 'Raiz = ',xa
         PRINT*, 'Raiz = ',xb
      ELSEIF (disc .EQ. 0) THEN
         x1 = (-b) / (2.0 * a);
         PRINT*, 'La ecuacion solo tiene una raiz = ',x1
      ELSE
         xr = (-b/(2.0*a));
         xi = (sqrt(-disc)/(2.0*a));
         PRINT*, 'Raiz real',xr
         PRINT*, 'Raiz imaginaria',xi
      ENDIF       
      STOP
      END

A grandes rasgos, lo que puedo decir del programa, es que después de recibir las constantes que son los valores de a, b y c de la ecuación, trabajamos con ellas para hacer los cálculos como la formula general lo indica y tomando en cuenta las diferentes salidas que podemos tener, ya sean dos raíces, una sola raíz, o raíces imaginarias, y que esto lo determina el valor del discriminante.


Que lo identificamos mejor como lo que se encuentra dentro de la raíz cuadrada de la fórmula general.

Con el valor del discriminante podemos saber como serán nuestras raíces. Si es mayor a cero tendremos dos raíces, si es igual a cero solo tendremos una, y si es menor a cero tendremos raíces imaginarias.

Para compilarlo haremos lo siguiente:


Es muy parecido a como lo hacemos en C. El -o se lo agrego para ponerle un nombre al archivo que sera el ejecutable.

Veamos algunas ejecuciones del programa, con diferentes valores de a, b y c, para mostrar los tres casos diferentes.

Una sola raíz:


Dos raíces reales:


Raíces imaginarias:


Esto es todo para esta entrada.

Programación Fortran

Encontré un PDF en internet alojado en Google Docs, es un pequeño manual para Fortran. Guarde una copia en el Google Docs personal y les comparto el archivo para que lo chequen y busquen ahí cosas básicas para programas en este lenguaje.





Descargar: Introducción a la programación Fortran

Un JavaScript para tu blog

Hace tiempo al ver algunos Blogs me topaba con una imagen en algún costado de la pantalla, que era para seguir al dueño del blog en Twitter.


Me preguntaba como hacían para que pareciera que queda estático en la pantalla en una misma posición, y como daban al usuario las opciones de poner su cuenta y lugar de posición sin tener que hacer un cambio al código en sí, para cada diferente usuario de esta opción de "Follow Me".

Entrando al código fuente de uno de los Blogs que tenia esto, me di a la tarea de encontrar el archivo que hacía esto, y lo encontré. Fue un JavaScript, lo descargue y comenze a experimentar con el código, intentando entender que hacía todo ese embrollo.

Cuando entendía que hacía ciertas partes del código, me di a la tarea de editarlo, y crear el mio propio.

La siguiente imagen muestra parte del código después de modificarlo, no esta completo porque no alcanzo toda la pantalla.


Después lo agregue a mi blog de Programación Web, también en un costado de la página, y para que cuando pasaran el indicador del ratón se despliegue una etiqueta que dice Lenguajes, precisamente por que al dar clic te envía a este blog, que es para la materia de Lenguajes de Programación.



La forma en que lo agregue al blog fue un tanto simple.

Subí mi archivo a un servidor web donde puedo acceder siempre al archivo.

Agregue un gadget a la columna derecha de mi blog de los de tipo HTML/JavaScript, para poder colocar el siguiente código, que es el que accede a el archivo del servidor y además nos da las opciones a configurar.

<script src='http://usuarios.multimania.es/ramon/blogs.js' type='text/javascript'></script>
<script type='text/javascript' charset='utf-8'>
<!--tfb.account = 'http://ramonesteban.blogspot.com/';
tfb.top = 140;
tfb.showbadge();
-->
</script>

Inclusive si les interesa, podrían agregar también esta etiqueta para su blog si así lo desean, colocando el código anterior como un gadget tal y como lo hice yo. Solo sería cuestión de cambiar la dirección de su blog, y si desean cambiar a que altura lo desean.

Número aleatorio en Python

Este programa que hice fue a partir de un juego un poco más complejo, que te hace elegir un número entero, el que tu quieras, y la computadora elige otro aleatoriamente.

Estos dos números se suman, y si el número sumado es par, el usuario será el ganador, en caso contrario será la computadora quien habrá ganado.

El código.

#!/usr/bin/python

import random

numero = input("Escribe tu numero >> ")
cpu = random.choice(range(10))

valor = cpu + numero

print "\nEl numero elegido por la computaora es", cpu
print "La suma de los numeros es", valor

if (valor % 2 == 0):
    print "\nEs par - Has ganado"
else:
    print "\nEs impar - Perdiste, gana la computadora"

Explicación.

#!/usr/bin/python
La ruta donde se encuentra nuestro intérprete, la podemos buscar con which python.

import random
Agregamos la Liberia random que nos permitirá obtener números aleatorios.

numero = input("Escribe tu numero >> ")
Recibimos el número elegido por el usuario, almacenado en la variable número.

cpu = random.choice(range(10))
Obtenemos un número aleatorio que sea menor a 10, y lo almacenamos en la variable cpu.

valor = cpu + numero
Sumamos estos dos números para obtener el valor que veremos si es par o no.

print "\nEl numero elegido por la computaora es", cpu
print "La suma de los numeros es", valor

Mostramos el número aleatorio elegido por la computadora y la suma de los dos números.

if (valor % 2 == 0):
print "\nEs par - Has ganado"

Para saber si es par o no, obtenemos el módulo de dos, si el resultado de esto es cero, significa que si es par, y mostramos que ganó.

else:
print "\nEs impar - Perdiste, gana la computadora"

En caso contrario de que no se cumpla la condición anterior, es decir, que no fue par, mostramos que perdio.

Veamos una imagen de su ejecución.


Enlace: Obtener números pseudo aleatorios en Python