🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Algoritmia
  3. Introducción a la algoritmia
Extrait - Algoritmia Técnicas fundamentales de programación – Ejemplos en Python (numerosos ejercicios corregidos) (Nueva edición)
Extractos del libro
Algoritmia Técnicas fundamentales de programación – Ejemplos en Python (numerosos ejercicios corregidos) (Nueva edición) Volver a la página de compra del libro

Introducción a la algoritmia

Los fundamentos de la informática

1. Arquitectura de un ordenador

La idea de una máquina capaz de realizar múltiples cálculos procede de la máquina de Turing. Alan Turing es el matemático que, junto a su equipo, consiguió descifrar la máquina Enigma durante la Segunda Guerra Mundial, lo que supuso una enorme ventaja estratégica y táctica para vencer a los alemanes. Alan Turing tuvo esta brillante idea en 1936.

Hasta entonces, todas las máquinas estaban diseñadas para realizar una única tarea, un único proceso de cálculo. En términos sencillos, una máquina que podía resolver sumas no podía resolver multiplicaciones. Por tanto, las máquinas estaban muy limitadas y su coste era demasiado elevado para que se generalizara su uso.

La máquina de Turing es un concepto abstracto que dio origen a la informática que hoy conocemos. En pocas palabras, esta máquina consiste en una cinta infinita de casillas. Cada casilla contiene un símbolo que la máquina conoce. La máquina lee las casillas una tras otra y conserva las que necesita para realizar el cálculo descrito sobre varias casillas. Fue la primera máquina con memoria incorporada que podía resolver muchos problemas diferentes.

La máquina de Turing nunca llegó realmente a implementarse, sobre todo por la cinta infinita que representa la memoria. Sin embargo, sigue siendo el concepto básico de los ordenadores.

Todos los ordenadores actuales se basan en la arquitectura de Von Neumann. John Von Neumann fue un matemático y físico nacido en 1903 que participó en la creación de los ordenadores. En aquella época, propuso que las máquinas estuvieran formadas por cuatro módulos, como se muestra en la siguiente figura:

  • La unidad aritmética y lógica que realiza las operaciones: son nuestros procesadores actuales.

  • La unidad de control que secuencia las operaciones, que ahora también está integrada en nuestros procesadores.

  • Memoria para almacenar programas y entradas, que se ha convertido en nuestras memorias RAM y discos duros.

  • Dispositivos de entrada/salida para que el ser humano pueda proporcionar los datos de entrada a la máquina. Se trata principalmente de los actuales teclados y pantallas.

images/cap1_pag3.png

Diagrama de la aritmética Von Neumann

Es la misma arquitectura en la que se basan nuestros ordenadores. La diferencia es que los componentes electrónicos, sobre todo los procesadores, son cada vez más potentes en términos de capacidad de cálculo.

Los procesadores no son lo único que evoluciona con el tiempo: la memoria aumenta constantemente su capacidad de almacenamiento, lo que permite...

Algoritmos, el arte de programar

1. Algoritmos, ¿cómo y por qué?

Utilizamos algoritmos todos los días sin saber siquiera que lo son. Los primeros algoritmos formalizados se remontan a la Antigüedad para gestionar el agua de las fuentes y, desde entonces, no hemos dejado de crearlos y aplicarlos.

a. Ejemplos de la vida cotidiana

Decirle a un ordenador lo que tiene que hacer, es decir, darle un programa para que lo ejecute, es parecido a darle a un ser humano las instrucciones para que monte una estantería o cocine una receta para una tarta de manzana.

Todos hemos tenido alguna vez ese momento de duda cuando nos enfrentamos a unas instrucciones de montaje. Las instrucciones constan de dos partes: todas las piezas necesarias y una serie de diagramas que permiten ensamblarlas. De hecho, este documento es similar a un algoritmo y un programa:

  • La lista de piezas cubre todas las variables: 18 tornillos, 4 tableros rectangulares, un destornillador, etc.

  • Los diagramas muestran las instrucciones: inserte los tornillos en los orificios de los tableros, por ejemplo.

Veamos ahora una segunda analogía: una receta de cocina. Necesitaremos una masa quebrada, un sobre de azúcar avainillado, 30 gramos de mantequilla y 6 manzanas. Podemos ver la lista de ingredientes como un conjunto de variables. Después de la lista de ingredientes, tenemos los pasos que hay que seguir para hacer la receta, es decir, las instrucciones:

  • Poner la masa quebrada en un molde para tartas,

  • pelar las manzanas,

  • cortar las manzanas en rodajas,

  • colocar las rodajas sobre la masa,

  • derretir la mantequilla,

  • extender la mantequilla derretida sobre la tarta,

  • espolvorear el azúcar avainillado sobre la tarta,

  • precalentar el horno a 180°,

  • hornear la tarta durante 25 minutos.

Para los que nunca han cocinado o montado un mueble a partir de un kit, hay otro algoritmo humano que sí debería conocer: ¿cómo se cruza por un paso de peatones? Cuando cruzamos...

Los lenguajes, la implementación

1. La programación

El ordenador es un conjunto de componentes electrónicos que, en esencia, solo entienden dos cosas: hay corriente o no la hay.

Por tanto, el único lenguaje que entienden los componentes de la máquina, ya sea el procesador o las memorias, es el lenguaje binario. Solo son posibles dos valores: 1 (hay corriente) y 0 (no hay corriente).

Entonces, ¿cómo comunicarse de forma sencilla con el ordenador?

Con el tiempo, la industria informática ha implementado una serie de mejoras en el lenguaje binario para facilitar la comunicación con el usuario: codificación de texto para que los seres humanos puedan escribir en lenguaje natural, sistemas operativos como Windows, Linux o macOS, etc.

Pero estas diferentes capas solo se traducen en binario para los componentes electrónicos. Todos sus archivos digitales son, de hecho, una secuencia de 0 y 1.

Lo mismo ocurre con el desarrollador. En los primeros tiempos de la informática, el desarrollo se parecía más a la electrónica que a la informática. Más adelante llegaron las tarjetas perforadas para almacenar programas y después los lenguajes de programación.

Los lenguajes de programación son lenguajes de alto nivel que permiten al programador decirle al ordenador lo que tiene que hacer aplicando algoritmos.

Los lenguajes de programación tienen una sintaxis próxima a la del lenguaje humano, pero incorporan las limitaciones de la máquina. Nos permiten guiar la ejecución de un programa sin ambigüedades y, por tanto, garantizar que nuestras instrucciones funcionen. Si el programa no hace lo que debe, el problema reside en las instrucciones. El problema está siempre entre el teclado y la pantalla.

El primer programa se inventó incluso antes de que se creara el ordenador. Ada Lovelace, una condesa inglesa nacida en 1815, desarrolló el primer programa en un antepasado del ordenador, la máquina analítica de Charles Babbage. Fueron las primeras instrucciones dadas por un ser humano a una máquina. Como homenaje a ella, el lenguaje de programación Ada lleva su nombre.

2. Los distintos tipos de lenguajes

La programación es un campo en constante evolución. Algunos lenguajes pueden ofrecer actualizaciones varias veces al año para que sus programas sean más...