TUTORIAL SENCILLO MANEJO DE PSEINT Y FREE DFD 
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida, asi:  
* Entrada: Información dada al algoritmo, o conjunto de instrucciones que generen los valores con que ha de trabajar.  
* Proceso: Cálculos necesarios para que a partir de un dato de entrada se llegue a los resultados. 
 * Salida: Resultados finales o transformación que ha sufrido la información de entrada a través del proceso. 
Por ejemplo, un ejemplo típico es una receta de cocina (Por ejemplo la receta para hacer una bandeja paisa), tomando la receta como un algoritmo (pues describe una secuencia de pasos), las partes asociadas a esta son: 
 Entrada: Ingredientes y utensilios empleados.  
 Proceso: Elaboración de la receta en la cocina. 
 Salida: Terminación del plato 
Cuando se formula un algoritmo el objetivo es ejecutar este en un computador, sin embargo, para que este entienda los pasos para llevar a cabo nuestro algoritmo debemos indicárselo siguiendo un conjunto de instrucciones y reglas que este entienda, y estas instrucciones son abstraídas en lo que conocemos como lenguaje de programación 
Un algoritmo codificado 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 analizamos 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 
















image

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 programación) relativamente fácil, por lo que este es considerado un primer borrador de la solución del programa. 

















image

Pseudocódigo en pocas palabras
 Como habíamos dicho antes, el pseudocódigo es un lenguaje de descripción de algoritmos por lo que un primer paso consiste en familiarizarnos con este lenguaje. Como punto de partida tenemos que tener en cuenta lo siguiente:  
Anatomía de un algoritmo: Un algoritmo es finito por lo que tiene un principio y un fin. La siguiente plantilla muestra la forma básica de un algoritmo: 
















image

Las variables: Cuando nos referimos a variables nos referimos a lugares de memoria en los cuales se almacena algún tipo de información, por ejemplo el numero de gallinas, la altura, la edad, el nombre y el peso. Existen diferentes tipos de datos tal y como se muestra en la siguiente tabla: 

















image


Cuando se trabaja con variables un aspecto de vital importancia (además del tipo) es el nombre que estas van a tener, se recomiendan nombres relacionados con la información que van a manejar, por ejemplo, si se va a manejar un salario, un nombre apropiado para una variable puede ser sal.
  Instrucción de asignación: Escribe sobre una variable el valor de una expresión. Asi: 
variable = expresión 
Donde, una expresión es una combinación de valores, variables y operadores, los siguientes son algunos ejemplos de expresiones:
 a = 5 
b =c*d+(c-f)*m
 z=(x+y)/(w+s) 
s=(a/b)^3 
Existen diferentes tipos de operadores. La siguiente tabla muestra los operadores aritméticos. 
















image

 Instrucciones de entrada y salida: Para que un programa pueda interactuar con el usuario deben haber un conjunto de instrucciones que permitan especificar tal interacción, y estas son las instrucciones de entrada y salida. 
 Instrucciones de entrada: Permite tomar uno o mas datos de un medio externo (comúnmente el teclado) y asignarlos a una o mas variables, su representación en pseudocódigo es: 
LEA(var1, var2, …, varN) 
 Instrucciones de salida: Permite mostrar de variables y constante en un medio externo (comúnmente la pantalla). En pseudocódigo la instrucción asociada a la salida tiene la siguiente forma: 

ESCRIBA (var1,var2, …, varN) 
Ejemplo 1: Codifique un algoritmo que solicite el nombre y devuelva como salida el mensaje: Hola nombre_ingresado. Por ejemplo, si el usuario digita ramón, el mensaje desplegado será: Hola ramón. 
Solución: La codificación en Pseudocódigo del algoritmo se muestra a continuación: 

















image

Ejemplo 2: Realice un algoritmo que solicite dos números entero, realice su suma y muestre el resultado. 
Solución: A continuación se muestra la codificación del problema en Pseudocodigo: 
















image

Nota: Cuando se codifica en Pseudocódigo, la declaración de variables no es necesaria (es mas la gran mayoría de libros nunca declaran variables), sin embargo en los ejemplos anteriormente mostrados se realizo pues esta si es necesaria cuando se trabaja en un lenguaje de programación. 
Diagramas de flujo en pocas palabras El diagrama de flujo es la representación grafica del algoritmo, de modo que lo único que es necesario es conocer la equivalencia de este con el pseudocódigo. La siguiente tabla resume 

















