En los ultimos años Python ha experimentado un importantísimo aumento del número de programadores y empresas que lo utilizan. Aquí tenemos unas citas que han encabezado durante algún tiempo la web oficial de Python (http://www.python.org):

 

Python ha sido parte importante de Google desde el principio, y lo sigue siendo a medidaque el sistema crece y evoluciona. Hoy día, docenas de ingenieros de Google usan Python y seguimos buscando gente diestra en este lenguaje.

Peter Norvig, director de calidad de búsquedas de Google Inc.

 

Y que hay de C?

 

El lenguaje de programación C es uno de los más utilizados en el mundo profesional. La mayoría de las aplicaciones comerciales y libres se han desarrollado con el lenguaje de programación C. El sistema operativo Linux, por ejemplo, se ha desarrollado en C en su práctica totalidad. ¿Por qué es tan utilizado el lenguaje C? C es un lenguaje de propósito general que permite controlar con gran precisión los factores que influyen en la eficiencia de los programas. Pero esta capacidad de control (fino) que ofrece C tiene un precio: la escritura de programas puede ser mucho más costosa, pues hemos de estar pendientes de numerosos detalles. Tan es así que muchos programadores afirman que C no es un lenguaje de alto nivel, sino de nivel intermedio.

 

Veamos la diferencia sustancial que existe entre ambos lenguaje, con el programita cono cido como 'Hola Mundo' para que saquen sus propias conclusiones:

 

Python:

print ’Hola, Mundo!’

 

C:

#include <stdio.h>

int main(void){

printf("Hola, Mundo!\n");

return 0;

}

 

Como puedes comprobar, Python parece ir directamente al problema: una sola línea. Empezaremos aprendiendo Python...

 

Más allá de los programas: ALGORTITMOS

Dos programas que resuelven el mismo problema expresados en el mismo o en diferentes lenguajes de programación pero que siguen, en lo fundamental, el mismo procedimiento, son dos implementaciones del mismo algoritmo. Un algoritmo es, sencillamente, una secuencia de pasos orientada a la consecución de un objetivo. Cuando diseñaamos un algoritmo podemos expresarlo en uno cualquiera de los numerosos lenguajes de programación de propósito general existentes. Sin embargo, ello resulta poco adecuado:

  • no todos los programadores conocen todos los lenguajes y no hay consenso acerca de cuál es el más adecuado para expresar las soluciones a los diferentes problemas.
  • cualquiera de los lenguajes de programación presenta particularidades que pueden interferiren una expresión clara y concisa de la solución a un problema.

Podemos expresar los algoritmos en lenguaje natural, pues el objetivo es comunicar un procedimiento resolutivo a otras personas y, eventualmente, traducirlos a algún lenguaje de programación. Si, por ejemplo, deseamos calcular la media de tres números leídos de teclado podemos seguir este algoritmo:

1. solicitar el valor del primer n´umero,

2. solicitar el valor del segundo n´umero,

3. solicitar el valor del tercer n´umero,

4. sumar los tres n´umeros y dividir el resultado por 3,

5. mostrar el resultado.

 

Un algoritmo debe poseer las siguientes características:

 

1. Ha de tener cero o más datos de entrada.

2. Debe proporcionar uno o más datos de salida como resultado.

3. Cada paso del algoritmo ha de estar definido con exactitud, sin la menor ambigüedad.

4. Ha de ser finito, es decir, debe finalizar tras la ejecución de un número finito de pasos,cada uno de los cuales ha de ser ejecutable en tiempo finito.

5. Debe ser efectivo, es decir, cada uno de sus pasos ha de poder ejecutarse en tiempo finito con unos recursos determinados (en nuestro caso, con los que proporciona un sistema computador).Además, nos interesa que los algoritmos sean eficientes, esto es, que alcancen su objetivo lo más rápidamente posible y con el menor consumo de recursos.

 

. . . . . . . . . . . . . . .  . . . . . . . .Ejercicios . . . . . . . . . . . . . . .

  • Diseña un algoritmo para calcular el área de un círculo dado su radio. (Recuerda que el área de un círculo es  pi veces el cuadrado del radio.) 
  • Diseñaa un algoritmo que calcule el IVA (16%) de un producto dado su precio de ventasin IVA.
  • ¿Podemos llamar algoritmo a un procedimiento que escriba en una cinta de papel todos los números decimales de pi?