sábado, 10 de noviembre de 2018

Algoritmos en Pseint.

Algoritmos en Pseint.

¿Qué es Pseint?

Para entender mejor este concepto primero tenemos que tener claro que es un algoritmo y este lo podemos definir como:
Un conjunto de instrucciones que especifica la secuencia de operaciones a realizar, en orden, para resolver un problema específico; en otras palabras, un algoritmo es una fórmula para la resolución de un problema. 
Pseint es principalmente un intérprete de pseudocódigo, un pseudocódigo es un lenguaje de especificación (descripción) de algoritmos. Este programa fue creado como proyecto final para la materia Programación 1 de la carrera Ingeniería en Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral, del en aquel momento estudiante Pablo Novara. 


¿Qué es un Pseudocodigo en Pseint?

El programa utiliza pseudocódigo, una descripción de un algoritmo computacional, cuya principal misión es que el programador pueda centrarse en los aspectos lógicos de la programación, dejando el apartado técnico para cuando se vea la sintaxis de un lenguaje de programación real.
Todo algoritmo en pseudocódigo de Pseint 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.


Tipo de datos que utiliza Pseint.

• Tipos Simples: Numérico, Lógico, Carácter.
 • Estructuras de Datos: Arreglos. 
Los identificadores, o nombres de variables, deben constar sólo de letras, números y/o guión_bajo (_), comenzando siempre con una letra. 

Tipos de Datos Simples 

 Existen tres tipos de datos básicos:
 • Numérico: números, tanto enteros como decimales. Para separar decimales se utiliza el punto. Ejemplos: 12 23 0 -2.3 3.14
 • Lógico: solo puede tomar dos valores: VERDADERO o FALSO. 
• Carácter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples). Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc' Los tipos de datos simples se determinan automáticamente cuando se crean las variables. 
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.
 Una vez determinado el tipo de dato, deberá permanecer constante durante toda la ejecución del proceso; en caso contrario el proceso será interrumpido. Estructuras de Datos: Arreglos Los arreglos son estructuras de datos homogéneas (todos sus datos son del mismo tipo) que permiten almacenar un determinado número de datos bajo un mismo identificador, para luego referirse a los mismo utilizando uno o más sub-índices. 
Los arreglos pueden pensarse como vectores, matrices, etc. Para poder utilizar un arreglo, primero es obligatorio su dimensionamiento; es decir, definir lo declarando los rangos de sus sub-índices, lo cual determina cuantos elementos se almacenarán y como se accederá a los mismos.

Diagrama de flujo en Pseint.

Un algoritmo como ya se menciono codifica,  siguiendo un lenguaje de programación es conocido como programa. Antes de aprender un lenguaje de programación es necesario aprender la metodología de programación, es decir la estrategia necesaria para resolver problemas mediante programas.
Como punto de partida se aborda la manera como es representado un algoritmo. Básicamente se puede analizar  de dos formas, la representación usando pseudocódigo y la representación usando diagramas de flujo.
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.
Por otro lado, 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 lenguaje de programacion) relativamente fácil, por lo que este es considerado un primer borrador de la solución del programa.

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á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.

Estructura en Pseint de la condición SI-Entonces.

A continuación les dejo un enlace para profundizar mas en Pseint.






Bibliografias:






sábado, 8 de septiembre de 2018

Tipos de Algoritmos.

¿Que son los Algoritmos?

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.
El siguiente ejemplo muestra un algoritmo para cambiar un foco quemado.
Cambiar un foco quemado podría resumirse en dos pasos:
Quitar el foco quemado
Colocar un foco nuevo
Pero, si tuviera que entrenar un robot domestico para que efectúe esta tarea, tendrá que ser mas especifico y claro en los pasos a seguir, dar mas detalles (suponga que el foco se encuentra en el techo de una habitación):
Situar escalera bajo el foco quemado.
Elegir un foco de reemplazo (de la misma potencia que el anterior).
Subir por la escalera hasta alcanzar el foco.
Girar el foco contra las manecillas del reloj hasta que esté suelto.
Ubicar el foco nuevo en el mismo lugar que el anterior.
Enroscar en el sentido de las manecillas del reloj hasta que quede apretado.
Bajar de la escalera.




TIPOS DE ALGORITMOS





Les dejo un enlace y  espero y les funcione:

  • http://ing.unne.edu.ar/pub/informatica/Alg_diag.pdfCualitativos
