jueves, 30 de abril de 2015

Realizar el diagrama de flujo de un algoritmo que lea N números e imprima el porcentaje de números pares e impares



Pseudocódigo
Proceso PorcentajeNumeros
 Escribir 
"Ingrese la cantidad de numeros:";
 Leer cant;
 par <-0;
 Para i<-1 Hasta cant Con Paso 1 Hacer
  Escribir
 "Ingrese el numero ", i, " :";
  Leer num;
  Si num%2 = 0 Entonces
   par <- par + 1;
  FinSi
 FinPara
 porcentaje <- par/cant*100.0;
 Escribir 
"El porcentaje de : ";
 Escribir 
" - numeros pares: ", porcentaje;
 Escribir 
" - numeros impares: ", 100 - porcentaje; 
FinProceso

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

Volumen de un Prisma - Diagrama de Flujo
Realizar el algoritmo y diagrama de flujo para calcular el volumen de un prisma recto.

Diagrama de flujo:
El volumen de un prisma recto es el producto del área de una de las bases por la distancia entre ellas (altura)

Pseudocódigo
Proceso volumenPrisma
Escribir "VOLUMEN DE UN PRISMA RECTO";
Escribir "Ingresar el area de la base";
Leer abase;
Escribir "Ingresar la altura";
Leer altura;
volumen <- abase*altura;
Escribir "El volumen del prisma es: ", volumen;
FinProceso

martes, 28 de abril de 2015


 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 (esto es, la traducción a un lenguaje de programación) relativamente fácil. Los lenguajes APL Pascal y Ada se utilizan a veces como lenguajes de especificación de algoritmos.


El pseudocódigo nació como un lenguaje similar al ingles y era un medio de representar básicamente las estructuras de control de programación estructurada que se verán a continuación. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. El pseudocódigo no puede ser ejecutado por una computadora. La ventaja del pseudocódigo es que en su uso, en la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especifico. Es también fácil modificar el pseudocódigo si se descubren errores o anomalías en la lógica del programa, mientras que en muchas ocasiones suele ser difícil el cambio en la lógica, una vez que esta codificado en un lenguaje de programación. Otra ventaja del pseudocódigo es que puede ser traducido fácilmente a lenguajes estructurados como Pascal, C, Fortran 77/90, Ada 83/95, C++, etc.

El pseudocódigo original utiliza para representar las acciones sucesivas palabras reservadas en ingles –similares a sus homónimas en los lenguajes de programación- tales como start, end, stop, if-then-else, will-end, repeat, until, etc. La escritura de pseudocódigo existe normalmente la indentación (sangría en el margen izquierdo) de diferentes líneas.



CARACTERÍSTICAS Y PARTES:

Las principales características de este lenguaje son: * Se puede ejecutar en un ordenador * Es una forma de representación sencilla de utilizar y de manipular. * Facilita el paso del programa al lenguaje de programación. * Es independiente del lenguaje de programación que se vaya a utilizar. * Es un método que facilita la programación y solución al algoritmo del programa. Todo documento en pseudocódigo debe permitir la descripción de: * Instrucciones primitivas. * Instrucciones de proceso. * Instrucciones de control. * Instrucciones compuestas. * Instrucciones de descripción. Estructura a seguir en su realización: * Cabecera. * Programa. * Modulo. * Tipos de datos. * Constantes. * Variables. * Cuerpo. * Inicio. * Instrucciones. * Fin.


  • Diagrama de flujo

Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona.

Diagrama de actividades para un loop (bucle).
El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programacióneconomíaprocesos industriales y psicología cognitiva.
En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajopaso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.
Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.
  • Pseudocódigo

En ciencias de la computación, y análisis numérico el pseudocódigo (o falso lenguaje) es una descripción de un algoritmo informático de programación de alto nivel compacto e informal que utiliza las convenciones estructurales de un lenguaje de programación verdadero, pero que está diseñado para la lectura humana en lugar de la lectura en máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta.
Cumplimiento de una condición.

lunes, 27 de abril de 2015


DISEÑO DEL ALGORITMO

 Un Algoritmo es un proceso paso a paso que permite solucionar un problema o alcanzar un objetivo. Una computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los sucesivos pasos a realizar.
 La información proporcionada al algoritmo constituye su entrada y la información producida por el algoritmo constituye su salida. 

Características Un algoritmo debe tener al menos las siguientes características: 

a) Preciso (los pasos del algoritmo deben desarrollarse en orden estricto). 
b) Ordenado (en su redacción aplicar sangría y palabras claves) 
c) Lógico (seguir un orden lógico y ser coherente)
 d) Finito (Inicio/Final)

 El algoritmo debe ser entendible para cualquier persona, no sólo para la persona que lo diseñó.

 Ejemplo 1:
 Realizar el algoritmo que permita forrar un cuaderno: 