image

Con base en lo anterior es fácil representar los dos anteriores Pseudocódigos, es casi como reemplazar en una formula. Vale notar que en el diagrama de flujos no existe la declaración de variables: 
Ejemplo 3: Realizar el diagrama de flujo del algoritmo codificado en el ejemplo 1, a continuación se muestra el Pseudocódigo asociado a este: 
















image

Solución: Como el diagrama de flujo no posee declaración e variables, el diagrama de flujo equivalente se toma de las instrucciones que se encuentran entre las sentencias INICIO y FIN_INICIO. 
















image

Ejemplo 4: Realizar el diagrama de flujo del algoritmo codificado en el ejemplo 2, a continuación se muestra el Pseudocódigo asociado a este: 
















image

Solución: El diagrama de flujo codifica las instrucciones que se encuentran entre INICIO y FIN_INICIO, así: 

















image



Enunciado del problema 
Ejemplo resuelto Realizar un algoritmo que calcule el perímetro y el arrea de un rectángulo dadas la base y la altura del mismo
. Solución en Pseudocodigo del libro
 A continuación se detalla la solución en Pseudocodigo tomada del libro, esta se modifico un poco respecto a la original. 

Algoritmo(ejemplo1)
 Variables: 
 real: area, perímetro, base = 0, altura = 0
 INICIO 
ESCRIBA(“Digite la base y la altura del rectángulo”)
 LEA(base,altura)
 area = base*altura 
perímetro = 2*(base + altura)
 ESCRIBA(“El rectanculo cuya base es ”, base, “y cuya altura es ”, altura, “ tiene un perímetro de ”,perímetro, “ y una altura de ”, altura)
 FIN_INICIO 
Fin(aumento_con_condicion) 

Codificación en PSEINT Ya se tiene el pseudocódigo del programa codificado en nuestro pseudocódigo por convención sin embargo la idea es probarlo para ver cómo funciona. Existe una herramienta llamada PSeint el cual es un pseudointerprete, es decir entiende Pseudocódigo, sin embargo en el momento de codificar el anterior programa en PSeInt debemos tener en cuenta que el pseudocódigo manejado en le PSeInt es un poco diferente, la siguiente tabla muestra esto en detalle: 

















image

Ejecución del PSeInt Abra el programa PSEINT (Inicio > todos los Programas > PSeInt). Una vez ejecutado, se debe abrir una ventana como la mostrada en la figura 1: 
















image

Codificación del algoritmo Explore la herramienta dando click en los diferentes botones del panel de comando, observe el efecto en el área de trabajo, una vez que se haya familiarizado un poco con la herramienta intente adaptar el código mostrado en el pseudocódigo del problema anterior en el PseInt: 

















image

Una vez codificado el pseudocódigo (ayudado de los botones del panel de comandos) en el área de trabajo guarde el archivo como ejemplo1 En una ruta conocida. 
Nota sobre la codificación en PSeInt La siguiente figura muestra una comparación entre el Pseudocódigo convención y el Pseudocódigo del Pseint: 
















image

Note lo siguiente:
  En el Pseint no hay declaración de variables (es decir enunciar el tipo y la lista de variables de dicho tipo, para el ejemplo en el pseudocódigo convención la declaración es: real: área, primero, area = 0, altura = 0) por lo tanto la codificación del algoritmo en PSeint empieza desde la parte de INICIO del algoritmo, sin embargo cuando una variable es inicializada esto si deba ser tenido en cuenta en el Pseint antes de iniciar la codificación del programa desde el INICIO. Como se puede notar en el pseudocódigo convención las variables base y altura están inicializadas ambas en cero (base = 0, altura = 0), por ello antes de empezar la primera instrucción después del INICIO (ESCRIBA(“Digital la base y la altura del rectangulo”)) es necesario codificar en PSeInt dicha inicialización por ello las líneas base<- 0; y altura <-0; antes del Escribir. 
 El Pseudocódigo que se codifica es propiamente el que se encuentra entre las sentencias INICIO y FIN_INICIO (Ver parte resaltada en verde), salvo cuando se tiene que tener en cuenta la nota anterior. 
