martes, 20 de noviembre de 2018

ALGORITMOS Y PSEUDOCÓDIGO EN PSEINT

¿QUE ES PSEINT?
PSeInt es una herramienta para aprender la lógica de programación, orientada a estudiantes sin experiencia en dicha área. Mediante la utilización de un simple y limitado pseudo-lenguaje, intuitivo y en español, permite comenzar a comprender conceptos básicos y fundamentales de un algoritmo computacional. Nacido originalmente como proyecto final para la materia Programación I de la carrera Ingeniería en Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral, es en realidad un intérprete de pseudocodigo basado en los contenidos de la cátedra de Fundamenos de Programación de dicha carrera.

REFERENCIA
¿QUE ES UN PSEUDOCODIGO EN PSEINT?
El pseudocódigo es un lenguaje de especificación (descripción) de algoritmos. El uso de tal lenguaje hace el paso de codificación final (traducción al 4 lenguaje de programación) relativamente fácil, por lo que este es considerado un primer borrador de la solución del programa.
La palabra pseudocódigo formada por el prefijo “pseudo“, que según el diccionario de la RAE (Real Academia Española) significa “falso“, de ahí parte para que también sea conocido como “falso lenguaje”.
Dentro de la programación se basa en un lenguaje de programación real, donde se permite expresar las instrucciones en un lenguaje común (ejemplo: español, inglés u otro idioma) para facilitar la escritura y lectura, debido a que está en lenguaje común si requiere una modificación es fácil hacerla. La escritura sólo puede ser comprendida por el ser humano y no por la máquina, por ende, tampoco puede ejecutarla. La finalidad de un pseudocódigo es representar la solución a un algoritmo (problema) de la forma más detallada posible, utilizando acciones sucesivas. Según Analía Lanzillotta: “Considerado como un lenguaje falso el pseudocódigo, que es un lenguaje intermedio entre nuestro lenguaje y el de programación, debido a que quien lo utiliza se guía por una serie de normas, pero sin llegar a usar una estructura tan rígida como la del lenguaje de programación”.Liga
En otras palabras, el pseudocódigo es un lenguaje simplificado entre el programador y la máquina, hecho por el programador en su propio idioma, para describir un algoritmo y  poder comprender mejor la estructura de dicho programa, donde el lenguaje simplificado no puede ser compilado, ejecutado ni corrido por la máquina. Siendo una herramienta que se encuentra previa al lenguaje formal de programación.


REFERENCIA

VIDEO: PSEUDOCÓDIGO

TIPOS DE DATOS QUE UTILIZA PSEINT
Tipo Real: Una variable de tipo real admite datos numéricos, que pueden ser enteros y/o con punto decimal.
Tipo Entero: Es una especialización que sólo permite almacenar valores enteros; cualquier valor no entero que se lea o asigne en una variable de este tipo será truncado.
Tipo Cadena: Es una secuencia ordenada (de longitud arbitraria, aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto análogas a una fórmula o a una oración.
Tipo Carácter: Las variables de caracteres se usan para almacenar valores alfabéticos, en particular letras solas.
Tipo LógicoUna variable de tipo LOGICO sólo puede tomar los valores VERDADERO y FALSO, pero cuando se lee una variable ya definida como lógica, el usuario puede ingresar también las abreviaciones V y F, o 0 y 1.
REFERENCIA
DIAGRAMA DE FLUJO EN PSEINT
Un diagrama de flujo es un diagrama que utiliza símbolos (cajas) estándar y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas, denominadas líneas de flujo, que indican las secuencia que debe ejecutar el algoritmo
Ejemplo

Realizar un diagrama de flujo para escribir los 100 primeros pares

Realizar un diagrama de flujo de un programa que permita escribir en pantalla los 100 primeros números pares.
Pseudocódigo
Proceso CienPrimerosPares
Escribir "Los 100 primeros pares son";
num <- 0;
Mientras num < 200 Hacer
Escribir num;
num <- num +2;
FinMientras
FinProceso

REFERENCIA
REFERENCIA
VIDEO: DIAGRAMA DE FLUJO EN PSEINT

ESTRUCTURA SI - ENTONCES EN PSEINT
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:
REFERENCIA

ESTRUCTURA SEGÚN EN PSEINT
Es frecuente tener que comprobar más de una condición a la vez, o bien varias condiciones consecutivas. En concreto, un caso especialmente habitual es el de que una variable pueda un valor de entre varios. Por ejemplo, en el sistema de notas escolares español clásico, ciertas notas numéricas tienen "nombres" asociados: un 5 es un aprobado, un 9 y un 10 son sobresaliente, etc. Si queremos hacer un programa que convierta de la nota numérica a su equivalente escrito, podríamos emplear varias órdenes IF, una tras la otra. Pero en muchos lenguajes de programación (y por tanto, también en muchas variantes de pseudocódigo) existe una alternativa más compacta y más legible: la orden "SEGUN". Esta órden permite hacer unas cosas u otras según el valor que tome una variable. Su uso sería así:


El bloque "De Otro Modo" es opcional: si detallamos todos los valores posibles, no sería necesario utilizarlo.

El número de valores que podemos probar es indefinido: no tiene por qué ser 3, sino que pueden ser menos casos o muchos más.
Según la variante de pseudocódigo (o el lenguaje de programación) que empleemos, puede haber restricciones en el tipo de datos que es aceptable. Por ejemplo, en el caso de PseInt, la variable tiene que tener un valor numérico, no puede ser un texto.
Así, si en PseInt hacemos clic en el icono del panel derecho que representa la condición SEGUN, aparece un esqueleto de programa casi completo, para que hagamos los cambios que nos interesen:

Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de pasos a dar si se cumple y si no se cumple, de modo que nuestro programa podría quedar así:

Su resultado sería éste:




viernes, 7 de septiembre de 2018

Tipos de algoritmos

Algoritmos cualitativos y cuantitativos

Un Algoritmo es una secuencia de pasos lógicos y ordenados que se llevan a cabo para resolver un determinado problema. Los algoritmos se clasifican en:

Algoritmo Cualitativo: Son aquellos en los que se describen los pasos de forma narrada.

Algoritmo Cuantitativo: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.


Ejemplo de Algoritmo Cualitativo - Realizar un puré de papas.

  1. Buscar utensilios.
  2. Lavar las papas.
  3. Llenar la olla con agua.
  4. Colocar las papas dentro de la olla.
  5. Encender la estufa.
  6. Colocar la olla en la estufa.
  7. Esperar a que hiervan.
  8. Retirar las papas.
  9. Pelar las papas.
  10. Triturar las papas.
  11. Agregar queso, mantequilla y leche.
  12. Mezclar.
  13. Agregar sal al gusto.
  14. Servir.















Ejemplos de Algoritmos Cuantitativos. 

a) Obtener la suma de 2 números. 
1. Inicio 
2. Declarar (a,b,c) 
3. Ingresar (a,b) 
4. c=a+b 
5. Mostrar (c) u
6. Fin 