Existen dos tipos y son llamados así por su naturaleza:
 Son aquellos en los que se describen los pasos utilizando palabras. Lo ejecutan las personas
Ejemplo:
 1. Se dispone de un grifo de agua – jabón – papel y corriente de aire caliente.

 INICIO
Abrir el grifo de agua.

Mojarse las manos.
Aplicarse jabón.
Enjuagarse las manos.
Cerrar el grifo de agua.
Secarse las manos con papel.
Exponer las manos a corriente de aire caliente.
FIN
 2. Desarrolle un algoritmo que describa la manera en que su papá se levanta todas las mañanas para ir al trabajo en auto privado.


 INICIO

Levantarse de la cama.

Quitarse el pijama.
Ducharse.
Vestirse.
 Desayunar.
  Arrancar el auto para ir al trabajo.
FIN
 3. Algoritmo para leer las páginas de un libro:


Inicio.

1.Abrir el libro en la 1ª página.

2. Leer la página.
3. ¿Es la última que deseo leer?
Sí: Ve al paso 5.
No: Ve al paso 4
4. Pasar a la siguiente página.
5. Ve al paso 3.
Cerrar el libro.
  • Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.  Lo ejecuta el computador.

Ejemplo:

Problema
Calcular el área de un rectángulo.



Observación: Antes de resolver el problema se debe tener en cuenta: los datos que se requieren para resolver el problema (datos de entrada), cuales es el resultado que esperamos obtener (resultado deseado) y mediante cual método podremos lograr con esos datos de entrada producir esta salida.




Datos de entrada

• base
• altura

Proceso Algorítmico
(Algoritmo Cuantitativo)

1. Conocer la base y la altura del rectángulo.
2. Calcular el área utilizando la fórmula area = base * altura
3. Imprimir el resultado
Datos de salida

• área

Datos de entrada

• 8
• 4

Proceso Algorítmico
(Algoritmo Cuantitativo)

1. Conocer la base=8 y la altura=4 del rectángulo.
2. Calcular el área utilizando la fórmula area = 8 * 4
3. Imprimir el resultado.






Bibliográfica:
Recuperado de:
http://www.uacj.mx/CGTI/CDTE/JPM/Documents/IIT/proceprogra/tipos-de-algoritmos.html
https://aulatec.wordpress.com/algoritmos/
http://correo.uan.edu.mx/~iavalos/FP/FP1.html
Datos de salida

• 32

sábado, 11 de agosto de 2018

FUNDAMENTOS DE PROGRAMACIÓN.

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

Para poder comprender el tema es necesario definir cada uno de los conceptos que se están utilizando en el título que es la solución de problemas.
  • ·         Solución: Proviene del latín Solutio que se refiere a la acción o efecto para resolver dificultades, dudas o problemas.
  • ·         Problema: Es un asunto del que se espera una solución, es algo con lo que no estamos conformes y deseamos cambiar.
  • ·         Solución de problemas: Es cuando generamos un cambio a seguir para poder resolver o hacer cambios en situaciones alrededor de un problema.

Entonces podemos decir que la resolución de problemas es el proceso a través del cual podemos reconocer las señales que identifican  la presencia de una dificultad, anomalía o entorpecimiento del desarrollo normal de una tarea, recolectar la información necesaria para resolver los problemas detectados y escoger e implicar las mejores alternativas de solución, ya sea de manera individual o grupal.
Cada situación es una oportunidad para que las personas sean capaces de transformar y mejorar continuamente el entorno en forma activa y además aprender de ello.

Aplicada en el mundo laboral, la resolución de problemas permite mantener el correcto desarrollo de las actividades, tareas o procesos, y estar preparado para enfrentar de manera eficiente los entorpecimientos cotidianos que se presentan en la ejecución de una labor.




COMPETENCIAS DEL ÁREA:
1. Recolectar, organizar y analizar la información que resuelve el problema.
2. Aplicar alternativas de solución de problemas.
3. Resolver problemas interpersonales.

Bibliografía.



Planteamiento de resolución de problemas según Polya.

George Polya (1887-1985) publicó la primera edición de su libro How To Solve It? (1945), donde trató de explicar axiomas que pudieran abonar en los razonamientos implicados en la resolución de problemas.
Método de Pólya para resolver problemas matemáticos
Para resolver un problema se necesita:

  • Paso 1: Entender el problema