Una vez realizado lo anterior obtenga el diagrama de flujo asociado al pseudocódigo para ello presione el dibujar diagrama de flujo. 
















image

Si lo anterior está bien, se generar un diagrama como el mostrado en la siguiente figura: 
















image

Guarde el diagrama de flujo anterior como una imagen jpg (puede serle útil después, por ejemplo para un informe). 
















image

Ejecución del algoritmo Una vez guardado el programa anterior, proceda a realizar la prueba del algoritmo presionando el botón ejecutar. 
















image

Deberá aparecer una ventana como la siguiente asociada al programa: 
















image

Lo anterior se debe a la instrucción Escribir “Digital la base y la altura del rectángulo”;
 Si lo nota el cursor se queda titilando esperando a que sean introducidos los valores para la altura y la base, esto debido a la instrucción Leer base,altura; 
Introduzca el valor de 2 como valor para la base y 3 como valor para la altura. 
















image

Note que cada vez que introduce un valor por teclado debe presionar enter. Una vez que presione el enter después de digital el segundo valor aparece algo como lo siguiente: 
















image

Figura 8. Ejecución del programa asociado al algoritmo (después de ingresar el valor solicitado por teclado). Después de que aparece la ventana anterior si damos enter esta se cierra. Intente nuevamente ejecutar el algoritmo pero esta vez de 6 como valor para la base y 7 como valor para la altura.
 Ejercicio de refuerzo
 Con el fin de obtener un poco de familiaridad con el Pseint, se muestra a continuación el pseudocódigo del ejemplo 1 y su codificación en PSeInt. Codifique dicha codificación en el PSeInt, genere el diagrama de flujos y ejecute el programa. 
















image

Note de la figura anterior que la codificación inicia desde el INICIO del pseudocódigo de convención. De la declaración de variables (alfanumérica: nom) no se tuvo en cuenta nada pues no hay inicialización de variable alguna. 
Trabajando con el Free DFD 
Free DFD es un programa que permite realizar diagramas de flujo, asumiendo, a diferencia del PSeInt este no cuenta con un instalador, ya viene como archivo ejecutable. Asumiendo que este se descargo en el escritorio el primer paso consiste en meternos a la carpeta de este e invocar el DFD: 

















image

Una vez que este es invocado, aparece una ventana como la siguiente: 

















image

Para ingresar los símbolos del diagrama de flujo se usan principalmente los botones mostrados a continuació 
















image

Por el momento solo nos interesa lo básico, así que para los problemas que hemos trabajado solo vamos a hacer uso de los botones; Escriba, asignación y Lea. Retomando el Pseudocódigo del problema del área y del perímetro del rectángulo tenemos: 
Algoritmo(ejemplo)Variables :: real: área, perímetro, base = 0, altura = 0

 INICIO
 ESCRIBA(“Digite la base y la altura del rectángulo”)  LEA(base,altura)  area = base*altura
 perímetro = 2*(base + altura) 
 ESCRIBA(“El rectángulo cuya base es ”, base, “y cuya altura es ”, altura, “ tiene un perímetro de ”,perímetro, “ y una altura de ”, altura) 
FIN_INICIO
 Fin(aumento_con_condición) 

Ahora nuestro objetivo es hacer el diagrama de flujos. Al igual que en el PseInt no se declaran variables, solo se inicializan y la codificación del programa es desde la sentencia INICIO hasta la sentencia FIN_INICIO. Empecemos: 
















image

Vamos a agregar la parte resaltada, para ello damos click en el botón de asignación, y ubicamos el símbolo en el diagrama de flujo, quedando algo como la siguiente figura: 
















image

Para editar los valores del triangulo, damos doble click en el rectángulo, aparece una ventana como la mostrada a continuación, colocamos las variables y su asignación y aceptamos: 

















image


Seguimos ahora con la instrucción escriba: 
















image

Para ello usamos el botón escriba, damos click para seleccionar el símbolo y luego en el diagrama de flujo, click para ubicarlo, queda algo como esto: 
















image

