lunes, 12 de noviembre de 2018


Imagen relacionada

Algoritmos en Pseint

¿Qué es PSeInt?

  • PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.

El Pseudo-código

Las premisas son: 

  • Sintaxis sencilla
  • Manejo de las estructuras básicas de control
  • Solo 3 tipos de datos básicos: numérico, caracter /cadenas de caracteres y lógico (verdadero-falso).
  • Estructuras de datos: arreglos


    Todo algoritmo en pseudocógido tiene la siguiente estructura general:

         Proceso SinTitulo
              accion 1;
              accion 1;
                   .
                   .
                   .
              accion n;
         FinProceso


  • Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. Una secuencia de instrucciones es una lista de una o más instrucciones, cada una terminada en punto y coma.


  • Las acciones incluyen operaciones de entrada y salida, asignaciones de variables, condicionales si-entonces o de selección múltiple y/o lazos mientras, repetir o para. 


  • Tipos de datos que se utilizan en pseint


    En PsInt tenemos los siguientes tipos de datos:
     
    Entero.- Números enteros negativos y positivos 
    Real.- Números con punto decimal negativos y positivos 
    Caracter.- Letras, números o caracteres especiales. Cabe recalcar que si iniciamos con  una variable que pertenece a este tipo de datos no se podrán realizar operaciones matemáticas. 
    Logico.- Valores booleanos de falso o verdadero.

    Diagramas de flojo en pseint


    Resultado de imagen para diagrama de flujo pseint




    Estructura si entonces en pseint

    La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica.



    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áusla 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 2



    Si <condición>

                Entonces

                     <instrucciones>
                Sino
                      <instrucciones>
          FinSi 

    Estructura según pseint

    Las estructuras en Pseint se dividen en condiciones y repetitivas:

    Condicionales 

    Condicional 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 
                      <instrucciones>
          FinSi 
       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áusla 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.
       El ejemplo Triangulo lee las medidas de los tres lados de un triángulo y utiliza esta estructura para determinar cual es el mayor de los tres, y verificar luego si se trata de un triángulo rectángulo o no.

    Selección Multiple 

     La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica.
          Segun <variable> Hacer 
                <número1>: <instrucciones> 
                <número2>,<número3>: <instrucciones> 
                <...> 
                De Otro Modo: <instrucciones> 
          FinSegun 

       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.

    Repetitivas

    Lazos Mientras 

       La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera. 
          Mientras <condición> Hacer 
                <instrucciones> 
          FinMientras 
    vAl 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. 
       Note que 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.
       El ejemplo AdivinaNumero le da al usuario 10 intentos para adivinar un número generado aleatoriamente, utilizando esta estructura para verificar si el usuario acierta el número o si se agotan los intentos.

    Lazos Repetir 

       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.
       Si se utiliza sintaxis flexible (ver Opciones del PSeudocódigo) se permite opcionalmente utilizar Mientras Que en lugar de Hasta Que, de modo que el conjunto de acciones contenidas en el bucle se ejecuta mientras que la condición sea verdadera. Notar que la palabra Que es la que diferencia el uso de la palabra Mientras en la estructura repetir de la estructura Mientras. Es decir, si se omite la palabra que se considera como el comienzo de un bucle Mientras en lugar de el final de un bucle Repetir.

    Lazos Para 

       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 <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la cláusula Con Paso <paso>, la variable <variable> se incrementará en 1.
       Si se habilita la sintaxis flexible en las configuración del lenguaje se pueden utilizar dos alternativas. La primer variante consiste en reemplazar el operador de asignación por la palabra clave Desde:
          Para <variable> Desde <inicial> Hasta <final> Con Paso <paso> Hacer ... 
    De esta forma, la lectura de la sentencia resulta más obvia. Además, con sintaxis flexible, si no se especifica el paso pero el valor final es menor al inicial, el bucle recorrerá los valores en orden inverso como si el paso fuera -1. La segunda variante solo sirve para recorrer arreglos de una o más dimensiones. Se introduce con la construcción Para Cada seguida de un identificador, la palabra clave De y otro identificador:
          Para Cada <elemento> De <Arreglo> Hacer ... 
    El segundo identificador debe corresponder a un arreglo. El primero será el que irá variando en cada iteración. El ciclo realizará tantas iteraciones como elementos contenga el arreglo y en cada uno el primer identificador servirá para refererirse al elemento del arreglo en cuestión.
       El ejemplo Promedio utiliza un bucle de este tipo para leer N valores numéricos con los cuales calcula un promedio.
       El ejemplo Para utiliza las tres variantes de este tipo de bucles para recorrer un arreglo.




    Bibliografía:
    Pseudocodigo en pseint. Recuperado de 

    https://www.itson.mx/oferta/isw/Documents/guia_pseint_2016.pdf







    lunes, 10 de septiembre de 2018

    Tipos de algoritmos 




    Algoritmos cualitativos:Son aquellos en los que se describen los pasos de forma Narrada.
    Ejemplos

    Resultado de imagen para algoritmos cualitativos y cuantitativos ejemplosAlgoritmo para cambiar la rueda pinchada de un automóvil 
    INICIO
    Paso 1. Aflojar los tornillos dela rueda pinchada con la llave inglesa.
    Paso 2. Ubicar el gato mecánico en su sitio.
    Paso 3. Levantar el gato hasta que la rueda pinchada pueda girar libremente.
    Paso 4. Quitar lostornillos y la rueda pinchada.
    Paso 5. Poner rueda de repuesto y los tornillos.
    Paso 6. Bajar el gato hasta que se pueda liberar.
    Paso 7. Sacar el gato de su sitio.

    Paso 8. Apretar lostornillos con la llave inglesa.
    FIN
    Realizar un puré de papas.
    INICIO
    1.- Buscar utensilios.
    2.- Lavar las papas.
    3.- Llenar la olla con agua.
    4.- Colocar las papas dentro de la olla.
    5.-Encender el fogón.
    6.- Colocar la olla al fuego.
    7.- Esperar a que hierva.
    ¿Están listas las papas? 
    SI: ir al paso 8.
    No: ir al paso 7.
    8.- Retirar las papas.
    9.-Quitar la cascara a las papas.10.- Triturar las papas.
    11.- Agregar queso, mantequilla y leche.
    12.- Mezclar.
    13.- Agregar sal al gusto.
    14.- Servir.
    FIN

    Algoritmo Cuantitativo: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
    Ejemplo:
    1.- INICIO.
    2.- Suministrar cifra de altura “h”.
    3.- Suministrar cifra de base“b”. 
    4.- Multiplicar las cifras de base y altura.
    5.- Dividir el resultado de la multiplicación entre 2.
    6.- Generar resultado.
    7.- FIN.
    http://moodle2.unid.edu.mx/dts_cursos_mdl/lic/IC/EA/AM/06/Algoritmos.pdf
    Bibliográfia
    Enciclopedia de Clasificaciones (2017). "Tipos de algoritmos". Recuperado de: https://www.tiposde.org/ciencias-exactas/843-tipos-de-algoritmos/

    Fuente: https://www.tiposde.org/ciencias-exactas/843-tipos-de-algoritmos/#ixzz5Sdvu576U

    lunes, 13 de agosto de 2018

    FUNDAMENTOS DE PROGRAMACIÓN

    ¿En qué consiste la solución  de problemas?
    La resolución de problemas consiste en una actividad cognitiva que consiste en proporcionar una respuesta-producto a partir de un objeto o de una situación.
    Una de las capacidades mas importantes en la resolución de problemas es el hacer preguntas que permitan surgir de un conflicto  y sortear la dificultad, algunas preguntas pueden servir para identificar el problema y otras para buscar alternativas.




    http://hadoc.azc.uam.mx/evaluacion/solucion.htm


    Planteamiento de solución de problemas según POLYA.

    Según él, para resolver un problema lo que se tiene que tener fundamentalmente al inicio es interés de resolver el problema. La actitud que puede a matar un problema es precisamente el desinterés; por ello se debe buscar la manera de interesar al alumno a resolver problemas. Entonces, es relevante el tiempo que se dedique a exponer el problema: el profesor debe atraer a los estudiantes hacia el problema y motivar la curiosidad de los muchachos. En ocasiones, el docente no encontrará progreso en el estudiante y, es probable se deba a que éste no tiene deseos de resolver el problema. Un método que suele resultar útil es el de la imitación: el profesor debe ser un modelo para la Resolución de Problemas. Entonces, él mismo debe hacer las preguntas cuando resuelve un problema en la clase. Ahora bien, es importante preparar con cuidado los ejemplos, no se debe proponer ahí problemas que parezcan imposibles, sino que realmente sean adecuados y que se encuentren al nivel del estudiante. La presentación de los problemas tiene, entonces, mucho peso en el proceso. No consiste en dar una lista interminable de ejercicios para que resuelvan y punto, de lo contrario: se trata de sembrar la curiosidad y el interés por el problema. 

    1. Entender el problema: se refiere a que el estudiante pueda responderse una serie de preguntas como ¿Entiendo todo lo que dice el problema?, ¿Puedo replantear el problema con mis propias palabras?, ¿Cuáles son los datos que hacen parte del problema?, ¿Sé a dónde quiere llegar?, ¿Hay suficiente información?, ¿Hay información que no es clara?, ¿Es este problema similar a algún otro que ya haya resuelto antes?
    2. Configurar el plan: se refiere al cómo o qué estrategia va a usar el estudiante para resolver el problema. Las estrategias pueden partir desde aplicar pruebas de ensayo y error, hasta plantear  toda una táctica que le permita intentar llegar a la solución del mismo.
    3. Ejecutar el plan: se refiere a la puesta en práctica de lo que el estudiante estableció en la configuración. Es llevar a cabo una a una las etapas planteadas. En este punto puede suceder que en un momento determinado lo que se planteó no sea pertinente para la solución del problema, razón por la cual hay que replantear la estrategia y volver a comenzar. Generalmente en la ejecución se usan procesos matemáticos que permitan darle la exactitud que requiere la solución del problema.
    4. Examinar la solución: se refiere al poderse cuestionar sobre lo que se hizo, ver si el proceso desarrollado permitió en realidad resolver el problema. En este paso el estudiante debe acudir a sus procesos meta cognitivos para revisar si lo que hizo está bien o está mal y, si es necesario, replantear el proceso de resolución.

    file:///D:/Users/hp/Downloads/6967-9551-1-PB.pdf




    Algoritmo de Solución.

    La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.
    Un algoritmo es una serie de pasos organizados, que describe el proceso que se debe seguir, para dar solución a un problema específico. (Fadul, 2004).
    Como tal pensar en un algoritmo, es pensar la forma en la que podemos resolver un problema paso a paso, si no se resuelve un paso del problema no se puede pasar al siguiente.
    Características. 
    • Precisos: La palabra preciso indica que se distingue con claridad, de igual manera un algoritmo es claro en cada uno de sus pasos.
    • Definido: El algoritmo está delimitado, solo procesa la información y las operaciones que tiene, no realiza operaciones “fantasma”, si se realiza el algoritmo dos o más veces con los mismo datos siempre dará el mismo resultado.
    • Finito: Refiriéndose esta característica a que un algoritmo siempre va a tener un fin, .
    • mediante esta característica el algoritmo se culmina la estructura de un algoritmo.




    http://ing.unne.edu.ar/pub/informatica/Alg_diag.pdf



    ¿Qué es un diagrama de flujo?

    El diagrama de flujo o diagrama de actividades, también conocido como flujo grama es la representación gráfica del algoritmo o proceso.
    Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.
    Resulta útil para investigar oportunidades para la mejora mediante la comprensión detallada de la forma en que funciona en realidad un proceso.
    A través del examen de la forma en que los diversos pasos de un proceso se relacionan entre sí, se pueden descubrir a menudo las fuentes potenciales de los problemas. 
    Los diagramas de flujo se pueden aplicar a todos los aspectos de cualquier proceso, desde el flujo de materiales hasta los pasos para realizar una venta o darle mantenimiento a un producto.




    Bibliografía

    El método de Polya para resolver problemas.(7 de mayo de 2012). Recuperado de:
    https://compartirpalabramaestra.org/academia/alianza-gimnasio-campestre-compartir/metodologia-polya-en-resolucion-de-problemas

    Algoritmos. Recuperado de: https://www.uaeh.edu.mx/scige/boletin/prepa4/n10/e1.html

    Resolución de problemas. Recuperado de: https://www.mecd.gob.es/dctm/revista-de-educacion/articulosre293/re2932000479.pdf?documentId=0901e72b81377331