Tabla de Contenidos

01 - Introducción a la programación

Algoritmos y programas

Partes de un algoritmo:

Características de los algoritmos:

Características deseadas de los programas:

Diferencias entre algoritmo y los programa:

Aunque se suele asociar algoritmo con informática o matemáticas, los algoritmos pueden resolver problemas de distinta índole sin estar relacionados con ambos campos.

Ejemplo de algoritmo:

Cambiar rueda coche:

  - Aflojar tornillos
  - Elevar coche
  - Retirar tornillos
  - Retirar rueda dañada
  - Acoplar rueda nueva
  - Poner tornillos
  - Bajar coche
  - Apretar tornillos

Ejemplo programa:

class Hola
{
    public static void main(String[] args)
    {
        System.out.println("Hola mundo");
    }
}

Lenguajes de programación

Podemos clasificar los lenguajes de programación atendiendo a diferentes criterios. Por ejemplo, según su nivel de abstracción tenemos los lenguajes de bajo nivel y los lenguajes de alto nivel.

Los lenguajes de bajo nivel son aquellos que están más cerca de la arquitectura hardware. Al depender de la máquina, no son portables, es decir, no se pueden ejecutar en otra máquina distinta a la que se programaron. Por contra, aprovechan al máximo las características del hardware. Dentro de este grupo están:

Ejemplo código máquina:

 0010, 0000, 1001, 1001, 10001, 1110

Ejemplo código ensamblador:

 ORG	8030H
 include
 T05SEG:
	SETB TR0
	JNB uSEG,T05SEG
	CLR TR0
	CPL uSEG
	MOV R1,DPL
        INVOKE
	MOV R2,DPH
	CJNE R2,#07H,T05SEG
	CJNE R1,#78H,T05SEG
	MOV DPTR,#0
 RET

Los lenguajes de alto nivel se acercan más al lenguaje natural. Son independientes de la arquitectura del ordenador, por lo que se pueden migrar de una máquina a otra. Existen multitud de lenguajes de este tipo: Java, PHP, Python, Javascript…

Otra forma de clasificar los lenguajes es según como se ejecuten:

Elementos de un lenguaje de programación

Hay una serie de elementos que están presentes en casi todo lenguaje de programación:

Ejercicios

Ejercicio 1

Diseña un algoritmo para el lavado y aclarado de una máquina de lavado de coches automático. El funcionamiento de la máquina es el siguiente:

Cuando entra un coche, se encienden los rodillos de arrastre del coche y lo llevan hasta la zona de enjabonado. Allí, se ponen en marcha los rodillos de enjabonado y enjabonan el coche hasta que la máquina detecta que ya está enjabonado (la forma de detectarlo es irrelevante para el problema). A continuación, apaga los rodillos de enjabonado y lleva el coche hasta la zona de aclarado, donde repite la misma operación con el aclarado del coche. Si el cliente ha seleccionado la opción encerado (dato de entrada del algoritmo), realiza la operación de encerado de igual forma que las anteriores. Por último, el coche llega a la zona de secado, donde, una vez termine el proceso, se saca el coche y se apagan los rodillos de arrastre.

Ejercicio 2.a

Diseña un algoritmo para controlar la entrada en una discoteca. El algoritmo recibirá un DNI válido y deberá devolver como respuesta True en caso de poder entrar (la persona es mayor de 18 años) o False en caso contrario. Para saber la edad de una persona según su DNI, utiliza la función ficticia calcula_edad(DNI), la cual devolverá la edad en función del DNI pasado.

Ejercicio 2.b

Modifica el algoritmo anterior para comprobar que el DNI proporcionado es válido. Para validar el DNI seguiremos los siguientes pasos:

Resto 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Letra T R W A G M Y F P D X B N J Z S Q V H L C K E

Para saber la letra real del DNI pasado, usa la función ficticia lee_letra(DNI).

Ejercicio 2.c

Haz que la comprobación anterior sea una función aparte. Nuestro algoritmo original deberá llamar a esa función para hacer la comprobación del dni.