Un programa es una secuencias de instrucciones (órdenes) para el ordenador escritas en algún lenguaje de los que el ordenador entiende. Por ejemplo, un programa escrito en el lenguaje Python es el siguiente:
print "Hola"
Al ser Python un lenguaje interpretado podemos hacer estas primeras pruebas directamente "dentro" del intérprete, sin necesidad de escribir ningún fichero de prueba que tenga que ser "interpretado".
Normalmente, el programa transforma unos datos (entrada) en otros (salida), por lo que puede interpretarse como una función:
x = raw_input("x=") # All text after the hash symbol is a comment
y = raw_input("y=") # raw_input tells the computer to read data from keyboard
print float(x) * float(y)
Sin embargo, cuando el número de instrucciones aumenta, conviene crear funciones auxiliares. Por ejemplo, la pendiente de la recta que mejor se ajusta a N puntos del plano (x1,y1),(x2,y2)... viene dada por:
cov(X, Y) / cov(X, X)
donde X = (x1,x2,...xN), Y=(y1,y2,...yN) y cov(X,Y) es la covarianza de X e Y que puede, a su vez, definirse como:
cov(X, Y) = product(X, Y)/N - sum(X) * sum(Y) / (N * N)
siendo sum una función que devuelve la suma de las componentes de un vector y product otra función que devuelve el producto escalar de dos vectores. Si se definen las funciones cov, sum y len, se reduce el número de instrucciones que hay que escribir para calcular la pendiente de la recta (comparado con la escritura de la fórmula desarrollada) y se facilita la supervisión del programa. Además:
El resultado de un cálculo puede guardarse temporalmente en una variable, es decir, podemos usar un nombre para recordar un resultado anterior.
Los datos que maneja un programa pueden ser de distintos tipos. Los tipos más importantes de datos simples son: números enteros, números reales, números complejos, texto, vectores, conjuntos, diccionarios y archivos (y sus nombres en Python: int, float, complex, string, list, set, dict y file).
La asignación es una instrucción distinta de la comparación: X = (1, 3, 2) es una asignación, mientras que print 1 == 2 contiene una comparación.
La numeración sigue la secuencia natural: X[1] == 3 es cierto si X = (1, 3, 2).
Tres funciones predefinidas muy útiles son:
len(X), que devuelve el tamaño del vector X;
sum(X), que devuelve la suma de las componentes del vector;
range(i, j) que devuelve una lista con todos los valores enteros en el intervalo [i,j[.
Teniendo en cuanta lo anterior, realiza el ejercicio 1 (mi primer programa en Python).