1 00:00:00,710 --> 00:00:07,070 Bienvenido a esta primera clase que va a ser una introducción a los lenguajes de programación y a la programación como tal. 2 00:00:08,369 --> 00:00:17,070 Entonces, este tema o esta primera parte la vamos a distinguir o la vamos a dividir en dos bloques. 3 00:00:17,510 --> 00:00:22,750 Una primera parte que se llama los lenguajes de programación, donde vamos a describir qué es un lenguaje de programación, 4 00:00:22,750 --> 00:00:26,929 en qué consiste programar, tipos de lenguaje de programación, etc. 5 00:00:27,250 --> 00:00:30,190 Y una última que es describir qué es un algoritmo. 6 00:00:30,370 --> 00:00:35,210 Porque al final el algoritmo es lo que vamos a utilizar para solucionar problemas, ¿vale? 7 00:00:35,310 --> 00:00:39,270 Que al final es para lo que sirve la programación, ¿vale? 8 00:00:39,310 --> 00:00:41,310 No sirve nada más que para resolver problemas. 9 00:00:41,630 --> 00:00:44,590 Estos problemas pueden ser matemáticos o no, ¿vale? 10 00:00:45,229 --> 00:00:49,070 Simplemente eso, ¿vale? La resolución de problemas. 11 00:00:49,810 --> 00:00:59,179 Entonces, en primer lugar, describir qué es un lenguaje de programación. 12 00:00:59,179 --> 00:01:06,500 Un lenguaje de programación, si damos una definición formal, simplemente es un lenguaje formal, como digo, 13 00:01:07,319 --> 00:01:20,659 que proporciona a un ordenador una serie de instrucciones para actuar o ser capaces de controlar el comportamiento físico-lógico de dicho ordenador. 14 00:01:20,659 --> 00:01:26,019 Pero si nos vamos a una traducción más real de lo que nosotros hacemos 15 00:01:26,019 --> 00:01:32,260 Un lenguaje de programación no es más que el idioma que entiende un equipo informático 16 00:01:32,260 --> 00:01:33,980 Ya sea un ordenador o no 17 00:01:33,980 --> 00:01:39,840 Es decir, un lenguaje de programación será un código que nosotros pondremos 18 00:01:39,840 --> 00:01:44,799 Y que al final el ordenador será capaz de entenderlo como el lenguaje que él entiende 19 00:01:44,799 --> 00:01:48,439 Que es el binario, que son ceros y uno 20 00:01:48,439 --> 00:01:52,540 ¿Ok? Por lo tanto, eso es lo que nosotros tenemos que saber 21 00:01:52,540 --> 00:01:58,000 Que cuando estamos programando, estamos utilizando un lenguaje de programación que se va a convertir al final en 0 y 1 22 00:01:58,000 --> 00:02:07,650 Vale, entonces, primero vamos a explicar, vamos a clasificar los lenguajes de programación 23 00:02:07,650 --> 00:02:12,090 La primera clasificación es atendiendo aquí como pone a su proximidad o lejanía a la máquina 24 00:02:12,090 --> 00:02:18,969 Es decir, vamos a entenderlo realmente como en cuanto más cerca de la máquina estamos 25 00:02:18,969 --> 00:02:23,030 son lenguajes más difíciles, ¿vale? 26 00:02:23,669 --> 00:02:27,389 Son lenguajes que tienen mayor dificultad, ¿vale? 27 00:02:27,490 --> 00:02:32,590 Mientras que si nos acercamos a alto nivel, son lenguajes más fáciles, ¿vale? 28 00:02:33,349 --> 00:02:37,229 Un lenguaje de alto nivel sería, pues como pone aquí, 29 00:02:38,289 --> 00:02:40,289 escribir algo que la máquina entienda, ¿vale? 30 00:02:40,789 --> 00:02:43,009 Vamos, explicándolo a grosso modo, ¿vale? 31 00:02:43,050 --> 00:02:46,370 Entonces sería como si nosotros escribiéramos con 1 y 0, ¿vale? 32 00:02:46,370 --> 00:02:52,129 Esto es muy complicado, porque hacer instrucciones o decidir qué queremos hacer con un cero es muy complicado. 33 00:02:52,550 --> 00:03:03,270 Entonces, a medida que nos vamos subiendo de nivel, vamos convirtiendo ese lenguaje de programación en algo más sencillo, más parecido a nuestro propio lenguaje. 34 00:03:03,629 --> 00:03:07,370 Más parecido a nuestro lenguaje. 35 00:03:07,969 --> 00:03:08,650 ¿Vale? 36 00:03:10,009 --> 00:03:12,310 A nuestro lenguaje. 37 00:03:12,310 --> 00:03:21,699 ¿Vale? Entonces aquí dentro de esto podemos trabajar con variables, con matrices, con un montón de conceptos 38 00:03:21,699 --> 00:03:26,740 Que son mucho más similares a lo que nosotros estamos acostumbrados a trabajar en el día a día 39 00:03:26,740 --> 00:03:30,199 ¿Vale? Y aparte estos lenguajes son transportables 40 00:03:30,199 --> 00:03:34,599 ¿Qué significa? Pues que los podemos transportar de cualquier tipo de ordenador a otro 41 00:03:34,599 --> 00:03:38,199 ¿Vale? Entre esos lenguajes de programación hay muchos 42 00:03:38,199 --> 00:03:44,300 Está el C, el C++, el Visual Basic, el Java, R que se utiliza mucho para estadística 43 00:03:44,300 --> 00:03:47,340 y el que nosotros vamos a utilizar, que es Python, ¿vale? 44 00:03:50,590 --> 00:03:59,800 Entonces, tipos de lenguajes vamos a distinguir dos, y lo explico muy fácilmente. 45 00:03:59,840 --> 00:04:02,520 Los lenguajes compilados y los interpretados. ¿Qué diferencia hay? 46 00:04:03,039 --> 00:04:06,340 Nosotros, como hemos dicho, siempre vamos a tener un lenguaje, ¿vale? 47 00:04:06,340 --> 00:04:11,039 Vamos a hacer un documento en un lenguaje de programación que se va a traducir en 1 y 0, ¿vale? 48 00:04:13,560 --> 00:04:20,699 Esta traducción la va a hacer un programa que se llama el compilador, ¿vale? 49 00:04:20,699 --> 00:04:29,180 El compilador es el que traduce, ¿vale? Entonces, en ese sentido, tenemos dos tipos de lenguajes, los compilados y los interpretados. 50 00:04:30,040 --> 00:04:40,060 Los lenguajes compilados lo que cogen es todo el documento totalmente escrito, ¿vale? Se lo dan al compilador, ¿vale? 51 00:04:40,060 --> 00:04:49,899 Y el compilador, una vez que coge todo el documento, genera los 1 y 0 asociados a ese programa. 52 00:04:49,899 --> 00:05:16,259 Mientras que el lenguaje interpretado, nosotros tenemos todo el documento y él lo que hace es que en vez de compilar todo, sino que coge la primera línea, se la lleva al compilador, el compilador lo convierte a lenguaje máquina, por ejemplo 101, luego coge la siguiente línea, la convierte a la siguiente instrucción y así sucesivamente. 53 00:05:16,259 --> 00:05:27,139 ¿Vale? ¿Tipos de lenguajes compilados? Pues C, C++, Java, mientras que interpretados pues están el Ruby, el JavaScript que se utiliza para páginas web y el Python. ¿Vale? 54 00:05:36,779 --> 00:05:47,220 Continuamos entonces. Continuamos ahora con los algoritmos. Entonces, la definición de algoritmos no es más que un conjunto de pasos para resolver un problema. Así de sencillo. 55 00:05:47,220 --> 00:05:52,139 No hay que calentarse la cabeza más, ¿vale? Entonces, ¿cómo se presenta normalmente un algoritmo? 56 00:05:52,579 --> 00:05:56,959 Pues un algoritmo se presenta con lo que se conoce como diagrama de flujo, ¿vale? 57 00:05:57,779 --> 00:06:03,720 Un diagrama de flujo es algo así, ¿vale? Que tiene una representación como la que veis, ¿vale? 58 00:06:04,160 --> 00:06:08,319 Tiene como cuatro elementos principales, que son estos que veis aquí, ¿vale? 59 00:06:08,759 --> 00:06:15,860 Y entonces lo que hace es que desarrollas un programa acorde a la necesidad que tengas, ¿vale? 60 00:06:15,860 --> 00:06:26,350 Vamos a imaginarnos que nosotros lo que queremos hacer es una multiplicación de números positivos, ¿vale? 61 00:06:26,970 --> 00:06:33,490 Entonces, empieza el programa, que tiene la sentencia de inicio-fin, que es un común óvalo, ¿vale? 62 00:06:34,129 --> 00:06:40,810 Luego, tenemos que introducir los valores de IA y B, que esos son entradas y salidas, ¿vale? Este de aquí. 63 00:06:41,189 --> 00:06:44,050 Entonces, le pedimos al usuario que meta un valor de A y un valor de B. 64 00:06:44,050 --> 00:07:02,790 Bien, luego vamos a las decisiones, que son normalmente condiciones, y cogemos y comprobamos. ¿A es mayor que 0? ¿Vale? Vamos a imaginarnos que en este caso, en este punto, el usuario mete A igual a 5 y B menos 1. ¿Vale? ¿A es mayor que 0? Sí. ¿B es mayor que 0? No. 65 00:07:02,790 --> 00:07:06,009 Como no lo es, vuelve a preguntarle al usuario. 66 00:07:06,470 --> 00:07:13,389 Entonces, el usuario ahora mete a igual a 5 y en vez de meter b igual a menos 1, mete b igual a 2. 67 00:07:13,910 --> 00:07:16,389 Ahora, vuelve a preguntar, ¿vale? 68 00:07:16,550 --> 00:07:18,269 Y dice, ¿a es mayor que 0? 69 00:07:18,490 --> 00:07:18,730 Sí. 70 00:07:19,290 --> 00:07:20,170 ¿b es mayor que 0? 71 00:07:20,310 --> 00:07:20,569 Sí. 72 00:07:20,829 --> 00:07:24,769 Como son los dos mayor que 0, los multiplica, ¿vale? 73 00:07:25,170 --> 00:07:26,610 Y el programa termina. 74 00:07:27,629 --> 00:07:27,829 ¿Vale? 75 00:07:28,129 --> 00:07:30,709 Esto sería un diagrama de flujo, sencillito, ¿ok? 76 00:07:30,709 --> 00:07:40,990 ¿Vale? Entonces, dentro de esto, dentro de la programación, vamos a distinguir muchos tipos de secuencias, digamos, ¿vale? O de instrucciones. 77 00:07:41,329 --> 00:07:51,350 Entonces, las instrucciones más importantes son, por un lado, las instrucciones de secuencia, que son simplemente operaciones matemáticas o transferencias de datos o algo así, ¿vale? 78 00:07:51,350 --> 00:08:11,389 Las otras son las bifurcaciones o tomas de decisión, que es como por ejemplo veíamos en Excel, ¿vale? Que veíamos la función sí, ¿vale? Pues sí, nosotros poníamos aquí una cosa, si ocurría hacía una cosa y si no ocurría hacía otra, ¿vale? Pues lo mismo, ¿vale? 79 00:08:11,389 --> 00:08:31,959 Luego tenemos los bucles de iteraciones, que son para repetir operaciones de forma cíclica, ¿vale? Los bucles de iteraciones repiten operaciones de forma cíclica, que ya veremos para qué se utilizan esos, y también tenemos las instrucciones de entrada y salida. 80 00:08:31,959 --> 00:08:53,649 Que esto es para pedirle al usuario que meta información o para mostrar información por pantalla o, en el caso de que sea de entrada, para introducir info por teclado. 81 00:08:53,649 --> 00:09:03,090 y por último, el último grupo de tipos de instrucciones 82 00:09:03,090 --> 00:09:06,330 son el salto incondicional y la llamada a su rutina 83 00:09:06,330 --> 00:09:09,429 el salto incondicional en Python no tiene mucha presencia 84 00:09:09,429 --> 00:09:12,690 entonces no le vamos a hacer caso ahora mismo 85 00:09:12,690 --> 00:09:18,409 y la llamada a su rutina es algo tan sencillo como lo que nosotros vamos a trabajar en Python 86 00:09:18,409 --> 00:09:22,649 que lo vamos a trabajar muchísimo, que son las funciones 87 00:09:22,649 --> 00:09:27,629 ¿Vale? Entonces lo que nosotros tendremos será un código 88 00:09:27,629 --> 00:09:29,950 ¿Vale? Es muy parecido a como hacíamos en Excel 89 00:09:29,950 --> 00:09:32,850 Nosotros en Excel teníamos las funciones, por ejemplo, la de promedio 90 00:09:32,850 --> 00:09:37,269 ¿Vale? Tenemos la función promedio que calculaba una media 91 00:09:37,269 --> 00:09:40,929 Pues nosotros vamos a tener aquí, imaginaros que en esta sección del código 92 00:09:40,929 --> 00:09:43,450 Queremos hacer uso de la función promedio 93 00:09:43,450 --> 00:09:47,950 ¿Vale? Pues entonces nosotros iríamos, ejecutaremos la función promedio 94 00:09:47,950 --> 00:09:52,529 Y luego volveríamos, cuando ya la hemos ejecutado, volveríamos a donde habíamos dejado el código 95 00:09:52,529 --> 00:10:00,769 ¿Vale? ¿Ok? Eso en cuanto a programación no tiene más. ¿Vale? Vamos a continuar con lo que es Python en sí.