1. Inicio 
2. Obtener el cuaderno 
3. Alistar el papel lustre y el plástico
 4. Cortar el papel del tamaño adecuado para el cuaderno 
5. Pegar con Tape las esquinas del papel en el cuaderno
 6. Colocar el identificador del cuaderno (una etiqueta) 
7. Cortar el plástico del tamaño adecuado para el cuaderno 
8. Pegar con Tape las esquinas del plástico en el cuaderno 
9. Fin. 

3) Resolución del Algoritmo en la Computadora: 

Una vez que el algoritmo está diseñado y representado gráficamente mediante una herramienta de programación (diagrama de flujo, pseudocódigo o diagrama N-S) se debe pasar a la fase de resolución práctica del problema con la computadora. Esta fase se descompone a su vez en las siguientes subfases: Codificación del algoritmo en un programa. Ejecución del programa. Comprobación del programa.  

PSEUDOCÓDIGO

 Es un lenguaje de especificación (descripción) de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil. Los lenguajes APL, Pascal y Ada se utilizan a veces como lenguajes de especificación de algoritmos. El pseudocódigo nació como un lenguaje similar al inglés y era un medio de representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. La ventaja del pseudocódigo es que en su uso, en la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico. Es también fácil modificar el pseudocódigo si se descubren errores o anomalías en la lógica del programa, mientras que en muchas ocasiones suele ser difícil el cambio en la lógica, una vez que está codificado en un lenguaje de programación. Otra ventaja del pseudocódigo es que puede ser traducido fácilmente a lenguajes estructurados como Pascal y C, C++, etc. El pseudocódigo original utiliza para representar las acciones sucesivas palabras reservadas en inglés - similares a sus homónimas en los lenguajes de programación -, tales como: 

  1.    Inicio/Fin (start/end)
  2.     Leer/Escribir (read/write) ·       
  3.   Si – entonces/sino (if-then-else) ·      
  4.    Mientras-hacer (while-do) ·      
  5.    Repetir-hasta (repeat-until) ·       
  6.   ejecutar, imprimir, retornar, asignar, visualizar, calcular
PIPEH PSeudo Intérprete (PSeInt Historia) PSeInt es principalmente 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, razón por la cual el tipo de pseudocódigo que interpreta está basado en el pseudocódigo presentado en la cátedra de Fundamentos de Programación de dicha carrera. Actualmente incluye otras funcionalidades como editor y ayuda integrada, generación de diagramas de flujo o exportación a código C++. El proyecto se distribuye como software libre bajo licencia GPL. Características y Funcionalidades de PSeInt: Presenta herramientas de edición básicas para escribir algoritmos en pseudocódigo en español Permite la edición simultánea de múltiple algoritmos Presenta ayudas para la escritura

  •      Autocompletado ·        
  •      Ayudas Emergentes ·      
  •    Plantillas de Comandos ·      
  •    Coloreado de Sintaxis 
Indentado Inteligente Puede ejecutar los algoritmos escritos Permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando expresiones Puede confeccionar automáticamente la tabla de prueba de escritorio Determina y marca los errores de sintaxis y en tiempo de ejecución Genera diagramas de flujo a partir del algoritmo escrito Convierte el algoritmo de pseudocódigo a código C++ Ofrece un sistema de ayuda integrado acerca del pseudocódigo y el uso del programa (esta última, aún en construcción) Incluye un conjunto de ejemplos de diferentes niveles de dificultad Es multiplataforma (probado en Microsoft Windows y GNU/Linux) Es totalmente libre y gratuito (licencia GPL).


El Pseudo-código

 Las características del este pseudolenguaje fueron propuestas en 2001 por el responsable de la asignatura Fundamentos de Programación (Horacio Loyarte) de la carrera de Ingeniería Informática de la FICH-UNL. Las premisas son: Sintaxis sencilla Manejo de las estructuras básicas de control .








 

PSEUDOCODIGOS

Es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje de programación. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocódigo.
En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal. 

Las principales características de este lenguaje son:
   Se puede ejecutar en un ordenador
   Es una forma de representación sencilla de utilizar y de manipular.
   Facilita el paso del programa al lenguaje de programación.
   Es independiente del lenguaje de programación que se vaya a utilizar.
  Es un método que facilita la programación y solución al algoritmo del programa.

Todo documento en pseudocódigo debe permitir la descripción de:
    Instrucciones primitivas
   Instrucciones de proceso
   Instrucciones de control
   Instrucciones compuestas
   Instrucciones de descripción

