{"id":34024,"date":"2024-02-16T19:12:20","date_gmt":"2024-02-16T19:12:20","guid":{"rendered":"https:\/\/blogs.ugto.mx\/rea\/?p=34024"},"modified":"2024-02-16T19:12:21","modified_gmt":"2024-02-16T19:12:21","slug":"clase-digital-17-migracion-a-otros-lenguajes-de-programacion-arturo-y-carlos","status":"publish","type":"post","link":"https:\/\/blogs.ugto.mx\/rea\/clase-digital-17-migracion-a-otros-lenguajes-de-programacion-arturo-y-carlos\/","title":{"rendered":"Clase digital 17. Migraci\u00f3n a otros lenguajes de programaci\u00f3n Arturo y Carlos"},"content":{"rendered":"\n\n\n<div class=\"wp-block-cover is-light\" style=\"min-height:284px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\"><\/span><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-34388\" alt=\"\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.09.23.png\" style=\"object-position:49% 62%\" data-object-fit=\"cover\" data-object-position=\"49% 62%\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1287\" height=\"630\" class=\"wp-block-cover__image-background wp-image-34388\" alt=\"\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.09.23.png\" style=\"object-position:49% 62%\" data-object-fit=\"cover\" data-object-position=\"49% 62%\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.09.23.png 1287w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.09.23-300x147.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.09.23-1024x501.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.09.23-768x376.png 768w\" sizes=\"auto, (max-width: 1287px) 100vw, 1287px\" \/><\/noscript><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-base-3-color has-text-color has-large-font-size wp-block-paragraph\">Migraci\u00f3n a otros lenguajes de programaci\u00f3n Arturo y Carlos<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduccion\">Introducci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Sean ustedes bienvenidas y bienvenidos a esta \u00faltima clase del curso de programaci\u00f3n b\u00e1sica! Esperamos que este trayecto en el que hemos aprendido de uso de un lenguaje de programaci\u00f3n como el C nos haya ense\u00f1ado algo muy importante, el reto m\u00e1s grande en aprender a programar se encuentra en entrenarnos en desarrollar un pensamiento l\u00f3gico que nos permita dise\u00f1ar algoritmos con los que resolveremos tareas y una vez construida esa estructura mental, la tenemos que codificar de tal manera que un objeto inanimado como lo es una computadora, pueda descifrar nuestras instrucci\u00f3n y ejecutarlas. Eso \u00faltimo lo logramos escribiendo las \u00f3rdenes en un lenguaje de programaci\u00f3n, espec\u00edficamente lo hicimos en el lenguaje C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si lo piensan un poco esto sucede de manera semejante en nuestro cerebro al querernos comunicar con alguien para darle una serie de instrucciones. Primero pensamos muy bien la serie de pasos que queremos que haga la otra persona, luego tenemos que elegir el idioma en el que damos las instrucciones, de nada sirve tener las instrucciones m\u00e1s precisas si nuestro interlocutor no sabe el idioma que hemos elegido, ya que tenemos el idioma apropiado, traducimos nuestras instrucciones a dicho lenguaje y se las damos a nuestro interlocutor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los lenguajes de programaci\u00f3n tienen una equivalencia muy grande a los leguajes de la comunicaci\u00f3n humana, la mayor\u00eda de nosotros tiene al espa\u00f1ol como lengua materna porque la casualidad nos hizo nacer en una familia que hablaba ese idioma, pero si hubi\u00e9ramos nacido en Brasil habr\u00edamos tenido al portugu\u00e9s como lengua materna, Lo mismo pasa con la programaci\u00f3n, una componente importante de por qu\u00e9 programamos en uno u otro lenguaje es porque a nuestro al rededor (compa\u00f1eros de escuela, de trabajo, colegas de investigaci\u00f3n, etc.) programan en un lenguaje y para compartir c\u00f3digo pues usamos el lenguaje que usa la mayor\u00eda. Pero algo que hemos aprendido en este siglo XXI, es que las personas nos podemos comunicar mucho m\u00e1s eficientemente que nunca, y eso implica conocer gente que programa en muchos lenguajes, grupos de trabajo que eligen un leguaje distinto a otros y si queremos colaborar no los queda m\u00e1s que aprender de esa leyenda de la Torre de Babel, donde se hablaban todas las lenguas del mundo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un programador eficiente debe generar las habilidades para aprender nuevos lenguajes de programaci\u00f3n aceleradamente, de todos los lenguajes de programaci\u00f3n que se crean solo algunos pocos sobrevivir\u00e1n al tiempo y se difundir\u00e1 su uso, pero a lo largo de la vida profesional de ustedes seguramente ver\u00e1n varios lenguajes fuertemente difundidos y tendr\u00e1n que aprenderlos. La \u00fanica certeza que se tiene en programaci\u00f3n es que seguramente tendr\u00e1s que aprender un nuevo lenguaje de programaci\u00f3n en tu futuro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pues bien, no todo son malas noticias con esto de tener que aprender nuevos lenguajes, una buena noticia es que, si lograste aprender C a la profundidad propuesta en este curso, habr\u00e1s aprendido uno de los lenguajes m\u00e1s retadores que hay, as\u00ed que los dem\u00e1s lenguajes ser\u00e1n m\u00e1s f\u00e1ciles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta clase hemos elegido dos de los lenguajes m\u00e1s difundidos tanto en el \u00e1rea acad\u00e9mica como en el \u00e1rea laboral:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Matlab<\/li>\n\n\n\n<li>Python<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Desarrollaremos a lo largo de la clase un muy resumido tutorial de como escribir c\u00f3digo en estos dos lenguajes. \u00a1Manos a la obra!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"desarrollo-del-tema\">Desarrollo del tema <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Matlab<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/la.mathworks.com\/products\/matlab.html?s_tid=hp_products_matlab\">Matlab<\/a> \u2122 (software desarrollado por la compa\u00f1\u00eda Mathworks) significa Matrix Laboratory (Laboratorio de Matrices) y es un sistema completo de c\u00f3mputo que tiene un lenguaje de programaci\u00f3n que se llama M pero adem\u00e1s un ambiente gr\u00e1fico que permite desarrollar c\u00f3digo que muestra resultados gr\u00e1ficos de manera muy sencilla, esto, y que existen bibliotecas (formalmente llamadas Toolboxes) que implementan algoritmos muy espec\u00edficos y avanzados en temas muy variados, hace de Matlab una herramienta fuertemente usada en el \u00e1mbito industrial y acad\u00e9mico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Matlab tiene una GRAN desventaja, el costo del software es MUY elevado, una licencia que incluya a la mayor\u00eda de los toolboxes, para fines de lucro, puede costar m\u00e1s de los $10,000 USD. Las licencias para su uso en el \u00e1rea de investigaci\u00f3n o docencia baja, pero a\u00fan es un precio muy elevado, m\u00e1s comparado con lenguajes como Python, que se enmarcan en licencias de software libre. Las licencias para estudiantes tienen un costo m\u00e1s accesible, tener acceso a Matlab con un grupo razonable de toolboxes para la comunidad estudiantil puede estar dentro del orden de los 100 o 200 d\u00f3lares norteamericanos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El lenguaje de Matlab se caracteriza por ser un lenguaje int\u00e9rprete, orientado a objetos, que maneja de manera nativa las estructuras como las matrices. Una de las grandes ventajas respecto a C, es su gran capacidad de paralelizaci\u00f3n autom\u00e1tica de c\u00f3digo, dado que las matrices son las estructuras b\u00e1sicas de las variables, un escalar es una matriz de tama\u00f1o 1&#215;1, un vector unidimensional de tama\u00f1o N ser\u00e1 una matriz de tama\u00f1o 1xN o de Nx1, el escalar por defecto en Matlab es un n\u00famero complejo, as\u00ed que no tenemos por qu\u00e9 preocuparnos que en alg\u00fan momento de un c\u00e1lculo el resultado no sea un n\u00famero real (cosa impensable en C). Por otro lado, el generar gr\u00e1ficas profesionales es realmente sencillo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La curva de aprendizaje (una gr\u00e1fica que en el eje de las x\u00b4s tiene el tiempo de aprendizaje y en el eje de las y\u2019s la sofisticaci\u00f3n en la programaci\u00f3n) es de un r\u00e1pido crecimiento en tiempos de aprendizaje cortos; noten que, en C, esta curva es diferente, hay que aprender muchas cosas en C para comenzar a hacer programas muy sencillos y una vez aprendidas entonces la complejidad en resultados aumenta r\u00e1pido).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pues bueno comencemos a ver como se programa en Matlab. El que el lenguaje sea int\u00e9rprete y no compilado, hace que no sea necesario tener un archivo ejecutable para que se pueda correr un programa, sino que cada l\u00ednea del archivo del programa se lee e interpreta y despu\u00e9s se ejecuta, sin preocuparse por cual es la siguiente l\u00ednea de c\u00f3digo que viene, los archivos de programas se les llama scripts (guiones) y como cuando uno lee algo, lo lee rengl\u00f3n por rengl\u00f3n. Este comportamiento facilita enormemente tener herramientas de depuraci\u00f3n. Otra caracter\u00edstica importante es que no es necesario declarar variables, simplemente se usan y ya. Para arreglos es recomendable localizarlos en memoria, con el tama\u00f1o adecuado antes de usarlos, pero no es obligatorio hacerlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una l\u00ednea de comando tambi\u00e9n termina con ;, pero su uso tiene un significado MUY diferente, en C, el ; significa fin de comando, en Matlab el ; significa que queremos ejecutar el comando en forma silente, esto quiere decir que no queremos que aparezca el resultado en la consola, si quisi\u00e9ramos que el resultado se muestre en la consola basta eliminar el ; del final de la l\u00ednea (recuerde que en C quitar un ; puede generar un error de sintaxis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A diferencia de C, la generaci\u00f3n de un bloque de comandos no es necesario encerrarlo entre llaves, solo es importante usar la palabra reservada end en el lugar donde podr\u00edamos el s\u00edmbolo } en C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una diferencia MUY importante que hay que tener en cuenta cuando se programa en Matlab, es que todo arreglo comienza en la posici\u00f3n 1 en vez de la 0, as\u00ed que el primer elemento de un vector llamado arreglo es arreglo(1).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los corchetes [] se usan de manera diferente a C, en Matlab se usan para formar objetos, as\u00ed, construir una matriz se escribe:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.14.22.png\" alt=\"\" class=\"wp-image-34392\" style=\"width:810px;height:auto\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"791\" height=\"41\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.14.22.png\" alt=\"\" class=\"wp-image-34392\" style=\"width:810px;height:auto\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.14.22.png 791w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.14.22-300x16.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.14.22-768x40.png 768w\" sizes=\"auto, (max-width: 791px) 100vw, 791px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Esta l\u00ednea forma una matriz de 3&#215;3 , las comas dentro de los corchetes indican cambio de columna y los ; significan cambio de rengl\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las secuencias de control son MUY parecidas a las de C tanto en sintaxis como en uso. Las secuencias de repetici\u00f3n while y do-while tambi\u00e9n se usan de la misma manera que el C, Existe un cambio importante en el ciclo for, recordemos la sintaxis de C:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">for (exp1;cond;exp2)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">la exp1 se ejecuta solo la primera vez en la que se ejecuta el for, el ciclo se repetir\u00e1 mientras cond sea cierto y exp2 se ejecutar\u00e1 cada vez que termina un ciclo de repetici\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Matlab el ciclo for se repetir\u00e1 tantas veces como el tama\u00f1o de un vector, por ejemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">for i=1:10<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El ciclo se repetir\u00e1 tantas veces como elementos diferentes toma i, en este caso en el primer ciclo i=1, en el segundo ciclo i=2 y as\u00ed sucesivamente hasta llegar a i=10.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los programas de ejecuci\u00f3n son conformados por listados de comandos a los que se les llama scripts, las funciones suelen estar escritas en un archivo independiente cuyo nombre coincida con el nombre de la funci\u00f3n, en ambos casos la extensi\u00f3n de los archivos ser\u00e1 el .m. Una diferencia muy importante entre Matlab y C en el tema de funciones es que en Matlab no se tiene la restricci\u00f3n que tiene C sobre el regreso de un solo valor por la izquierda. Matlab puede regresar tantos objetos como se deseen, de esta manera el concepto de apuntador no se usa en este contexto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un reto muy importante al programar en Matlab es entender el proceso de paralelizaci\u00f3n que tiene Matlab, por ejemplo, veamos estas l\u00edneas de c\u00f3digo:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.15.35.png\" alt=\"\" class=\"wp-image-34393\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"80\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.15.35.png\" alt=\"\" class=\"wp-image-34393\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.15.35.png 784w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.15.35-300x31.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.15.35-768x78.png 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La primera l\u00ednea de c\u00f3digo genera el objeto que es un arreglo de 2&#215;2 de tipo double, la matriz formada es:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.16.22.png\" alt=\"\" class=\"wp-image-34395\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"58\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.16.22.png\" alt=\"\" class=\"wp-image-34395\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.16.22.png 785w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.16.22-300x22.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.16.22-768x57.png 768w\" sizes=\"auto, (max-width: 785px) 100vw, 785px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En la segunda l\u00ednea vean que es un producto escalar, la constante pi no es necesario definirla, Matlab tiene determinadas constantes universales, as\u00ed que ahora A tiene los valores:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.17.22.png\" alt=\"\" class=\"wp-image-34396\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"99\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.17.22.png\" alt=\"\" class=\"wp-image-34396\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.17.22.png 786w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.17.22-300x38.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.17.22-768x97.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u00a1Vean lo f\u00e1cil que es operar con matrices! No necesitamos hacer los dos ciclos for anidados que en C no nos salvamos de hacerlo. Pero lo m\u00e1s sorprendente es lo que pasa en la tercera l\u00ednea. Noten que estamos invocando a una funci\u00f3n trigonom\u00e9trica como el seno pero el argumento no es un escalar, \u00a1Es una matriz! Pi\u00e9nsenle bien, \u00bfQu\u00e9 podr\u00e1 significar que en vez de poner un \u00e1ngulo pongo una matriz? Bueno pues ah\u00ed Matlab hace lo siguiente: Matlab asume que lo que queremos es aplicar la funci\u00f3n seno a cada uno de los elementos de la matriz de forma independiente, y para no perder la posici\u00f3n del elemento evaluado, Matlab regresa una matriz de la misma forma que tiene la matriz A pero con los valores calculados, uno por uno, vean que la tercera l\u00ednea no tiene el ; final, entonces en la consola veremos:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.18.11.png\" alt=\"\" class=\"wp-image-34397\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"81\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.18.11.png\" alt=\"\" class=\"wp-image-34397\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.18.11.png 793w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.18.11-300x31.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.18.11-768x78.png 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Ustedes podr\u00e1n comprobar que, efectivamente, es la evaluaci\u00f3n del seno de cada elemento de la matriz A, pero lo sorprendente no termina ah\u00ed, como cada evaluaci\u00f3n de cada posici\u00f3n es independiente una de otra, Matlab busca los recursos de c\u00f3mputo que tiene disponible la computadora y manda procesos en paralelo para calcular estos 4 valores al mismo tiempo, as\u00ed que lo hace mucho m\u00e1s r\u00e1pido que ir calculando las cosas de uno a la vez.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entonces, al programar en Matlab, hay que penar como escribir el c\u00f3digo para que Matlab pueda hacer esto de paralelizar c\u00f3digo, es todo un entrenamiento, pero como habr\u00e1n visto los primeros pasos son muy sencillos de llevar a cabo para migrar c\u00f3digo.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Para m\u00e1s detalles sobre el leguaje M de Matlab pueden consultar:<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/la.mathworks.com\/help\/matlab\/language-fundamentals.html?s_tid=CRUX_lftnav\" style=\"background:linear-gradient(135deg,rgb(240,152,0) 0%,rgb(240,152,0) 100%)\" target=\"_blank\" rel=\"noreferrer noopener\">     ACCEDE      <\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Y para un curso completo puedes consultar:<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/github.com\/jousefm\/Mega-Course-MATLAB\" style=\"background:linear-gradient(135deg,rgb(240,152,0) 0%,rgb(240,152,0) 100%)\" target=\"_blank\" rel=\"noreferrer noopener\">     ACCEDE      <\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Python Python es un lenguaje de programaci\u00f3n de c\u00f3digo abierto, prop\u00f3sito general, interpretado y orientado a objetos. Su primera versi\u00f3n liberada se remonta a 1991 y actualmente (2023) es uno de los lenguajes m\u00e1s populares a nivel mundial (puede consultar un top 10 de los lenguajes de programaci\u00f3n m\u00e1s populares en la siguiente liga.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.stackscale.com\/blog\/most-popular-programming-languages\/\" style=\"border-radius:100px;background:linear-gradient(135deg,rgb(240,152,0) 0%,rgb(240,152,0) 98%)\" target=\"_blank\" rel=\"noreferrer noopener\">     ACCEDE      <\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Python tiene la ventaja de ser mucho m\u00e1s simple de usar que C, dado que C es un lenguaje de bajo nivel de abstracci\u00f3n y Python de alto nivel. Lo cual significa que con C podemos comunicarnos a niveles m\u00e1s cercanos al hardware y con Python con niveles m\u00e1s cercanos al usuario. A continuaci\u00f3n se describe c\u00f3mo definir variables, las estructuras condicionales, y c\u00edclicas en Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Definici\u00f3n de Variables<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para definir variables en Python, no debemos ni necesitamos especificar de antemano su tipo de dato, como hac\u00edamos en C. Esto es porque s\u00f3lo los lenguajes compilados como C o FORTRAN piden la especificaci\u00f3n del tipo de dato para cada variable, mientras que los lenguajes interpretados como Python o PHP asignan un tipo de dato adecuado para el valor que se trata de almacenar. Analice el siguiente ejemplo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.27.58-1024x380.png\" alt=\"\" class=\"wp-image-34404\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"380\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.27.58-1024x380.png\" alt=\"\" class=\"wp-image-34404\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.27.58-1024x380.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.27.58-300x111.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.27.58-768x285.png 768w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.27.58.png 1078w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En la figura anterior se puede observar que para definir un comentario de \u00fanica l\u00ednea utilizaremos el numeral #, similar a la doble diagonal empleado en C. En la l\u00ednea 2, se asigna una cadena de caracteres a la variable nombre. En C, deber\u00edamos haber guardado dicha cadena en un arreglo de caracteres, de la forma char nombre[] = \u201cSof\u00eda\u201d;. Observe tambi\u00e9n lo siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&nbsp;Despu\u00e9s de la asignaci\u00f3n no se requiere el punto y coma para finalizar la sentencia.<\/li>\n\n\n\n<li>No importamos ninguna biblioteca de funciones. En C necesitamos la biblioteca &lt;stdio.h&gt; para mostrar mensajes en pantalla o recibir datos desde teclado. Sin embargo, en Python la funci\u00f3n print(\u2026), la funci\u00f3n type(\u2026) y otras como id(&#8230;) se encuentran disponibles como parte del lenguaje, es decir, no requieren bibliotecas de funciones.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00ednea 5 muestra el contenido de la variable nombre. No se requieren especificadores de formato como %s, %d o %f para mostrar los valores de las variables. Estos son automaticamente reconocidos por la funci\u00f3n print(\u2026). La funci\u00f3n type(\u2026) muestra la salida &lt;<strong>class \u2018str\u2019<\/strong>&gt; que se\u00f1ala que la variable nombre es un <strong>objeto<\/strong> de la clase string. Python, a diferencia de C, sigue un paradigma orientado a objetos. Dicho paradigma es seguido tambi\u00e9n en el lenguaje C++ y su explicaci\u00f3n sale del \u00e1mbito de esta clase, pero por ahora basta con saber que los objetos son tipos de datos compuestos, con lo que se pueden realizar operaciones distintas a los tipos de datos primitivos como int, float, char, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La l\u00ednea 9 reasigna un valor a la variable nombre, pero observe con cuidado que el nuevo valor ya no es una cadena de caracteres, sino un valor flotante (3.1416). Python cambia autom\u00e1ticamente el tipo de dato de la variable nombre para que pase de ser un tipo str a un tipo float. Al verificar en las l\u00edneas 12 y 13 observamos que el valor de la variable puede modificarse con operadores aritm\u00e9ticos, algo que s\u00f3lo puede ocurrir con variables de tipo num\u00e9ricas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Estructuras condicionales<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En python existe la estructura if-else tanto en su forma simple como en los diversos anidamientos. Sin embargo, la sintaxis es un poco distinta a C. Veamos el siguiente ejemplo para ilustrar las diferencias.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.29.13-1024x384.png\" alt=\"\" class=\"wp-image-34407\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"384\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.29.13-1024x384.png\" alt=\"\" class=\"wp-image-34407\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.29.13-1024x384.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.29.13-300x113.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.29.13-768x288.png 768w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.29.13.png 1076w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">La estructura condicional IF-ELSE en Python se emplea siguiendo la sintaxis if( EXPRESI\u00d3N L\u00d3GICA ), donde EXPRESI\u00d3N L\u00d3GICA puede ser una o m\u00e1s condiciones que al evaluarse retornen un valor booleano (verdadero o falso). Estas condiciones generalmente evaluadas con operadores relacionales (&lt;,&gt;,&gt;=,&lt;=,==,!=) y\/o con operadores l\u00f3gicos (and, or y not). Observe la l\u00ednea 8, all\u00ed se est\u00e1 evaluando si la edad registrada es mayor o igual a 18. Los dos puntos \u201c:\u201d que siguen al par\u00e9ntesis de cierre indican que sigue el bloque de instrucciones a ejecutar si la condici\u00f3n es verdadera. Equivaldr\u00eda a las llaves \u201c{}\u201d empleadas en C. Las l\u00edneas 9 y 10 conforman dicho bloque. Sin embargo, es muy importante notar se\u00f1alar que \u00e9stas deben estar indentadas, es decir, debe haber un tabulador de diferencia entre el if y las instrucciones que estar\u00e1n dentro de \u00e9l. Esta en una restricci\u00f3n obligatoria en Python, la indentaci\u00f3n o alineamiento con tabuladores es la forma en la que el lenguaje ordena jer\u00e1rquicamente las instrucciones, estructuras, llamadas a funci\u00f3n y dem\u00e1s elementos que se encuentran dentro de otros. Omitir la indentaci\u00f3n marcar\u00e1 un error de ejecuci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la l\u00ednea 11, vemos que para el caso en el que no se cumpla la condici\u00f3n evaluada en if(\u2026), se podr\u00e1 ejecutar el bloque de instrucciones compuesto por las l\u00edneas 12 y 13. Al ejecutar el c\u00f3digo, ver\u00e1 la salida que aparece en la parte baja de la figura. Esto es, dado que la edad registrada es de 16 a\u00f1os, la condici\u00f3n de ser mayor a 18 no se cumple y los mensajes que se enviar\u00e1n a pantalla son los correspondientes al bloque else. Note que para iniciar el bloque, tambi\u00e9n else requiere los dos puntos \u201c:\u201d. Es importante mencionar que la estructura switch que conocemos en C, no existe en Python. Para poder hacer algo semejante se ocupa definir un bloque con instrucciones if, elif. Para ver un ejemplo de este caso y complementar lo descrito en la secci\u00f3n, puede consutar el siguiente enlace.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.freecodecamp.org\/espanol\/news\/sentencias-if-elif-y-else-en-python\/\" style=\"background:linear-gradient(135deg,rgb(240,152,0) 0%,rgb(240,152,0) 98%)\" target=\"_blank\" rel=\"noreferrer noopener\">     ACCEDE       <\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Ciclos<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los ciclos en Python son mucho m\u00e1s vers\u00e1tiles que en C. Es decir, pueden implementarse de formas diferentes. Veamos dos de ellas en los siguientes ejemplos.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.56.33-1024x296.png\" alt=\"\" class=\"wp-image-34420\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"296\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.56.33-1024x296.png\" alt=\"\" class=\"wp-image-34420\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.56.33-1024x296.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.56.33-300x87.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.56.33-768x222.png 768w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.56.33.png 1076w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En la figura anterior definimos un ciclo de forma similar a como lo har\u00edamos en C para calcular la suma de los primeros N n\u00fameros cuadrados. Observemos la l\u00ednea 3 con atenci\u00f3n. La sintaxis de Python para el ciclo for, es muy diferente a la empleada en C. Primero en Python no se ocupan par\u00e9ntesis para definir los elementos de inicializaci\u00f3n, condici\u00f3n de paro e incremento a los que nos acostumbramos al trabajar con C. Luego, la variable que lleva el control de las iteraciones (en este ejemplo, la variable i) no requiere un tipo de dato. La palabra in es un operador asignar\u00e1 cada uno de los valores devueltos por la funci\u00f3n range(\u2026). Dicha funci\u00f3n regresa una lista de valores 0,1,2,\u2026.10. El 11 se\u00f1alado como l\u00edmite superior en el ejemplo no se toma. En general, los rangos en Python se manejan de la forma [a,b), es decir, el l\u00edmite superior de un rago siempre es abierto, excluyendo al \u00faltimo valor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La siguiente forma de trabajar con ciclos es a trav\u00e9s de un iterador. Veamos la siguiente figura.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.59.14-1024x704.png\" alt=\"\" class=\"wp-image-34422\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"704\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.59.14-1024x704.png\" alt=\"\" class=\"wp-image-34422\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.59.14-1024x704.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.59.14-300x206.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.59.14-768x528.png 768w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-15-a-las-9.59.14.png 1072w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Podemos observar que la l\u00ednea 3 define una lista. Las listas en python permiten almacenar diferentes tipos de datos primitivos (int, float, char), cadenas de caracteres, variables, funciones, otras listas o estructuras. Es decir, podemos guardar pr\u00e1cticamente cualquier cosa como elemento de una lista, ya que se guarda la direcci\u00f3n del objeto que representa a cada uno de los elementos mencionados anteriormente. S\u00ed, incluso los tipos de datos primitivos se manejan como objetos en Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las formas de usar ciclos consiste en iterar sobre los elementos de un contenedor (listas, diccionario, tupla, conjunto u otro). La l\u00ednea 7 define un ciclo que recorrer\u00e1 todos los elementos de la lista llamada colores_y_mas. La variable elemento tomar\u00e1 cada uno de los valores almacenados en la lista y lo conservar\u00e1 durante una iteraci\u00f3n del ciclo. Para la primera iteraci\u00f3n, el valor asignado ser\u00e1 \u2018azul\u2019. En la segunda iteraci\u00f3n, la variable elemento tomar\u00e1 el segundo valor (\u2018rojo\u2019) y as\u00ed sucesivamente hasta llegar al \u00faltimo elemento de la lista. Entonces, el n\u00famero de elementos en la lista define el n\u00famero de iteraciones que realizar\u00e1 el ciclo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfQu\u00e9 pasa si queremos manipular el \u00edndice de iteraci\u00f3n 0,1,2,&#8230;N? como lo hac\u00edamos en C. Pues basta anteponer una variable extra al elemento que se asignar\u00e1 con el operador in. Observemos la l\u00ednea 15. En esta nueva versi\u00f3n del ciclo FOR colocamos dos variables (indice y elemento) separados con una coma. A esta estrategia de recuperar m\u00e1s de un valor como resultado de una llamada a funci\u00f3n u operador se el conoce como empacado y desempacado (zip and unzip). La funci\u00f3n enumerate(\u2026) asignar\u00e1 un \u00edndice, comenzando de 0, a cada uno de los elementos en la lista colores_y_mas. Dichos \u00edndices se pasar\u00e1n uno por uno en cada iteraci\u00f3n a la variable indice. Los elementos de la lista se ir\u00e1n asignando en cada iteraci\u00f3n como en el FOR explicado anteriormente de la l\u00ednea 7.&nbsp; Al observar la salida de ambos ciclos, vemos que el primero arroja los elementos de la lista colore_y_mas, mientras que el segundo ciclo FOR, arroja los mismos elementos, pero precedidos por su correspondiente \u00edndice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existen muchas otras estructuras, operadores, funciones, y elementos del lenguaje de programaci\u00f3n Python que analizar. Sin embargo, esperamos que con esta introducci\u00f3n al lenguaje hayas ganado la motivaci\u00f3n suficiente para conocer nuevos paradigmas (formas de pensar) en programaci\u00f3n tales como el orientado a objetos, el funcional, el l\u00f3gico y muchos otros que te esperan por descubrir en este basto mundo de la programaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cada lenguaje de programaci\u00f3n tiene sintaxis y herramientas que facilitan o dificultan desarrollar algoritmos espec\u00edficos, la elecci\u00f3n del lenguaje \u201ccorrecto\u201d es muy complicada e intervienen factores que se alejan mucho de la parte t\u00e9cnica, como preferencias de grupos de programadores, trabajo previo que se ha codificado en alg\u00fan lenguaje y que se ha depurado por mucho tiempo, y la migraci\u00f3n a otro lenguaje representa un riesgo, la disposici\u00f3n de herramientas de software, etc. Con esta gran cantidad de variables involucradas, la estrategia de conocer, o al menos aprender a programar en distintos lenguajes de programaci\u00f3n es fundamental para una persona que se involucra en ambientes donde existen m\u00faltiples programadores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfCu\u00e1l ser\u00e1 el nuevo lenguaje que sustituya a los que actualmente est\u00e1n en las manos de todos? No se sabe, pero lo que es un hecho es que con forme pase el tiempo m\u00e1s probable ser\u00e1 que llegue un nuevo lenguaje que tengamos que aprender, as\u00ed que lo mejor que podemos hacer es tener una t\u00e9cnica para aprender a programar r\u00e1pidamente en lenguajes desconocidos para nosotros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fuentes-de-informacion\">Fuentes de informaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Referencia t\u00e9cnica oficial del lenguaje de programaci\u00f3n Python<\/li>\n\n\n\n<li>Aspectos fundamentales del lenguaje <a href=\"https:\/\/la.mathworks.com\/help\/matlab\/language-fundamentals.html?s_tid=CRUX_lftnav\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/la.mathworks.com\/help\/matlab\/language-fundamentals.html?s_tid=CRUX_lftnav<\/a><\/li>\n\n\n\n<li>Curso de programaci\u00f3n en Python, en ingl\u00e9s. <a href=\"https:\/\/www.youtube.com\/watch?v=nLRL_NcnK-4\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.youtube.com\/watch?v=nLRL_NcnK-4<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n \u00a1Sean ustedes bienvenidas y bienvenidos a esta \u00faltima clase del curso de programaci\u00f3n b\u00e1sica! Esperamos que este trayecto en el que hemos aprendido de uso de un lenguaje de programaci\u00f3n como el C nos haya ense\u00f1ado algo muy importante, el reto m\u00e1s grande en aprender a programar se encuentra en entrenarnos en desarrollar un &#8230; <a title=\"Clase digital 17. Migraci\u00f3n a otros lenguajes de programaci\u00f3n Arturo y Carlos\" class=\"read-more\" href=\"https:\/\/blogs.ugto.mx\/rea\/clase-digital-17-migracion-a-otros-lenguajes-de-programacion-arturo-y-carlos\/\" aria-label=\"Leer m\u00e1s sobre Clase digital 17. Migraci\u00f3n a otros lenguajes de programaci\u00f3n Arturo y Carlos\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[880,881],"tags":[],"class_list":["post-34024","post","type-post","status-publish","format-standard","hentry","category-licenciatura-en-ingenieria-biomedica","category-uda-programacion-basica"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/34024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/comments?post=34024"}],"version-history":[{"count":5,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/34024\/revisions"}],"predecessor-version":[{"id":34481,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/34024\/revisions\/34481"}],"wp:attachment":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/media?parent=34024"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/categories?post=34024"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/tags?post=34024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}