b) Obtener el área de un triángulo. 
1. Inicio 
2. Declarar (b,h,a) 
3. Ingresar (b,h) 
4. a=(b*h)/2 
5. Mostrar (a) 
6. Fin 

c) Ingresar una edad. Obtener el año en que nació. 
1. Inicio 
2. Declarar (e,a) 
3. Ingresar (e) 
4. a=2012-e 
5. Mostrar (a) 
6. Fin
















viernes, 10 de agosto de 2018

FUNDAMENTOS DE PROGRAMACIÓN


¿En qué consiste la solución de problemas?

Diariamente es necesario enfrentar problemas y conflictos a los cuales se les deben encontrar soluciones aceptables de acuerdo al contexto. El proceso de solucionar problemas implica una serie de capacidades y habilidades del pensamiento que es importante desarrollar y evaluar en la preparación académica.
La resolución de problemas es una actividad cognitiva que consiste en proporcionar una respuesta-producto a partir de un objeto o de una situación.
Una de las capacidades más importantes en la resolución de problemas es la de hacer preguntas que permitan surgir de un conflicto y sortear la dificultad, algunas preguntas pueden servir para identificar el problema, otras para buscar alternativas, etc. Es posible preguntarse: ¿qué es lo que hace problemática esta situación? ¿qué me falta por saber? ¿cuántos problemas están involucrados? ¿cuál voy a intentar resolver? ¿qué es lo que no funciona? ¿cuáles son las alternativas que se pueden tomar? ¿qué conozco sobre este tema? ¿por dónde puedo empezar para que sea más fácil? etc.



















Planteamiento de solución de problemas según POLYA

De acuerdo con este autor los pasos son: 1. Entender el problema., 2. Configurar un plan, 3. Ejecutar el plan, y 4. Examinar la solución.
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 metacognitivos para revisar si lo que hizo está bien o está mal y, si es necesario, replantear el proceso de resolución.
REFERENCIA


ALGORITMO

Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea especifica, como la solución de un problema. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo el algoritmo será siempre el mismo.
Por ejemplo en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se realizaran sin importar el cocinero.
Los pasos a seguir en la solución de una ecuación de segundo grado.
Los pasos matemáticos para la solución de un número factorial.
Las instrucciones para la liquidación de una nomina.
Las acciones que se deben seguir para la obtención de una estadística.
Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa.
Características de los algoritmos
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe de tener un número finito de pasos.
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
En el algoritmo citado anteriormente se tendrá:
Entrada ingredientes y utensilios empleados
Proceso elaboración de la receta de cocina
Salida terminación del plato (por ejemplo, cordero)
Un algoritmo exige que se tengan varias propiedades importantes:
Los pasos de un algoritmo deben ser simples y exentos de ambigüedades (diferentes significados), deben seguir un orden cuidadosamente prescrito, deben ser efectivos y deben de resolver el problema en un número finito de pasos.







¿Qué es un diagrama de flujo?

Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a mano hasta diagramas exhaustivos creados por computadora que describen múltiples pasos y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Los diagramas de flujo a veces se denominan con nombres más especializados, como "diagrama de flujo de procesos", "mapa de procesos", "diagrama de flujo funcional", "mapa de procesos de negocios", "notación y modelado de procesos de negocio (BPMN)" o "diagrama de flujo de procesos (PFD)". Están relacionados con otros diagramas populares, como los diagramas de flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML).