jueves, 9 de julio de 2009

Diagramas de flujo

Introducción:

Los diagramas de flujo son una manera de representar visualmente el flujo de datos través de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y en que secuencia se requieren para solucionar un problema dado.

Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la comprensión de problemas compilados y sobre todo muy largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribir el problema en cualquier idioma de alto nivel. Vemos a menudo cómo los diagramas de fuljo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto, está correcto decir que un diagrama de flujo es una necesidad para la documentación mejor de un programa complejo.

Reglas para dibujar u diagrama de flujo.

Los diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo, algunos símbolos especiales pueden ser desarrollados cuando sean requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar programas de computadora se muestran a continuación:

Observación: Para obtener la correcta elaboración de los símbolos, existen plantillas.

Las puedes conseguir en Papelerías.

Símbolos gráficos:

Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los símbolos gráficos son utilizados específicamente para operaciones aritméticas y relaciones condicionales. La siguiente es una lista de los símbolos mas comúnmente utilizados:

Reglas para la creación de Diagramas

1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.

2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se debe de utilizar líneas de flujo horizontal o verticales nunca diagonales.

3. Se debe de evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama desde un sitio distinto, se pudiera realizar utilizando los conectores se debe tener en cuenta que solo se van de utilizar conectores solo cuando sea estrictamente necesario.

4. No deben de quedar líneas de flujo sin conectar.

5. Todo escrito dentro de un símbolo debe de ser legible, preciso, evitando el uso de muchas palabras., a excepción del símbolo final.

6. Todos los símbolos pueden tener mas de una línea de entrada.

7. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.


EJEMPLOS DE DIAGRAMAS DE FLUJO

1_ Realizar un algoritmo que lea N número de estudiantes, cada uno con 5 notas y que determine su promedio.

1.Inicio
2.Leer N
3.Mientras cont < p =" 0," cont =" 0," n1 =" 0," n2 =" 0," n3 =" 0," n4 =" 0," n5 =" 0" p =" (n1" cont =" cont">

9.Fin




2_ Hacer un algoritmo para que lea la matrícula de un alumno y 3 calificaciones para este, que calcule el promedio y que imprima la información leída y calculada, así como un mensaje 
de Aprobado o reprobado así sea el caso.

1.Inicio
2.Leer (m)
3.c1 = 0, c2 = 0, c3 = 0, P = 0
4.P = (c1 + c2 + c3) / 3
5.P > 70
6.Imprimir c1, c2, c3, P, m, “Aprobado”
7.Sino
8.Imprimir c1, c2, c3, P, m, “Reprobado”
9.Fin si
10.Fin



3_ Diseñar un algoritmo que calcule el salario neto de varios empleados que han trabajado 20 horas por semana con un costo por hora de 3000 colones. Las deducciones son de un 12.5% sobre el salario bruto. Imprimir Salario Bruto, Salario Neto y el monto de las deducciones. 

1.Inicio
2.sn = 0, sb = 0, d = 12.5%, D = 0, cont = N
3.sb = [ (20 * 3000) * 4]
4.D = ( sb * d) / 100
5.sn = sb – D
6.cont = cont + 1 
7.Si cont <>

Algoritmo

Es una lista bien definida, ordenada y finita de operaciones que permita hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución.

El objetivo de un algoritmo es transformar las entradas en salidas deseadas.

Características:

Es preciso: Indicar claramente el orden de ejecución de las acciones.

Definido: Lo puedo ejecutar varias veces y obtengo el mismo resultado.

Finito: Tiene que terminar en algún momento.

El algoritmo se divide en tres partes principales:

Entrada (Datos para ejecutar el proceso)

Proceso

Salida (Presenta resultado)

Pasos para diseñar el algoritmo

- Conocer el problema.

- Determinar los datos de entrada.

- Determinar la información necesaria que el algoritmo produzca.

- Determinar cuales procesos debe realizar con los datos de entrada para los datos de salida

correspondientes.


Medios de expresion de un algoritmo

Lenguaje natural: El que hablamos.

Pseudocódigo: Es la descripción de un algoritmo que se asemeja a un lenguaje se programación pero con

algunas convenciones de lenguaje natural. No esta regido por ningún estándar.

Diagramas de flujo: Son descripciones graficas de algoritmos; usan símbolos conectados con flechas para

indicar la secuencia de instrucciones y están regidos por la ISO (Organización Internacional para la

Normalización).

Lenguajes de programación: Nos permite crear programas y software.

Ejemplo de Codigo PHP

Class Caja {

Var $alto;

Var $ancho;

Var $largo;

Var $contenido;

Var $color;

Fuction introduce($cose) {

$this – contenido = $cosa

}

Function muestra_contenido() {

Echo $this – contenido;

}

}

Pogramación

Alfabeto: Conjunto de caracteres definidos para formar hileras.

Sintaxis: Conjunto de reglas q determinan si una hilera es valida.

Semántica: Conjunto de reglas que determinan si una hilera tiene sentido.

Lenguaje: Grupo de ideas que cumplen con las reglas gramaticales establecidas.


Tipos de Lenguajes:


Nivel bajo: Es el lenguaje de maquina, lenguaje propio del ordenador basado en el sistema binario.

Nivel medio: El nivel medio es el ensamblador, en este lenguaje cada instrucción equivale a una instrucción en lenguaje maquina. Ejemplo de instrucción en lenguaje maquina: 10110000 01100001

Nivel alto: Los comandos se introducen desde el teclado, desde un programa residente en la memoria o desde un dispositivo de almacenamiento, y son interceptados por un programa que los traduce a instrucciones de lenguaje maquina.

Traductor: Es un programa que toma como entrada un programa fuente y lo convierte a un programa en código maquina.

Hay dos tipos de traductores:

El intérprete toma el programa fuente línea por línea y lo va ejecutando y si alguna línea tiene un error lo devuelve.

El compilador genera aplicaciones que sean directamente utilizables en una computadora. El compilador lee en código fuente comprueba su sintaxis y lo traduce a código maquina generando el archivo ejecutable final.

¿Qué es programación?
Es escribir nuestras ideas sobre un lenguaje de programación, para que estas puedan ser entendidas por las computadoras, y así trabajar bajo las órdenes generadas en las mismas con el fin de resolver problemas.
Lenguajes de programacion

Son herramientas que nos permiten crear programas software. Ejemplos: Delphi, Visual Basic
Java, Lisp, Prolog.

La computadora funciona bajo el control de un programa el cual debe de estar almacenado en la unidad de memoria

Diferentes tipos de procesos de un programa

Secuencial: Son los que se van a realizar en secuencia, una acción sigue a la otra, un paso va atrás de otro.

Paralelo: Se ejecutan simultáneamente.

Algoritmo:

Ejemplo de código imperativo

Procedimiento factorial (entero n)^
Entero resultado = 1; /*n inicialmente el valor será 1*/
Mientras (n > 0)
Resultado = resultado + n
n = n-1
devuelve resultado,