Estructura a seguir en su realización:
 Cabecera:
  Programa:
  Modulo:
▪  Tipos de datos:
   Constantes:
    Variables:
 Cuerpo:
  Inicio
  Instrucciones
  Fin

 DIAGRAMAS DE FLUJO

Un diagrama de flujo representa la esquematización gráfica de un algoritmo  el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema . Su correcta construcción es sumamente importante porque , a partir del mismo se escribe un programa en algún lenguaje de programación. Si el diagrama de Flujo está completo y correcto
,el paso del mismo a un Lenguaje de Programación es relativamente simple y directo.
Es importante resaltar que el Diagrama de Flujo muestra el sistema como una red de procesos funcionales conectados entre sí por " Tuberías " y "Depósitos" de datos que permite describir el movimiento de los datos a través del Sistema. Este describirá : Lugares de Origen y Destino de los datos , Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los datos dentro del sistema , Los canales por donde circulan los datos. Además de esto podemos decir que este es una representación reticular de un Sistema ,el cual lo contempla en términos de sus componentes indicando el enlace entre los mismos.

Tipos de diagramas de flujo:
                Formato vertical: En él el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.
                Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.
                Formato panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra.
Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos.

Simbología y significado:
                Óvalo: Inicio y término (Abre y/o cierra el diagrama).
                Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimentos).
                Rombo: Decisión (Formula una pregunta o cuestión).
                Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).
                Triangulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).
Triangulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).

Cursograma
Se trata de la más común y práctica entre todas las clases de flujogramas. Describe el flujo de información en un ente u organización, sus procesos, sistemas administrativos y de control. Permite la impresión visual de los procedimientos y una clara y lógica interpretación.
 Simbología y Normas del Cursograma
                Círculo: Procedimiento estandarizado.
                Cuadrado: Proceso de control.
                Línea Ininterrumpida: Flujo de información vía formulario o documentación en soporte de papel escrito.
                Línea Interrumpida: Flujo de información vía formulario digital.
                Rectángulo: Formulario o documentación. Se grafica con un doble de ancho que su altura.
                Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etcétera).Se grafica con un cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.
                Triángulo (base inferior): Archivo definitivo.
                Triángulo Invertido (base superior): Archivo Transitorio.
                Semi-óvalo: Demora.
                Rombo: División entre opciones.
                Trapezoide: Carga de datos al sistema.
                Elipsoide: Acceso por pantalla.
                Hexágono: Proceso no representado.
                Pentágono: Conector.
                Cruz de Diagonales: Destrucción de Formularios.
Según la normativa, el flujo presupuesto es de izquierda a derecha y de arriba hacia abajo, siendo optativo el uso de flechas. Cuando el sentido es invertido (de derecha a izquierda o de arriba hacia abajo), es obligatorio el uso de la flecha.

DIAGRAMAS DE FLUJO


 REPRESENTACIÓN DE UN DIAGRAMA EN PSEINT


Existen diversas herramientas para realizar diagramas de flujo, dos de las mas conocidas son FreeDFD y PseInt. Esta ultima con la caracteristica de poder trabajar en pseudocodigo  y mantener sincronia con su respectivo diagrama de flujo. A continuacion se explicara la notacion en diagrama de flujo en PseInt, aunque es necesario resaltar que algunos de los simbolos difieren un poco del estandar.






























EJEMPLO EN PSEUDOCÓDIGO

A continuación se presenta un algoritmo en pseudocódigo, junto con su diagrama de flujo y su respectiva explicación. Tanto el pseudocódigo como el diagrama están creados en la herramienta PseInt y corresponden a un aplicación que determina si un numero ingresado es binario para convertirlo a decimal o si es decimal para transformarlo en binario.


Proceso SinTitulo
escribir "ingrese numero"
leer x;
a<-x
d<-0
c<-0
b<-x-(trunc(x/10)*10)
si b=1 | b=0 entonces
mientras x>=1 hacer
si b=1 | b=0 entonces
b<-x-(trunc(x/10)*10)
x<-trunc(x/10)
sino
x<-0
finsi
finmientras
finsi
si b=1 | b=0 entonces
d<-0
c<-0
mientras a>1 hacer
h<-a-(trunc(a/10)*10)
c<-c+(h*2^d)
d<-d+1
a<-trunc(a/10)
finmientras
c<-c+(a*2^d)
escribir c;
sino
d<-0
c<-0
mientras a>=2 hacer
h<-a-(trunc(a/2)*2)
c<-c+(h*10^d)
d<-d+1
a<-trunc(a/2)
finmientras
c<-c+(a*10^d) escribir c;
finsi
FinProceso