Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MORELOS FACULTAD DE CONTADURÍA, ADMINITRACIÓN E INFORMÁTICA CURSO PROPEDÉUTICO 2023 LÓGICA DE PROGRAMACIÓN AUTORES: MTRA. ANA LINDA PINEDA MENDEZ MTRA. MARIA ELENA GÓMEZ TORRES MTRO. KEVIN ALQUICIRA HERNANDEZ 2 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Objetivo General: Desarrollar en el estudiante el análisis lógico para la resolución de problemas computacionales e incentivarlo en el ámbito vocacional de la Informática Unidad 1 Introducción a lógica de programación (2 horas) 1.1 Fundamentos de algoritmos 1.1.1 Definición de algoritmo 1.1.2 Propiedades de los algoritmos 1.2 Análisis de algoritmos 1.2.1 Análisis del problema 1.2.2. Algoritmos cotidianos 1.3. Diseño de algoritmos para la resolución de problemas 1.3.1. Técnicas de diseño de algoritmos Unidad 2 Estructuras básicas en un algoritmo con pseudocódigo (12 horas) 2.1 Tipos de expresiones 2.2 Operadores 2.3 Estructuras de decisión 2.4 Estructuras de repetición 2.5 Instrucciones principales de una herramienta computacional para el desarrollo de algoritmos 2.6 Ejercicios prácticos usando una herramienta computacional Unidad 3 Lógica de programación visual e innovación en las TIC (2 horas) 3.1 Introducción a la plataforma visual (https://code.org/learn) 3.2 Prácticas con un juego didáctico 3.3 Introducción a la innovación en las TIC Nota la unidad 3, no se va a evaluar 3 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Unidad 1 Introducción a lógica de programación (2 horas) 1.1 Fundamentos de algoritmos 1.1.1 Definición de algoritmo Un algoritmo es un conjunto detallado y lógico de pasos, para alcanzar un objetivo o resolver un problema. Los pasos deben ser suficientemente detallados para que el procesador los entienda. Por ejemplo, el procesador es el cerebro de quien arma el modelo, pero el ser humano tiende a obviar muchas cosas y es muy factible que haga en forma automática algunos de los pasos del instructivo, sin detenerse a pensar en cómo llevarlos a cabo. Pero para una computadora resultaría imposible, ya que la máquina requiere de instrucciones muy detalladas para poder ejecutarlas. Ejemplificando lo anterior, considérese que a una persona se le pide intercambiar los números 24 y 9. El sujeto, con cierta lógica, responderá inmediatamente “9 y 24”. Ahora, veamos cómo lo haría el procesador de una computadora: se tendría que indicar de qué tipo son los datos que se van a utilizar, para este caso números enteros; darle nombre a tres variables, digamos num1, num2 y aux; asignarle a la variable num1 el número 24, asignarle a num2 el 9 y, posteriormente, indicarle que a la variable aux se le asigne el valor contenido en la variable num1, a num1 se le asigne el valor contenido en la variable num2 y a esta última, se le asigne el valor de la variable aux, para posteriormente imprimir los valores de las variables num1 y num2, que exhibirán los números 9 y 24; como observaste, se requieren muchos más pasos para indicarle a una computadora que realice la misma tarea que un ser humano. 4 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación 1.1.2 Propiedades de los algoritmos Hay varias propiedades que generalmente comparten los algoritmos. Es útil tener estas propiedades en mente cuando se describen algoritmos. Estas propiedades son: Finito: El algoritmo debe tener, dentro de la secuencia de pasos para realizar la tarea, una situación o condición que lo detenga, porque de lo contrario se pueden dar ciclos infinitos que impidan llegar a un término. Preciso: Un algoritmo no debe dar lugar a criterios, por ejemplo: qué sucedería si a dos personas en distintos lugares se les indicara que preparen un pastel; suponemos que las personas saben cómo preparar un pastel, y siguiendo las indicaciones de la receta del pastel llegan a un paso en el que se indica que se agregue azúcar al gusto. Cada persona agregaría azúcar de acuerdo a sus preferencias, pero entonces el resultado ya no sería el mismo, ya que los dos pasteles serían diferentes en sus características. Con este ejemplo concluimos que no se trata de un algoritmo, puesto que existe una ambigüedad en el paso descrito. Definido: Los pasos de un algoritmo deben definirse con precisión. Obtener el mismo resultado: Bajo cualquier circunstancia, si se siguen en forma estricta los pasos del algoritmo, siempre se debe llegar a un mismo resultado, como por ejemplo: obtener el máximo común divisor de dos números enteros positivos, armar un modelo a escala, resolver una ecuación, etcétera. 5 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Efectividad: De ser posible realizar cada paso del algoritmo con exactitud y un intervalo finito de tiempo. 1.2 Análisis de algoritmos 1.2.1 Análisis del problema El análisis del problema es un proceso para recabar la información necesaria para emprender una acción que solucione el problema. Diversos problemas requieren algoritmos diferentes. Un problema puede llegar a tener más de un algoritmo que lo solucione, pero la dificultad se centra en saber cuál algoritmo está mejor implementado, es decir, que, dependiendo del tipo de datos a procesar, tenga un tiempo de ejecución óptimo. Para poder determinar el rendimiento de un algoritmo se deben considerar dos aspectos: • La cantidad de datos de entrada a procesar y • El tiempo necesario de procesamiento El tiempo de ejecución depende del tipo de datos de entrada, que pueden clasificarse en tres casos: Caso óptimo: Datos de entrada con las mejores condiciones, por ejemplo: que el conjunto de datos se encuentre completamente ordenado Caso medio: Conjunto estándar de datos de entrada, ejemplo: que el 50% de los datos se encuentre ordenado y el 50% restante no lo esté. 6 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Peor caso: Datos de entrada más desfavorable, por ejemplo: que los datos se encuentren completamente desordenados. Mediante el empleo de fórmulas matemáticas es posible calcular el tiempo de ejecución del algoritmo y conocer su rendimiento en cada uno de los casos ya presentados. Existen ciertos inconvenientes para no determinar con exactitud el rendimiento de los algoritmos, a saber: • Algunos algoritmos son muy sensibles a los datos de entrada, modificando cada vez su rendimiento, causando que entre ellos no sean comparables en absoluto. • Algoritmos bastante complejos, de los cuáles no sea posible obtener resultados matemáticos específicos. No obstante lo anterior, en la mayoría de los casos sí es posible calcular eltiempo de ejecución de un algoritmo, para así poder seleccionar el algoritmo que tenga el mejor rendimiento para un problema en particular. 1.2.2. Algoritmos cotidianos Son todos aquellos algoritmos que nos ayudan a solucionar problemas de la vida cotidiana y de los cuales seguimos su metodología sin percibirlo en forma consciente. Por ejemplo tenemos el siguiente algoritmo para cambiar una llanta ponchada: Paso 1: Poner el freno de mano del automóvil Paso 2: Sacar el gato, la llave de cruz y la llanta de refacción Paso 3: Aflojar los birlos de la llanta con la llave de cruz Paso 4: Levantar el auto con el gato Paso 5: Quitar los birlos y retirar la llanta desinflada 7 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Paso 6: Colocar la llanta de refacción y colocar los birlos Paso 7: Bajar el auto con el gato Paso 8: Apretar los birlos con la llave de cruz. Paso 9: Guardar la llanta de refacción y la herramienta. Resultado: Llanta de refacción montada. Como se aprecia, la gente común realiza algoritmos cotidianos para realizar sus actividades cotidianas. 1.3. Diseño de algoritmos para la resolución de problemas 1.3.1. Técnicas de diseño de algoritmos En este tema se describirá un método por medio del cual se pueden construir algoritmos para la solución de problemas, además de las características de algunas estructuras básicas usadas típicamente en la implementación de estas soluciones y las técnicas de diseño de algoritmos. En la construcción de algoritmos se debe considerar el análisis del problema para hacer una abstracción de las características del problema, el diseño de una solución basada en modelos y, por último, la implementación del algoritmo a través de la escritura del código fuente, con la sintaxis de algún lenguaje de programación. Todo algoritmo tiene estructuras básicas que están presentes en el modelado de soluciones. Algunas de ellas son estructuras de decisión y estructuras de repetición. Existen diferentes técnicas de diseño de algoritmos para construir soluciones que satisfagan los requerimientos de los problemas, entre las que destacan: Algoritmos voraces: Son utilizados para la solución de problemas de optimización, son fáciles de diseñar y eficientes al encontrar una solución rápida al problema. Se caracterizan por ser: 8 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación • Sencillos: de diseñar y codificar. • Miopes: toman decisiones con la información que tienen disponible de forma inmediata, sin tener en cuenta sus efectos futuros. • Eficientes: dan una solución rápida al problema (aunque ésta no sea siempre la mejor). Divide y vencerás: Dividen el problema en subproblemas del mismo tipo y, aproximadamente, del mismo tamaño; resolver los subproblemas recursivamente y, finalmente, combinar la solución de los subproblemas para dar una solución al problema original. Programación dinámica: Es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas. Una subestructura óptima significa que soluciones óptimas de subproblemas pueden ser usadas para encontrar las soluciones óptimas del problema en su conjunto. En general, se pueden resolver problemas con subestructuras óptimas siguiendo estos tres pasos: 1. Dividir el problema en subproblemas más pequeños. 2. Resolver estos problemas de manera óptima, usando este proceso de tres pasos recursivamente. 3. Usar estas soluciones óptimas para construir una solución óptima al problema original. Vuelve atrás (Backtracking): Encuentran soluciones a problemas que satisfacen restricciones, van creando todas las posibles combinaciones de elementos para obtener una solución. La vuelta atrás está muy relacionada con la búsqueda combinatoria. Esencialmente, la idea es encontrar la mejor combinación posible en un momento determinado, por eso se dice que este tipo de algoritmo es una búsqueda en profundidad. 9 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Ramificación y poda: Encuentra soluciones parciales en un árbol en expansión de nodos, utiliza diversas estrategias (LIFO-Estructura Pila, FIFO-Estructura Cola y LC-Low Cost) para encontrar las soluciones, contiene una función de costo que evalúa si las soluciones halladas mejoran a la solución actual; en caso contrario, poda el árbol para ya no continuar buscando en esa rama. Los nodos pueden trabajar en paralelo con varias funciones a la vez, lo cual mejora su eficiencia, aunque en general requiere más recursos de memoria. La construcción de algoritmos se basa en la abstracción de las características del problema, a través de un proceso de análisis que permitirá seguir con el diseño de una solución basada en modelos, los cuales ven su representación tangible en el proceso de implementación del algoritmo. Análisis: Consiste en reconocer cada una de las características del problema, lo cual se logra señalando los procesos y variables que lo rodean. Los procesos pueden identificarse como operaciones que se aplican a las variables del problema. Al analizar los procesos o funciones del problema, éstos deben relacionarse con sus variables. El resultado esperado de esta fase de la construcción de un algoritmo es un modelo que represente la problemática encontrada y permita identificar sus características más relevantes. Diseño: Una vez que se han analizado las causas del problema y se ha identificado el punto exacto donde radica y sobre el cual se debe actuar para llegar a una solución, comienza el proceso de modelado de una solución factible, es decir, el diseño. En esta etapa se debe estudiar el modelo del problema, elaborar hipótesis acerca de posibles soluciones y comenzar a realizar pruebas. 10 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Unidad 2 Estructuras básicas en un algoritmo con pseudocódigo (12 horas) 2.1 Tipos de expresiones Las expresiones son combinaciones de constantes, variables, símbolos de operación, y paréntesis. Por ejemplo: a + (b + 3) / c. Cada expresión resulta en un valor que se determina al evaluar las operaciones indicadas usando los valores de las variables y constantes implicadas. Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, las expresiones se clasifican en: Aritméticas Relacionales Lógicas y De concatenación 2.2 Operadores Los operadores son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores y se dividen en cuatro grupos y son los siguientes: Aritméticos Relacionales Lógicos Concatenación 11 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Operadores Aritméticos La forma general que tiene una operación aritmética que opera sobre dos valores,como se muestra a continuación: Los operadores aritméticos son válidos para tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Las operaciones aritméticas son las siguientes: Suma: + Resta: - Multiplicación: * División: / Módulo (residuo de la división entera): % Exponenciación: ^ Ejemplos: Expresión Resultado 7 / 2 3.5 12 % 7 5 4 + 2 * 5 14 3 ^ 2 9 Operadores Relacionales Los operadores relacionales se utilizan para establecer una relación entre dos valores. Los valores se comparan entre sí y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). 12 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Los operadores relacionales deben comparan valores del mismo tipo (numéricos o cadenas), tienen el mismo nivel de prioridad en su evaluación y tienen menor prioridad que los operadores aritméticos. Las operaciones relacionales son las siguientes: > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que != Diferente == Igual Ejemplos Si a = 10, b = 20 y c = 30 a + b > c Falso a - b < c Verdadero a - b == c Falso a * b != c Verdadero Ejemplos no válidos: a < b < c 10 < 20 < 30 'hola' < 30 13 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Operadores Lógicos Los operadores lógicos se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional. Las operaciones lógicas son las siguientes: Conjunción: AND, & Disyunción: OR, | Negación: NOT, ! A continuación se muestran las tablas de verdad para las operaciones lógicas. Operando 1 Operador Operando 2 Resultado V AND V V F AND V F V AND F F F AND F F NOT V F NOT F V Operando 1 Operador Operando 2 Resultado V OR V V F OR V V V OR F V F OR F F Operador Operando 2 Resultado NOT V F NOT F V 14 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Ejemplo: a = 10, b = 20 y c = 30. a < b & b < c 10 < 20 & 20 < 30 V & V V Concatenación Una operación de concatenación involucra dos o más valores alafanuméricos o cadenas, cuyo contenido se va agregando al resultado final, evaluando de izquierda a derecha. Generalmente representamos esta operación con el operador +, aunque algunos lenguajes de programación usan un símbolo diferente. Por ejemplo: "Hola " + "mundo" dará como resultado "Hola mundo" 2.4 Estructuras de decisión Pseudocódigo El pseudocódigo es una mezcla de un lenguaje de programación y el español (o cualquier otro idioma). El pseudocódigo se puede definir como un lenguaje de especificación de algoritmos. El pseudocódigo es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar. Algunas de las ventajas de utilizar un pseudocódigo a un diagrama de flujo son: Ocupa menos espacio en una hoja de papel Permite representar en forma fácil operaciones repetitivas complejas Es muy fácil pasar de pseudocódigo a un programa en algún lenguaje de programación. 15 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Estructura condicional Esta clase de estructura se utiliza para ejecutar selectivamente secciones de código de acuerdo con una condición definida. Y sólo tiene dos opciones: si la condición se cumple, se ejecuta una sección de código; si no, se ejecuta otra sección, aunque esta parte puede omitirse. Es importante mencionar que se pueden anidar varias condiciones El pseudocódigo básico que representa la estructura SI es el siguiente: Dentro del bloque de instrucciones que se definen en las opciones de la estructura, sí se pueden insertar otras estructuras condicionales anidadas. Entre los símbolos [ ] se encuentra la parte opcional de la estructura. 1. suma=0 (inicializamos la variable suma) 2. n=0 (inicializamos el acumulador) 3. si n=5 entonces (establecemos la condición) 4. imprime suma si <condición> entonces Instruccion1 Instrucción n [si no Instrucción 3 Instrucción n] Fin si 16 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación 5. de lo contrario (establecemos la alternativa de la condición) 6. suma=suma+n 7. n=n+1 8. fin si 2.4 Estructuras de repetición Son estructuras que se caracterizan por iterar instrucciones en función de una condición que debe cumplirse en un momento bien definido. Existen dos tipos de ciclos, puntualizados en el siguiente cuadro. Mientras Hasta que Se caracteriza por realizar la verificación de la condición antes de ejecutar las instrucciones asociadas al ciclo. Evalúa la condición después de ejecutar las instrucciones una vez. Las instrucciones definidas dentro de ambos ciclos deben modificar en algún punto la condición para que sea alcanzable; de otra manera, serían ciclos infinitos, un error de programación común. En este tipo de ciclos, el número de iteraciones que se realizarán es variable y depende del contexto de ejecución del algoritmo. El ciclo MIENTRAS tiene el siguiente pseudocódigo: 17 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Ejemplo del uso de la instrucción mientras: 1. n=0 (se inicializa el contador) 2. suma=0 (se inicializa la variable suma) 3. Mientras n=5 hacer (condición) 4. Suma=suma+n 5. n=n+1 6. fin mientras El pseudocódigo asociado a la instrucción hasta que, se define como sigue: Ejemplo de sumar 5 números usando el ciclo hasta que: 1. n=0 (se inicializa el contador) 2. suma=0 (se inicializa la variable suma) 3. hacer mientras <condición> hacer Instruccion1 Instruccion2 ... Instrucción n fin mientras hacer Instruccion1 Instruccion2 Instrucción n Hasta que <condición> 18 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación 4. Suma=suma+n 5. n=n+1 6. hasta que n=5 (condición) Cabe mencionar que las instrucciones contenidas en la estructura mientras se siguen ejecutando cuando la condición resulte verdadera. En cambio, hasta que continuará iterando siempre que la evaluación de la condición resulte falsa Este tipo de estructura también se caracteriza por iterar instrucciones en función de una condición que debe cumplirse en un momento conocido, y está representada por la instrucción para (for). En esta estructura se evalúa el valor de una variable a la que se asigna un valor conocido al inicio de las iteraciones; este valor sufre incrementoso decrementos en cada iteración, y suspende la ejecución de las instrucciones asociadas una vez que se alcanza el valor esperado. En algunos lenguajes, se puede definir el incremento que tendrá la variable; sin embargo, se recomienda que el incremento siempre sea con la unidad. Pseudocódigo que representa la estructura: Como se observa entre los símbolos [ ] la opción que existe para efectuar Para <variable> = <valor inicial> hasta <valor tope> [paso <incremento>] hacer Instruccion1 Instruccion2 ... Instrucción n Fin para <variable> 19 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación el incremento a la variable con un valor distinto de la unidad. El ejemplo de la suma usando el ciclo PARA: 1. suma=0 (inicializamos la variable suma) 2. para n=0 hasta n=5, [n+1] hacer (indicamos que comenzaremos en n=0 y repetiremos hasta que n alcance el valor de 5, con un incremento del valor de n en 1) 3. Suma=suma+n 4. fin para n Acumuladores Los acumuladores son variables que tienen como propósito almacenar valores incrementales o decrementales a lo largo de la ejecución del algoritmo; y utilizan la asignación recursiva de valores para no perder su valor anterior. Su misión es arrastrar un valor que se va modificando con la aplicación de diversas operaciones y cuyos valores intermedios, así como el final, son importantes para el resultado global del algoritmo. Este tipo de variables generalmente almacena el valor de la solución arrojada por el algoritmo. 2.6 Instrucciones principales de una herramienta computacional para el desarrollo de algoritmos PSeInt <variable> = <variable> + <incremento> 20 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación PSeInt es un intérprete de pseudocódigo. El proyecto nació como trabajo final para la cátedra de Programación I de la carrera Ingeniería en Informática de la Universidad nacional del Litoral, Argentina. Actualmente incluye otras funcionalidades como editor y ayuda integrada, generación de diagramas de flujo dado un algoritmo en pseudocódigo o exportación a código C++. El proyecto se distribuye como software libre bajo licencia GPL y para descargarlo o conseguir actualizaciones se hacen desde esta página http://pseint.sourceforge.net PSeInt, es una herramienta de software libre. El pseudocódigo se utiliza para introducir conceptos básicos como el uso de estructuras de control, expresiones, variables, etc, sin tener que lidiar con la sintaxis de un lenguaje real. PSeInt facilita la escritura de algoritmos en pseudo lenguaje presentando un conjunto de ayuda y asistencias, y brindarle además algunas herramientas adicionales que ayudan a encontrar errores y comprender la lógica de los algoritmos. El conjunto ordenado de pasos seguidos con el fin de resolver un problema o lograr un objetivo es conocido como algoritmo. Barra de Herramientas de PSeInt http://pseint.sourceforge.net/ 21 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación 22 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación 2.6.1 Tipos de datos Tipos Simples en PSeInt: Las dos acciones que pueden crear una variable son la lectura(LEER) y la asignación(<-). Por ejemplo, la asignación "A<-0;" está indicando implícitamente que la variable A será una variable numérica. Existen tres tipos de datos básicos: Numérico: números, tanto enteros como reales. Para separar decimales se utiliza el punto. Ejemplos: 12 23 0 -2.3 3.14 Lógico: Lógico o Booleano solo puede tomar dos valores: VERDADERO o FALSO. Caracter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples). Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc' Identificadores, constantes y variables Identificadores En la mayoría de los programas de computadora, es necesario manejar datos de entrada o de salida, los cuales necesitan almacenarse en la memoria principal del computador en el tiempo de ejecución. Para poder manipular dichos datos, necesitamos tener acceso a las localidades de memoria donde se encuentran almacenados; esto se logra por medio de los nombres de los datos o IDENTIFICADORES. Los identificadores también se utilizan para los nombres de los programas, los nombres de los procedimientos y los nombres de las funciones, así como para las etiquetas, constantes y variables. Hay reglas básicas para los identificadores que siempre debes seguir: No se puede usar una palabra reservada como idenficador Dos elementos distintos no pueden tener el mismo identificador Un identificador siempre comienza con una letra Un identificador no puede tener espacios en blanco Escribe todo junto o usa guiones bajos _ en vez de 23 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación los espacios Un identificador sólo puede tener: letras dígitos guión bajo_ Constante Una constante es un valor que no puede ser alterado durante la ejecución de un programa. Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. Por ejemplo: El valor de pi = 3.1416 Constantes en PSeInt Las constantes de tipo carácter se escriben entre comillas ( " ). En las constantes numéricas, el punto ( . ) es el separador decimal. Las constantes lógicas son Verdadero y Falso. Variable Una variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y un nombre simbólico (un identificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor. El nombre de la variable es la forma usual de referirse al valor almacenado: esta separación entre nombre y contenido permite que el nombre sea usado independientemente de la información exacta que representa. El identificador, en el código fuente de la computadora puede estar ligado a un valor durante el tiempo de ejecución y el valor de la variable puede por lo tanto cambiar durante el curso de la ejecución del programa. En computación una variable puede ser utilizada en un proceso repetitivo: puede asignársele un valor en un sitio, ser luego utilizada en otro, más adelante reasignársele un nuevo valor para más tarde utilizarla de la misma manera. Procedimientos de este tipo son conocidos con el nombre de iteración. En programación de computadoras, a las variables, frecuentemente se le 24 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación asignan nombres largos para hacerlos relativamente descriptivas para su uso, mientras que las variables en matemáticas a menudo tienen nombres escuetos, formados por unoo dos caracteres para hacer breve en su transcripción y manipulación. Variables con PSeInt: En la mayoría de los lenguajes reales los nombres de variables no pueden contener acentos, ni diéresis, ni eñes(ñ), en PSeInt, esto se permite si se activa la Sintaxis Flexible (ver Opciones del PSeudocódigo). En algunos lenguajes se puede guardar cualquier información en cualquier variable, mientras en otros las variables solo pueden guardar cierto tipo de información. En PSeInt las variables tienen un tipo de dato asociado, por lo que durante la ejecución del algoritmo una variable deberá guardar datos siempre del mismo tipo. Por ejemplo, si una variable se utiliza para guardar números, no puede utilizarse después para guardar texto. Este tipo se puede declarar explícitamente con la palabra clave Definir, o se puede dejar que el intérprete intente deducirlo a partir de los datos que se guardan en la misma y la forma en que se la utiliza en el algoritmo. Si utiliza el perfil de lenguaje por defecto (Flexible), la definición explicita es opcional, pero se puede configurar el lenguaje para que la misma sea obligatoria. Hay dos formas de crear una variable y/o asignarle un valor: La lectura y la asignación. Si se lee o asigna un valor en una variable que no existe, esta se crea. Si la variable ya existía, esta toma el nuevo valor, perdiendo el viejo. Por esto se dice que la asignación y la lectura son acciones destructivas (aunque se debe notar que en la asignación pueden intervenir más de una variable, y solo se destruye el contenido previo de la que se encuentra a la izquierda del signo de asignación). Una vez inicializada, la variable puede utilizarse en cualquier expresión (para realizar un cálculo en una asignación, para mostrar en pantalla, como condición en una estructura de control, etc.) Los tipos de datos son determinados automáticamente cuando se crean las variables o se les asigna un valor. Este tipo de dato deberá permanecer constante durante todo el proceso, si no es así el proceso será interrumpido La instrucción de asignación permite almacenar un valor en una variable. <variable>=<expresión> ; 25 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Al ejecutarse la asignación, primero se evalúa la expresión de la derecha y luego se asigna el resultado a la variable de la izquierda. El tipo de la variable y el de la expresión deben coincidir. Ejemplo num=1 2.6.2 Operaciones aritméticas Las operaciones aritméticas son las que operan sobre valores numéricos y entregan otro valor numérico como resultado. Los valores numéricos son los que tienen tipo entero, real o complejo. Operaciones aritméticas con PSeInt: La jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede alterarse mediante el uso de paréntesis. Para el caso de los operadores & y |, la evaluación se realiza en cortocircuito. Esto significa que si dos expresiones están unidas por el operador ? y la primera se evalúa como Falso, o están unidas por el operador | y la primera se evalúa como Verdadero, la segunda no se evalúa ya que no altera el resultado. Este es el ejemplo más simple. Muestra cómo cargar dos números de dos variables, calcular la suma de los mismos y mostrarla en pantalla. Ejercicios de Tipos de Datos en ambas herramientas 26 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación EJECICIO 1. Temas: Variables y expresiones aritméticas. Escribir el resultado final de las siguientes expresiones Expresión resultad o Expresió n resultad o Expresió n Resultad o Expresió n Resultad o Round(5/2 ) 5/2.0 10.0/3.0 15.0/2 5 mod 2 10 mod 2 2 mod 4 14 mod 0 Expresión Resultado Expresión Resultado 2+3*4 2*3+4 (2+3)*4 2*(3+4) 6+1/2*4-1*10 1*3/3+8%8-2 1.1+2+3/3 4.1+2/3+3 2. 8*8+5/2+1*34 5.17+9/2.0 3. 2*2*(43+7)%2-1 6.4%23.123 2.6.3 Operaciones de Entrada y Salida de datos Para la lectura y escritura de datos en PSeInt se usa lo siguiente: La instrucción Leer permite ingresar información desde el ambiente. Leer <variablel> , <variable2> , ... , <variableN> ; Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. Pueden incluirse una o más variables, por lo tanto el comando leerá uno o más valores. La instrucción Escribir permite mostrar valores al ambiente. Escribir <exprl> , <expr2> , ... , <exprN> ; Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones. Dado que puede incluir una o más expresiones, mostrará uno o más valores. 27 SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA SECRETARÍA ACADÉMICA JEFATURA DEL PROGRAMA EDUCATIVO DE INFORMÁTICA Curso Propedéutico 2023 Lógica de Programación Ejemplo con PSeInt Escribir "Que edad tienes " Leer edad Escribir “La edad que tienes es: ”, edad 2.6.4 Operaciones relacionales Las operaciones relacionales sirven para comparar valores. Sus operandos son cualquier cosa que pueda ser comparada, y sus resultados siempre son valores lógicos. Sirven para realizar comparaciones. El resultado de estos operadores es verdadero o falso (uno o cero). 28 Operaciones relacionales con PSeInt < > Distinto que Var1<>var2 2.6.5 Operaciones lógicas Los operadores lógicos se utilizan con expresiones para devolver un valor verdadero o falso (true o false). Se denominan también operadores booleanos. Operaciones lógicas con PSeInt Datos tipo carácter Es un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de este tipo contiene solo un carácter. Reconoce los siguientes caracteres: Caracteres Alfabéticos (A,B,C,…Z,a,b,c…z) Caracteres Numéricos (0,1,2,…9) 29 Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, …….) Datos tipo cadena Es una sucesión de caracteres que se encuentran delimitados por una comilla (apóstrofe) o dobles comillas, según el tipo de lenguaje de programación. La longitud de una cadena de caracteres es el número de ellos comprendidos entre los separadores o delimitadores. Ejemplos: ‘Hola mundo’ ’12 de octubre de 1496’ ‘Enunciado cualquiera’ 2.6.6 Estructura de decisión Simple con PSeInt Son Estructuras de Control (Proceso) que se dividen en: condicionales y repetitivas. Condicionales Si-Entonces La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica. Si <condición>Entonces <instrucciones> Sino FinSi <instrucciones> Al ejecutarse esta instrucción, se evalúa la condición y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al Entonces si la condición es verdadera, o las instrucciones que le siguen al Sino si la condición es falsa. La condición debe ser una expresión lógica, que al ser evaluada retorna Verdadero o Falso. La cláusula Entonces debe aparecer siempre, pero la cláusula Sino puede no estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente. Ejemplo: Desarrollar el seudocódigo que permita leer dos valores distintos, determinar cuál de los dos valores es el mayor y escribirlo. Proceso sin_titulo Escribir 'dar un numero ' Leer num1 Escribir'dar segundo nuemro ' Leer num2 Si num1>num2 Entonces Escribir 'el numero mayor es: ',num1 Sino Escribir 'El numero mayor es: ',num2 FinSi FinProceso Selección Múltiple (Select If) La secuencia de instrucciones ejecutada por una instrucción Según depende del valor de una variable numérica. Según <variable> Hacer <numero1>:<instrucciones> <numero2>,<numero3>:<instrucciones> <...> De Otro Modo: <instrucciones> Fin Según Esta instrucción permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor almacenado en una variable de tipo numérico. Al ejecutarse, se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor. Cada opción está formada por uno o más números separados por comas, dos puntos y una secuencia de instrucciones. Si una opción incluye varios números, la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos números. Opcionalmente, se puede agregar una opción final, denominada De Otro Modo, cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores. Ejercicios de estructura de decisión compuesta con PSeInt 2.6.7 Estructuras Repetitivas con PSeInt En PSeInt las estructuras repetitivas son las siguientes: o Mientras o Repetir o Para Para (for) La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces. Para <variable><- <inicial>Hasta <final>( Con Paso <paso>) Hacer <instrucciones> FinPara Al ingresar al bloque, la variable recibe el valor y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable en unidades y se evalúa si el valor almacenado en superó al valor . Si esto es falso se repite hasta que supere a . Si se omite la cláusula Con Paso , la variable se incrementará en 1. Ejemplo: Desarrollar el seudocódigo que realice la sumatoria de 10 números Proceso sin_titulo Para i<-1 Hasta 5 Hacer Escribir "dar numero: " Leer num sum<-sum + num Fin Para Escribir "la suma de los numeros es: ", sum Fin Proceso Ciclos anidados Desarrollar el seudocódigo que realice las tablas de multiplicar como dato de entrada se establece hasta que numero de tablas desea desarrollar como límite del 1 al 10 Proceso sin_titulo Escribir "hasta que tabla quieres llegar: " Leer tabla Si tabla <= 10 Entonces Para i<-1 Hasta tabla Hacer Para j<-1 Hasta 10 Hacer mul=i*j Escribir i," * ",j, " = ",mul Fin Para Escribir " " Fin Para Sino Escribir "error fuera de rango" Fin Si FinProceso Mientras Hacer (while) con PSeint La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera. Mientras <condición>Hacer <instrucciones> Fin Mientras Al ejecutarse esta instrucción, la condición es evaluada. Si la condición resulta verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y, si es verdadera, la ejecución se repite. Estos pasos se repiten mientras la condición sea verdadera. Las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al evaluar por primera vez la condición resulta ser falsa. Si la condición siempre es verdadera, al ejecutar esta instrucción se produce un ciclo infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener alguna instrucción que modifique la o las variables involucradas en la condición, de modo que ésta sea falsificada en algún momento y así finalice la ejecución del ciclo. Ejemplo: Desarrollar el seudocódigo que lea una cantidad e imprima el número de cifras del numero Datos de entrada: 123 Salida: el numero 123 tiene 3 cifras Proceso sin_titulo n<-0 num<-0 nd<-0 Escribir "dar el numero: " Leer num n<-num Mientras num>0 Hacer nd<-nd+1 num<-num/10 num<-trunc(num) Fin Mientras Escribir "el numero ",n," tiene ", nd, " cifras" FinProceso Estructura Repetir Hasta Que (do-while) con PSeInt La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea verdadera. Repetir <instrucciones> Hasta Que <condición> Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. Esto se repite hasta que la condición sea verdadera. Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez. Además, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instrucción que modifique la o las variables involucradas en la condición de modo que en algún momento la condición sea verdadera y se finalice la ejecución del ciclo. Ejemplo: Desarrollar el seudocódigo que sume 5 números Proceso sin_titulo Definir i, num, sum Como Entero; i=0; Repetir Escribir 'Dar numero: '; Leer num; sum=sum+num; i=i+1; Hasta Que i>=5; Escribir 'La suma es: ',sum; FinProceso 2.6 Ejercicios prácticos usando una herramienta computacional Ejercicios de estructuras de decisión 1. Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde constatar que los tres valores introducidos por el teclado sean valores distintos. Presente un mensaje de alerta en caso de que se detecte la introducción de valores iguales Ejemplo 1 Dato de entrada: A: 10 B: 20 C: 5 Salida: B es mayor C es menor Ejemplo 2 Dato de entrada: A: 2 B: 2 C: 2 Salida: los valores deben ser distintos 2. Unas camisas se venden a $ 10 (dólares) cada una si se compran más de tres, y a $12 en los demás casos. Desarrolle un algoritmo que lea un número de entrada de camisas compradas e imprima el costo total. 3. Un trabajador recibe su sueldo normal por las primeras 30 horas y se le paga 1.5 las veces su sueldo normal por cada hora después de las primeras 30. Desarrolle un algoritmo que calcule e imprima el pago al empleado basado en el sueldo normal y en número de horas de trabajo, donde esos dos datos son introducidos por el usuario. Por ejemplo, si se escribe 42 para las horas y 6.00 para el sueldo por hora, ser debe imprimir $288.00. Ejemplo 1 Dato de entrada: Sueldo normal: 5 Numero de horas:30 Salida: Pago total: 150 Ejemplo 2 Sueldo normal: 6 Numero de horas: 42 Salida: Pago total: 288 Ejercicios de estructuras repetitivas 1. Desarrolle el seudocódigo en donde se lea un número entero e imprima en pantalla la suma de los número naturales de este. Por ejemplo: Ejemplo 1 Dato de entrada: Numero natural: 3 Salida: 1,2,3 y la suma seria 1+2+3=6 Ejemplo 2 Dato de entrada: Numero natural: 5 Salida: 1,2,3,4,5 y la suma seria 1+2+3+4+5=15 Ejemplo 1 Dato de entrada: Numero de camisas: 4 Salida: Costo total: 40 Ejemplo 2 Dato de entrada: Numero de camisas: 3 Salida: Costo total: 36 2. Desarrolle el seudocódigo en donde se lea una cadena e imprima la cadena el número de veces de acuerdo el número de caracteres de dicha cadena. Por ejemplo: Ejemplo 1 Dato de entrada: cadena: Ana Salida: Ana Ana Ana Ejemplo 2 Dato de entrada: cadena: Paco Salida: Paco Paco Paco paco 3. Desarrolle el seudocódigo para encontrar aquellos números que son múltiplos de 5, entre el rango inicial y final, especificado por el usuario.Ejemplo 1 Dato de entrada: Limite inicial: 10 Limite final: 40 Salida: 5, 10, 15, 20, 25, 30, 35, 40 Ejemplo 2 Dato de entrada: Limite inicial: 5 Limite final: 20 Salida: 5, 10,15,20 Ejemplo 3 Dato de entrada: Limite inicial: 1 Limite final: 3 Salida: no hay múltiplos de 5 37 Unidad 3 Lógica de programación visual e innovación en las TIC (2 horas) 20 mins La programación visual se conoce como un lenguaje que usa gráficos o bloques definidos con el código, dichos bloques son utilizados para generar acciones. La mayoría de los lenguajes de programación están basados en texto, donde se utilizan líneas de código para realizar tareas específicas, como ejemplo de los lenguajes tenemos a Python, C, Java entre otros. En dichos lenguajes se utiliza una sintaxis definida y funciones en texto, a diferencia de la programación visual donde esto se reemplaza por gráficos o bloques como componentes que al utilizarlos en conjunto permiten realizar acciones para resolver una tarea. Los programadores suelen utilizar elementos de programación ya definidos, según el lenguaje de programación visual que utilicen. Estos pueden registrar textos e imágenes, organizarlos de forma lógica y modificar su apariencia o su expresión. Los elementos de control permiten insertar acciones que dependen de ciertas condiciones. Los operadores permiten realizar enlaces y cálculos matemáticos. Las variables o los enlaces se pueden introducir, eliminar o modificar. Los elementos de programación están diseñados para encajar como las piezas de un puzle. Si los elementos no encajan lógicamente, el editor lo detecta y lo indica con colores, como resaltándolos en tonos más apagados y, a veces, también mediante señales acústicas. Los elementos de programación suelen agruparse en grupos de colores, lo que orienta al usuario a la hora de elegirlos. Programación visual Scratch Una ventaja de este tipo de programación es que el programador desarrolla la lógica de manera visual y se vuelve más práctica la programación, en los lenguajes basados en texto tendríamos que diseñar una solución con base en diagramas y después llevarlo a código utilizando condicionales, bucles y funciones, en los lenguajes de programación visual hay que tomar los bloques que corresponde a los bucles por ejemplo y especificar su valor, como es de forma visual nos permite desarrollar la lógica de programación, además como son bloques predefinidos con código, no es necesario saber una sintaxis. 38 Ejemplos de lenguaje de programación visual: Hay n números de lenguajes de programación visual y los pocos que están en la lista superior se dan a continuación. Scratch: Con la ayuda de este lenguaje los usuarios pueden crear, historias, juegos y animaciones sin escribir ninguna línea de código en este solo hay que crear la lógica y ensamblar los bloques. Blockly: se utiliza para crear lenguajes de programación y editores basados en bloques, y también para generar código desde bloques hasta javascript lua dart python y PHP, etc. Lenguaje mBlock: Se utiliza en la programación de robots. Lenguaje de burbujas: se utiliza para crear aplicaciones web. Lenguaje Minibloq: se utiliza como entorno de programación gráfica para Arduino. 3.1 Introducción a la plataforma visual 15 mins Las plataformas visuales son de suma importancia ya que permiten la interacción del usuario con el ordenador, son el resultado de la evolución de la línea de comandos como en los primeros sistemas operativos, se les conoce como GUI (Graphic User Interface). Una de las plataformas más utilizadas actualmente para el desarrollo de la lógica de programación es code.org. Code.org es una organización que fomenta la enseñanza de la programación poniendo a disposición cursos interactivos. A través de la plataforma virtual de Code.org es posible: ● Acceder a tutoriales online para aprender cualquier tipo de lenguaje de programación. ● Crear juegos de forma guiada y progresiva a partir de niveles, utilizando personajes clásicos de Disney, héroes de Star Wars, personajes de Minecraft y muchos más. ● Encontrar cursos organizados según intereses de estudiantes o docentes. ● Registrar los avances de un usuario en la plataforma. ● Obtener un certificado online al terminar un curso/tutorial. 39 ¿CÓMO SE USA? ● Ingresa al portal code.org ● Para hacer uso de los cursos de Code.org no es necesario estar registrado. Sin embargo, puedes crear un usuario con una cuenta de mail o utilizando Google+, Facebook o cuenta de Microsoft. Esto te permitirá ir registrando tus avances a medida que realizas actividades en la plataforma. ● Elige la sección Alumnos y luego, de acuerdo a tu edad, selecciona los tutoriales que deseas resolver. En el caso de docentes, al registrarse podrán crear una clase y unir alumnos para ir viendo sus actividades y desempeño. Code.org está pensado para alumnos de cualquier edad e instructores con conocimientos básicos de programación. 3.2 Prácticas con un juego didáctico 45 mins En el sitio code.org podemos encontrar una gran variedad de juegos, uno de ellos muy popular es minecraft. Minecraft es un videojuego de construcción de tipo «mundo abierto» que consiste en sobrevivir usando materiales para construir un refugio, que puede ser tan básico o elaborado como se desee, y convertir las materias primas en objetos (armaduras, espadas, arcos) para matar a los muchos monstruos que aparecen en el juego. Vamos a jugar Minecraft Comenzaremos con el siguiente video video de introducción y tutorial para mostrar la forma de jugar: (https://studio.code.org/s/mc/lessons/1/levels/1) Se recomienda seleccionar el idioma español en el video tutorial y en el juego. Inmediatamente de terminar el video comenzamos a jugar. Al jugar en code.org, nos muestra un panel del lado izquierdo donde vemos el juego de modo gráfico y un botón de ejecutar, en la parte central se muestran las instrucciones ha realizar, las acciones que se indicaremos al personaje del juego y una vista al código que hemos generado con las acciones. Básicamente debemos de arrastrar las acciones y complementarlas entre ellas para lograr objetivos, se aplicará la lógica y secuencias de instrucciones así como ciclos y condicionales. https://studio.code.org/s/mc/lessons/1/levels/1 40 Dentro de la misma página encontramos materiales de apoyo para los instructores así como tips para un mejor aprendizaje https://hourofcode.com/us/how-to 3.3 Introducción a la innovación en las TIC 40 mins Actualmente es cada vez más necesario el manejo eficiente de las Tecnologías de la Información y la Comunicación (TIC), pues las encontramos en todo tipo de entornos y situaciones: la educación, el esparcimiento, los negocios, la salud e, incluso, la seguridad personal. Si bien el de las TIC puede parecer un ámbito intimidante para el interesado en dominarlas, una base inicial suficiente comprende relativamente pocos conceptos y habilidades: el conocimiento de los componentes básicos de los equipos de cómputo, el manejo del sistema operativo, el uso de algunos servicios que se ofrecen en Internet y el conocimiento de medidas básicas de seguridad para la navegación en la red. ¿Por qué son importantes las TICs? El sector de las Tecnologías de la Información y Comunicación es actualmente uno de los más importantes, pues estas son consideradas como unas herramientas que permiten el fácil acceso a la información y una comunicación eficiente, rápida y clara entre diversos miembros de una misma organización. En este sentido, las TICs garantizan un aprendizaje didáctico con plena adquisición de conocimientos para el https://hourofcode.com/us/how-to 41 mejor desenvolvimiento del ser humano en su entorno, favoreciendo sectores vitales como la educación, salud, finanzas entre otros. LasTecnologías de Información y Comunicación (TIC) son herramientas que han impactado en todo el quehacer humano, sus efectos en el ámbito organizacional son evidentes, al promover la gestión eficiente primero de la información y posteriormente del conocimiento. Muchos otros ámbitos, como el de salud, el militar, el comercio y el entretenimiento se han visto beneficiados de sus bondades. El ambiente educativo no podría ser la excepción, considerando sus potencialidades para el manejo más eficiente de información, sin embargo, su penetración en este campo no ha sido la deseada y aún falta mucho camino por recorrer. ¿A qué llamamos innovación? La innovación es un proceso en el que se implementa algo nuevo que añade valor; es decir, modifica elementos o ideas ya existentes, mejorándolos o creando nuevos para impactar de manera favorable. Las tendencias de innovación actuales están basadas en la comunicación y el procesamiento de datos, a continuación se mencionan algunas con mayor impacto: 1.- Procesamiento masivo de datos El profesor Daishi explica que gracias a la hiperautomatización, el software cognitivo y la red 5G, la capacidad de procesamiento de datos ha llegado a un punto en el que nunca antes había sucedido. “Son datos al por mayor porque existe la capacidad de procesar millones de datos de manera casi instantánea para dar respuestas a todo". Agregó que un ejemplo de ello es el de una empresa de seguros automotriz española. “A través de un software cognitivo que procesa información te proyecta cuántos seguros se venderán, de qué tipo, cuánto costarán de acuerdo a la siniestralidad en los sucesos, entre muchas cosas más sin la intervención del ser humano”, destacó el académico. 2.- Inteligencia artificial El desarrollo de la inteligencia artificial cada año es más avanzado y, de acuerdo con el profesor Murano, incluso los chatbots quedarán obsoletos. 42 “Con tus lentes de realidad aumentada podrás ver por ejemplo a Siri, de Apple. Imagina verla y que platique contigo”, comentó. El avance en la inteligencia artificial hará de la interacción humano-máquina algo más natural y realista. “Existen ya ciertas universidades y empresas que han logrado informatizar los sentimientos. Vas a platicar con un software y este entenderá tus sentimientos a través de lo que vea en tu rostro. También este software podrá mostrar emociones. Inteligencia artificial al más alto nivel”, explicó Daishi. 3.- Robótica “Las grandes máquinas y robots en fábricas o laboratorios ya no serán las únicas que estarán al alcance de unos cuántos” El profesor Daishi detalló cómo en 2022 será cada vez más común tener robots de asistencia y máquinas automáticas que harán nuestra vida diaria más fácil. "Podrás ver y platicar con Siri, te mostrará emociones y entenderá tus sentimientos". 4.- Mundo virtual “Una tendencia no tecnológica que ha llevado al desarrollo de productos tecnológicos es la inseguridad”, mencionó el profesor. Debido a esto cada vez hay más personas que prefieren estar en la comodidad del hogar, detalló. “Tendrás trajes que estén totalmente conectados con tus sensaciones y bioquímica, con tus lentes de realidad virtual. “Vas a poder vivir en este mundo, podrás moverte, abrazar y sentir a los demás con los famosos wearables. El mundo se volverá virtual y 2022 es el comienzo”, puntualizó 43 5.- Educación remota El aislamiento vivido a raíz de la pandemia demostró la oportunidad para hacer las cosas de manera diferente. La educación no fue la excepción. “Tener acceso a una educación de primer nivel con recursos como realidad aumentada, mejor información, mejores profesores, laboratorios virtuales desde la comodidad de casa, son sólo algunos de los elementos que vinieron para quedarse”, dijo. Daishi señaló que en el 2022 la tecnología para la educación remota será accesible de forma masiva. “Vas a poder programar y manipular un robot, una celda de manufactura, por ejemplo, desde tu casa”. "La red social de Mark Zuckenber, Meta, es apenas el comienzo". 6.- Seguridad informática La cantidad de datos que existe actualmente es tan masiva que la privacidad de la información se ha vuelto un tema sensible en la sociedad, comentó Daishi. “De forma muy particular, lo que se conoce como blockchain se va a empezar a usar en todo. Aquí en el Tec ya lo usamos para emitir títulos. “Tu título profesional ya no es un papel, es una cadena de bits hipersegura prácticamente imposible de desencriptar para falsificar”, comentó. "Lo que se conoce como blockchain se va a empezar a usar en todo". 7- Comercio electrónico inteligente Debido a la pandemia generada por la COVID-19, explicó Daishi, el comercio electrónico creció exponencialmente y lo seguirá haciendo. “Internet ya sabe lo que tú haces, lo que compras, lo que ves; sabe lo que te gusta. De manera automática te da la mejor opción que tú necesitas, sin que te des cuenta. https://tec.mx/es/noticias/estado-de-mexico/investigacion/profesor-del-tec-cem-colabora-en-desarrollo-de-seguridad-de-blockchain https://tec.mx/es/noticias/estado-de-mexico/investigacion/profesor-del-tec-cem-colabora-en-desarrollo-de-seguridad-de-blockchain 44 “Podremos encontrar ya prácticamente cualquier producto o servicio a través del comercio electrónico superinteligente y desde la comodidad de nuestro hogar”, detalló. 8.- Análisis de datos Todas las decisiones tomadas serán con base en un análisis de datos, detalló el profesor. “Ya no habrá nada al azar. Esto quiere decir que de manera digital, podrás crear productos o máquinas, calibrarlos y ponerlos a prueba sin haberlos fabricado físicamente. “Hasta después de haberlos probado los pondrás en venta. Ya no hay necesidad de ‘prueba y error’, todo va a ser informatizado”, destacó. “Tendrás trajes que estén totalmente conectados con tus sensaciones y bioquímica, con tus lentes de realidad virtual". 9.- La nube y su expansión Lo que ya conocemos como la nube, en donde almacenamos información, llegará a otro nivel. “Por ejemplo, para diseñar un carro se requieren de cientos y hasta miles de ingenieros que pueden estar por todo el mundo. “Antes tenías que estar viajando, ahora, todos ellos podrán colaborar sobre una misma pieza, un mismo sistema o conjunto de piezas al mismo tiempo; podrán ensamblar más de 5 mil piezas que tiene un carro sin necesidad de verse o manufacturar previamente cada pieza”, explicó. De acuerdo con Daishi, el metaverso será una tendencia y afirmó que "la red social de Mark Zuckenber, Meta, es apenas el comienzo". 10.- Turismo espacial A pesar de que sólo un grupo de personas muy reducido de gente multimillonaria tendrá acceso al turismo espacial en 2022, este será cada vez más común a lo largo de los años. “La tecnología para el desarrollo del turismo espacial avanza muy rápido. Nos dimos cuenta de que no es tan complicado llegar al espacio aunque sea por unos cuántos segundos”, dijo Daishi. 45 Las empresas que ya han llevado a cabo vuelos espaciales con fines turísticos son: Virgin Galactic, del millonario inglés Richard Branson; Blue Origin, del fundador de Amazon, Jeff Bezos, y SpaceX, de Elon Musk. https://conecta.tec.mx/es/noticias/estado-de-mexico/educacion/10-tendencias- tecnologicas-para-2022-que-nos-impactaran Tendencias tecnológicas que nos esperan en el 2022 https://www.youtube.com/watch?v=rNPEYG31fQw&t=38s Metaverso El Metaverso es un mundo virtual, uno al que nos conectaremos utilizando una serie de dispositivos que nos harán pensar que realmente estamos dentro de él, interactuando con todos sus elementos. Será como realmente teletransportarse a un mundo totalmente nuevo a través de gafas de realidad virtual y otros complementos que nos permitirán interactuar con él. https://www.youtube.com/watch?v=R8mj1kTT4hk IOT Internetde las cosas (IoT) describe la red de objetos físicos ("cosas") que llevan incorporados sensores, software y otras tecnologías con el fin de conectarse e intercambiar datos con otros dispositivos y sistemas a través de Internet. Estos dispositivos van desde objetos domésticos comunes hasta herramientas industriales sofisticadas. Con más de 7 mil millones de dispositivos IoT conectados en la actualidad, los expertos prevén que este número aumentará a 10 mil millones para el 2020 y 22 mil millones para el 2025. https://www.oracle.com/mx/internet-of-things/what-is-iot/ https://conecta.tec.mx/es/noticias/estado-de-mexico/educacion/10-tendencias-tecnologicas-para-2022-que-nos-impactaran https://conecta.tec.mx/es/noticias/estado-de-mexico/educacion/10-tendencias-tecnologicas-para-2022-que-nos-impactaran https://www.youtube.com/watch?v=rNPEYG31fQw&t=38s https://www.youtube.com/watch?v=R8mj1kTT4hk https://www.oracle.com/mx/internet-of-things/what-is-iot/ 46 Aplicaciones 1. En el hogar 2. Wearables 3. Smart city 4. Aplicaciones en la vida cotidiana https://www.youtube.com/watch?v=Tm6oH4dffeg Referencias: 1. Luís Joyanes Aguilar, Fundamentos de Programación Algoritmos y Estructuras de Datos, Edit. Mc Grow hill 2. Luís Joyanes Aguilar, Metodología de la programación, Edit. Mc Graw hill 3. Osvaldo Cairo, Metodología de la Programación I, Edit. Alfaomega 4. M.R. Bores Rangel, Computación metodología lógica computacional y programación, Edit. Mc Graw Hill 5. Peter Norton, Introducción a la Computación, Edit. Mc Grow Hill 6. Gilberto manzano peñaloza. (2012). Apuntes digitales plan 2012. Análisis, diseño e implantación de algoritmos. 6 de junio 2022, de universidad nacional Autónoma de México. Facultad de Contaduría y Administración Sitio web: http://fcasua.contad.unam.mx/apuntes/interiores/docs/2012/informatica/1/anal isis_diseno_algoritmos.pdf https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-en-el-hogar- https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-en-el-hogar- https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-wearables- https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-wearables- https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-smart-city- https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-smart-city- https://www.nts-solutions.com/blog/internet-de-las-cosas-ejemplos.html#-vida-cotidiana- https://www.youtube.com/watch?v=Tm6oH4dffeg http://fcasua.contad.unam.mx/apuntes/interiores/docs/2012/informatica/1/analisis_diseno_algoritmos.pdf http://fcasua.contad.unam.mx/apuntes/interiores/docs/2012/informatica/1/analisis_diseno_algoritmos.pdf
Compartir