Luego damos en el símbolo de escriba doble click para editarlo, colocamos lo que deseamos que se vea en pantalla entre comillas sencillas (‘’). Así: 
















image

Al aceptar ya tenemos algo como esto: 
















image

Continuando con el Pseudocódigo tenemos lo siguiente 
















image

Para ello invocamos el botón lea, y procedemos a editar su contenido: 
















image

Se procede de igual manera hasta completar el diagrama tal y como se muestra a continuación: 
















image

Una vez editado el diagrama de flujo guárdelo. 
Ejecutando el algoritmo: Una vez realizado el diagrama de flujo se presiona el botón ejecutar: 
















image

Ejecute el programa ingresando 2 y 3 como valore para la base y la altura respectivamente
LINK
evaluacion 

[05-.05-2015]


otros 

1.- Escribir un Pseudocódigo de un programa que permita leer la edad y peso de una persona y posteriormente imprimirla.

Inicio
    Variables edad, peso.
    Imprimir "Escribir los datos (Edad, Peso):"
    Leer Edad, Leer Peso.
    Visualizar "Tu peso es: ", peso, " y tu edad es: ", edad.
Fin.




2.- Escribir un Pseudocódigo que calcule el área de un triángulo recibiendo como entrada el valor de base y altura.

Inicio
    Variables Altura, Base, Area.

    Imprimir "Introduce la base y la altura: "
    Leer base y peso.
    area= (base*altura)/2.
    Imprimir "El area es: ", base.
Fin.




3.- Escribir Pseudocódigo que calcule el área de un círculo.

Inicio
   Constantes  Pi= 3.1416
   Variables Radio, area = real
  
   Imprime "Introduce el radio: "
   Leer radio.
   area= radio*radio*Pi
   Imprimir "El área del circulo es: ", area.
Fin.




4.- Escribir Pseudocodigo que dados 2 valores de entrada imprima siempre la división del mayor entre el menor.

Inicio
   Variables num1, num2=entero.
   Variables R=real.

   Imprimir "Introduce los números:"
   Leer num1, Leer num2.
   Si a>b entonces
      R= a/b
   Sino
      R= b/a


5.- Escribir Pseudocódigo que lea de entrada 3 números y que indique cual es el mayor de ellos.

Inicio
   Variables a, b,c = enteros.
  
   Imprimir "Introduce los datos a comparar: "
   Leer a,b,c
   Si a<b y a<c entonces
      Imprime "El mayor es: ", a
   Sino
      Si b<a y b<c entonces
         Imprime "El mayor es: ",b
      sino
         Imprime "El mayor es: ", c
Fin.



6.- Escribir un Pseudocódigo que lea 3 números los cuales significan una fecha (día, mes, año). Comprobar que sea válida la fecha, si no es valido que imprima un mensaje de error, y si es válida imprimir el mes con su nombre.

Inicio
   Variables  dia, mes, año =entero.

   Imprimir "Introduce la fecha (Dia,mes,año): "
   Leer dia, mes, año.
   Si dia>31 o mes >12 o año<0 entonces
       Imprimir "Error la fecha no es correcta"
   Sino
       si mes=1 o mes=3 o mes=5 o mes=7 o mes=8 o mes=10 o mes=12 entonces
            si dia >31 y dia<1 entonces
               Imprimir "Error de Dia"
            sino
                si mes=1 entonces imprimir dia,"/ Enero /",año
                si mes=3 entonces imprimir dia,"/ Marzo /",año
                si mes=5 entonces imprimir dia,"/ Mayo /",año
                si mes=7 entonces imprimir dia,"/ Julio /",año
                si mes=8 entonces imprimir dia,"/ Agosto /",año
                si mes=10 entonces imprimir dia,"/ Octubre /",año
                si mes=12 entonces imprimir dia,"/ Diciembre /",año
      
       Si mes=2 entonces
              si dia>28 o dia<0 entonces
                 Imprimir "Error de Dia"
              sino
                 Imprimir dia,"/ Febrero /",año

       Si mes=4 o mes=6 o mes=9 o mes=11
          Si dia >30 o dia <1 entonces
             Imprimir "Error de Dia"
          Sino
              Si mes=4 entonces
                  Imprimir dia,"/ Abril /",año
              Si mes=6 entonces
                  Imprimir dia,"/ Junio /",año
              Si mes=9 entonces
                  Imprimir dia,"/ Septiembre /",año   
              Si mes=11 entonces
                  Imprimir dia,"/ Noviembre /",año   