¿Cuál es la incógnita?, ¿Cuáles son los datos?
¿Cuál es la condición? ¿Es la condición suficiente para determinar la incógnita? ¿Es insuficiente? ¿Redundante? ¿Contradictoria?
  • Paso 2: Configurar un plan

¿Te has encontrado con un problema semejante? ¿O has visto el mismo problema planteado en forma ligeramente diferente?
¿Conoces algún problema relacionado con éste? ¿Conoces algún teorema que te pueda ser útil? Mira atentamente la incógnita y trata de recordar un problema que sea familiar y que tenga la misma incógnita o una incógnita similar.
He aquí un problema relacionado al tuyo y que ya has resuelto ya. ¿Puedes utilizarlo? ¿Puedes utilizar su resultado? ¿Puedes emplear su método? ¿Te hace falta introducir algún elemento auxiliar a fin de poder utilizarlo?
¿Puedes enunciar al problema de otra forma? ¿Puedes plantearlo en forma diferente nuevamente? Recurre a las definiciones.
Si no puedes resolver el problema propuesto, trata de resolver primero algún problema similar. ¿Puedes imaginarte un problema análogo un tanto más accesible? ¿Un problema más general? ¿Un problema más particular? ¿Un problema análogo? ¿Puede resolver una parte del problema? Considera sólo una parte de la condición; descarta la otra parte; ¿en qué medida la incógnita queda ahora determinada? ¿En qué forma puede variar? ¿Puedes deducir algún elemento útil de los datos? ¿Puedes pensar en algunos otros datos apropiados para determinar la incógnita? ¿Puedes cambiar la incógnita? ¿Puedes cambiar la incógnita o los datos, o ambos si es necesario, de tal forma que estén más cercanos entre sí?
¿Has empleado todos los datos? ¿Has empleado toda la condición? ¿Has considerado todas las nociones esenciales concernientes al problema?
  • Paso 3: Ejecutar el plan

Al ejecutar tu plan de la solución, comprueba cada uno de los pasos
¿Puedes ver claramente que el paso es correcto? ¿Puedes demostrarlo?
  • Paso 4: Examinar la solución obtenida

¿Puedes verificar el resultado? ¿Puedes el razonamiento?
¿Puedes obtener el resultado en forma diferente? ¿Puedes verlo de golpe? ¿Puedes emplear el resultado o el método en algún otro problema?
Método de Pólya para resolver problemas de programación
Para resolver un problema se necesita:

  • Paso 1: Entender el problema

¿Cuáles son los argumentos? ¿Cuál es el resultado? ¿Cuál es nombre de la función? ¿Cuál es su tipo?
¿Cuál es la especificación del problema? ¿Puede satisfacerse la especificación? ¿Es insuficiente? ¿Redundante? ¿Contradictoria? ¿Qué restricciones se suponen sobre los argumentos y el resultado?
¿Puedes descomponer el problema en partes? Puede ser útil dibujar diagramas con ejemplos de argumentos y resultados.
  • Paso 2: Diseñar el programa

¿Te has encontrado con un problema semejante? ¿O has visto el mismo problema planteado en forma ligeramente diferente?
¿Conoces algún problema relacionado con éste? ¿Conoces alguna función que te pueda ser útil? Mira atentamente el tipo y trata de recordar un problema que sea familiar y que tenga el mismo tipo o un tipo similar.
¿Conoces algún problema familiar con una especificación similar?
He aquí un problema relacionado al tuyo y que ya has resuelto. ¿Puedes utilizarlo? ¿Puedes utilizar su resultado? ¿Puedes emplear su método? ¿Te hace falta introducir alguna función auxiliar a fin de poder utilizarlo?
Si no puedes resolver el problema propuesto, trata de resolver primero algún problema similar. ¿Puedes imaginarte un problema análogo un tanto más accesible? ¿Un problema más general? ¿Un problema más particular? ¿Un problema análogo?
¿Puede resolver una parte del problema? ¿Puedes deducir algún elemento útil de los datos? ¿Puedes pensar en algunos otros datos apropiados para determinar la incógnita? ¿Puedes cambiar la incógnita? ¿Puedes cambiar la incógnita o los datos, o ambos si es necesario, de tal forma que estén más cercanos entre sí?
¿Has empleado todos los datos? ¿Has empleado todas las restricciones sobre los datos? ¿Has considerado todas los requisitos de la especificación?
  • Paso 3: Escribir el programa

Al escribir el programa, comprueba cada uno de los pasos y funciones auxiliares.
¿Puedes ver claramente que cada paso o función auxiliar es correcta?
Puedes escribir el programa en etapas. Piensas en los diferentes casos en los que se divide el problema; en particular, piensas en los diferentes casos para los datos. Puedes pensar en el cálculo de los casos independientemente y unirlos para obtener el resultado final
Puedes pensar en la solución del problema descomponiéndolo en problemas con datos más simples y uniendo las soluciones parciales para obtener la solución del problema; esto es, por recursión.
En su diseño se puede usar problemas más generales o más particulares. Escribe las soluciones de estos problemas; ellas pueden servir como guía para la solución del problema original, o se pueden usar en su solución.
¿Puedes apoyarte en otros problemas que has resuelto? ¿Pueden usarse? ¿Pueden modificarse? ¿Pueden guiar la solución del problema original?
  • Paso 4: Examinar la solución obtenida

¿Puedes comprobar el funcionamiento del programa sobre una colección de argumentos?
¿Puedes comprobar propiedades del programa?
¿Puedes escribir el programa en una forma diferente?
¿Puedes emplear el programa o el método en algún otro programa?


A continuación les dejo un vídeo, para comprender mejor la resolución de problemas por el método de Poyla. 


Bibliografía.


Definición de algoritmos de solución.

Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea específica, 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.

El concepto de algoritmo, aunque similar y obviamente relacionado, no debe  confundirse con el concepto de programa.  Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método), el segundo es un conjunto de operaciones especificadas en un determinado lenguaje de programación, susceptible de ser ejecutado (o compilado o interpretado).

Al momento de resolver un algoritmo se debe tener en cuenta la información existente, los procesos que se deben realizar y los resultados esperados
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.


Bibliografía.


Diagramas de flujo.

El diagrama de flujo o diagrama de actividades, también conocido como flujograma 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.
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.
¿Cuál es la utilidad de un diagrama de flujo?

  • Se puede conocer el proceso de un solo vistazo.
  • Al ser muy visual, permite que las personas involucradas, lleguen a acuerdos sobre los métodos a utilizar y resolución de problemas, de una manera más fácil.
  • Se puede usar para identificar problemas, asignar recursos, coordinar actuaciones y delimitar tiempos.
  • Deja bien definidas las funciones y responsabilidades de cada una de las personas que intervienen en un proceso.
  • Permite establecer indicadores operativos.
Tipos de diagrama de flujo
 Matricial
Los agentes que intervienen en el proceso aparecen en la cabecera del dibujo y las actividades desempeñadas se encuentran subordinadas a ellos. Se pueden construir de arriba abajo o de izquierda a derecha. Se recomiendan los primeros.
Lineal
Las actividades del proceso aparecen secuenciadas una debajo de la otra. Es más fácil de construir y es recomendable si los agentes de proceso son mayores a seis, pero aporta menos información.

Símbolos que se utilizan más frecuentemente y su significado:

¿Cómo se elabora un diagrama de flujo?
 


Si es un proceso existente:


  • Identificar el principio y el fin del proceso.
  • Observar el proceso completo desde el principio hasta el fin.
  • Definir los pasos en el proceso (actividades, decisiones, entradas, salidas).
  • Elaborar un proyecto de diagrama de flujo para representar el proceso.
  • Revisar el proyecto de diagrama de flujo con las personas que participan en el proceso.
  • Mejorar el diagrama de flujo a partir de esta revisión.
  • Verificar el diagrama de flujo con respecto el proceso real.
  • Fechar el diagrama de flujo para referencia y uso futuros.

Para diseñar un nuevo proceso


  • Identificar el principio y el fin del proceso.
  • Visualizar los pasos que se deben dar en el proceso (actividades, decisiones, entradas, salidas).
  • Definir los pasos en el proceso (actividades, decisiones, entradas, salidas).
  • Elaborar un proyecto de diagrama de flujo para representar el proceso.
  • Revisar el proyecto de diagrama de flujo con las personas que se espera participarán en el proceso.
  • Mejorar el diagrama de flujo a partir de esta revisión.
  • Fechar el diagrama de flujo para referencia y uso futuros
Les dejo un PDF y un video que les puede servir en la definición algoritmos y diagramas de flujo.

Bibliografía.