Fin.




7.- Escribir un Pseudocodigo que pida la edad y el sexo y dependiendo si es hombre o mujer y si puede votar o no.

Inicio
   variables edad=entero, sexo=caracter.
  
   repetir
   Imprimir "Introduce Tu edad:"
   Leer edad.
   Hasta que (edad >0)

   Hacer
   Imprimir "Introduce tu sexo (M/H):"
   leer sexo
   hasta que (sexo='H' o sexo = 'M')

   Si  sexo= 'M' entonces
       si edad > 18 entonces
           Imprimir "Eres Mujer y puedes votar"
       sino
           Imprimir "Eres Mujer y no puedes votar"
   Sino
       si edad >18 entonces
           Imprimir "Eres Hombre y puedes votar"
       sino
           Imprimir "Eres Hombre y no puedes votar"
Fin.




8.- Realice un Pseudocódigo que calcule la nómina salarial neto, de unos obreros cuyo trabajo se paga en horas. El cálculo se realiza de la siguiente forma:
- Las primeras 35 horas a una tarifa fija.
- Las horas extras se pagan a 1.5 más de la tarifa fija.
- Los impuestos a deducir de los trabajadores varian, segun el sueldo mensual si el sueldo es menos a $20,000.00 el sueldo es libre de impuesto y si es al contrario se cobrará un 20% de impuesto.

Inicio
  Canstante  Tarifa= 50.
  Variables Horas, Sueldo, dif_horas, tarifa_extra, Salario_extra, Sueldo_mes, Impuesto, Sueldo_total.

  Imprimir "Introduce las Horas de Trabajo ==> "
  Leer Horas.

  Si Horas <= 35 entonces
    Sueldo= horas * tarifa.
  Sino
    Dif_horas= Horas - 35
    tarifa_extra=(tarifa * 1.5)
    Salario_exta= tarifa_extra * Dif_horas
    Sueldo=(35*tarifa)+ salario_extra.

  Sueldo_mes = sueldo * 4
  Impuesto=0

  Si sueldo_mes > 20000 entonces
       Impuesto = (Sueldo_mes* 0.20)
       Salario_total = Sueldo_mes - Impuesto
       Imprimir "Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ", Impuesto, " El salario Neto es: ",Salario_total.
  sino
       Imprimir "Tu sueldo Neto es: ", sueldo_mes.
Fin.




9.- Hacer un Pseudocódigo que calcule el factorial de un número.

Inicio
   Variables N,Fact,aux.
  
   Imprimir "Introduce el número: "
   Leer N
  
   aux= n-1.
   fact=n
  
   Hacer
     fact=fact * aux.
   Hasta que aux=1
  
   Imprimir "El factorial de ", n, "es:", fact
Fin.




10.- Hacer un Pseudocodigo que despliegue las tablas de multiplicar.

Inicio
   Variables i,k,r.
  
   para i=1 hasta 10.

      para k=1 hasta 10.
          r:=i*k.
          Imprimir i," por ",k," = ",r.
          k=k+1.
      i=i+1.
Fin.



11.- Escribir un Pseudocódigo que encuentre y despliegue los números primos entre uno y cien. Un número primo es divisible entre el mismo y la unidad por lo tanto un numero primo no puede ser par excepto el dos (2).

Inicio
   Variables primo, cont, div, res.
  
   Primo = 1.
   Hacer mientras primo<=100
      Div =0.
      Cont =1.
      Hacer Mientras cont <= primo
          Res = cont mod primo
          si res = 0 entonces
            Div = div +1.
          Fin si
       Cont = cont +1.
      Fin de Hacer mientras
      si div<=2 entonces
         imprimir primo
      Fin si.
   Primo = primo + 1.
   Fin de Hacer mientras    
Fin.

tomado  http://docente.ucol.mx/al989508/public_html/Pscod.htm#E1


[12-05-2015]

taller practico de algoritmos 

[19-05-2015]

 se realiza prueba saber 


[26-05-2015]


acumulativo