Algoritmos y Diagramas de Flujo

Algoritmos | August 9th

Cuando hablamos de programar, no nos referimos a escribir código inmediatamente, tenemos que realizar un análisis (me refiero a pensar) y no necesitaremos la computadora.

Un programa se compone de tres funciones básicas: Diagrama de entrada, proceso y salida

Teoría

La teoría es indispensable para aprender a programar.

Algoritmo
El algoritmo se definine como una serie de pasos o acciones que se realizan para resolver un determinado problema. Podrá ser el paso más importante, si nuestro algoritmo esta mal diseado, nuestro programa no servirá.
Diagrama de flujo
El diagrama de flujo se define como la representación gráfica del algorítmo.
Prueba de escritorio
La prueba de escritorio es la ejecución manual del algoritmo y sirve para determinar el correcto funcionamiento de tal.
Variables
Las variables de definen como estructuras de datos que por lo menos cambian una vez en toda la ejecución del programa. Pueden cambiar en la Entrada, en el Proceso y en la Salida.

La práctica

Hagamos un pequeño programa (algo burdo) y trabajemos con variables y algoritmos.

Necesitamos hacer un programa que multiplique dos números enteros.

3 \times 5=5+5+5=15

Variables

  1. multiplicando: entero (nos indica el número que vamos a sumar)
  2. multiplicador: entero (nos indica el número de veces que lo vamos a sumar)
  3. resultado: entero (en esta variable asignaremos el resultado)
  4. indice: entero (nos indicara el número de veces que el número se ha multiplicado)

Algoritmo

  1. Asignamos el número 5 a multiplicando
  2. Asignamos el número 3 a multiplicador
  3. Asignamos el número 0 a resultado
  4. Asignamos el número 0 a indice
  5. Sumamos multiplicando y resultado
  6. Asignamos a resultado la suma
  7. Incrementamos 1 a indice
  8. Mientras indice sea menor a multiplicador regresamos al paso 5 de lo contrario continua
  9. Muestra el resultado
  10. Finalizar

Tenemos que inicializar cada variable de nuestro algoritmo, como se muestra en los primeros cuatro pasos.

El siguiente paso es…

Prueba de escritorio

La prueba de escritorio es la ejecución manual de nuestro algorítmo

Ponemos a prueba nuestro algoritmo y nos mostrara si tenemos errores (por lo que tendremos que modificar el algoritmo) o si esta bien diseñado. Básicamente es el registro de las variables.

Siguiendo paso a paso nuestro algoritmo, obtendremos la siguiente tabla.

multiplicado 5
multiplicador 3
resultado 0 510
15
indice 01
2
3

Vemos que el ultimo registro de la variable resultado, es 15, por lo que nuestro algoritmo esta funcionando correctamente. Podemos probar con otros números.

Diagramas de flujo

Una vez que hemos probado muestro algoritmo con la prueba de escritorio y el resultado es el correcto, podemos seguir a diseñar el diagrama de flujo.

El diagrama de flujo se define como la representación gráfica del algorítmo

  • Cada paso de nuestro algoritmo en un procedimiento y se representan con un rectángulo. (Podemos agrupar varios procedimientos en un solo rectángulo, pero no es lo indicado)
  • Cada condición como el paso número 8 se representa con un rombo.

Este será el diagrama de flujo de nuestro algoritmo:

Diagrama de Flujo

Pseudocódigo y Código

El pseudocódigo es el siguiente paso de nuestro programa, y es la representación del diagrama de flujo escrita con nuestras propias palabras; por lo que no existe alguna norma.

Este es mi pseudocódigo y puede ser distinto al tuyo.

Inicio
	multiplicando = 5
	multiplicador = 3
	resultado = 0
	indice = 0
	DO
		resultado = resultado + multiplicando
		indice = indice + 1
	WHILE indice < multiplicador
	PRINT resultado
Finalizar

Un programa lo podemos dividir en bloques, por ejemplo; de la línea 6 a la 9 es un bloque, y para identificar cada bloque en el código lo podemos escribir después de unos espacios y así identificar ciertos procesos. Esto nos sirve para en códigos muy grandes.

Y finalmente nos pasamos a la computadora y escribimos el código (en esta caso será Java)

Escribimos el archivo: Multiplicacion.java

public class Multiplicacion
{
    public static void main(String[] args)
    {
        // Declaramos las variables
        int multiplicando;
        int multiplicador;
        int resultado;
        int indice;

        // Iniciamos las variables
        multiplicando = 5;
        multiplicador = 3;
        resultado = 0;
        indice = 0;

        // Ejecutamos nuestro algoritmo
        do
        {
            resultado += multiplicando;
            indice++;
        }while(indice < multiplicador);

        System.out.println(resultado);
    }
}

Para ejecutar nuestro programa, hagamos lo siguiente en la Consola y/o Shell

javac Multiplicacion.java
java Multiplicacion

Mucho rollo para este programita, no ?

Espero me hayan entendido, si tienes cualquier duda escribeme...

Comentarios

  1. nicolas says:

    Muy muy bien hombre, saludos!

  2. admin says:

    Que tal Nicolas, me da gusto que te haya agradado mi articulo. Espero integrar más sobre algoritmos…

  3. ENRIQUE says:

    EXCELENTE Y MUY DIDACTICO,,,FELICITACIONES
    DE ARGENTINA-SALTA

  4. Carlos Núñez C says:

    ¡Excelente! Me ayudò en aclarar algunas dudas que tenia sobre la elaboraciòn de los D.F.

  5. monica says:

    no es lo que llo buscaba pero me paresio bien

  6. Gerardo says:

    es un buen comienzo, aclara dudas a iniciantes

  7. EVELIN says:

    graciaas por que me pudistes dar muchas ideas
    de algoritmo en diagramas y sige a delante y mucha suerte alberto

  8. SIDNEY says:

    como se construye el codigo en java para que muestre un rombo con diferentes niveles

    • admin says:

      Vamos, es bastante sencillo, realiza tu algoritmo y pásalo a código java. El programar requiere de pensar y razonar.

  9. paola says:

    no era lo que buscaba como siempre no hacen las cosas como son

    • alberto says:

      También puedes enviar correcciones en caso de que haya algo erróneo y ayudar a más lectores. Gracias por tus comentarios.

  10. andrea says:

    muy chevere asi se puede aprender mas

  11. angie says:

    ESTA MUY CHEVERE ASI PODEMOS APRENDER MAS POR FA ENVIAME MAS A MI CORREO PARA SABER MAS DE ALGORITMOS Y DIAGRAMA CON PRUEBA

  12. dani says:

    es muy largo para mi gusto… pero esta wueno..jeje

  13. serdio says:

    no me gusto nada

  14. samuel says:

    xfavor ayudenme aresolver et ejercicio: ” dado un numero determinar la suma de sus dijitos”

  15. samuel says:

    xfa ayudame a resolver este ejercicio tambien “escribir un algoritmo que permita emitir la factura correspondiente a una compra de un articulo determinado, del que se nadquieren una o varias unidades. EL IVA del 15% y si el precio bruto (precio venta mas IVA) es mayor de 50,00bsf se debe realizar un descuento de 5%

  16. paulet says:

    me podrian ayudar con algoritmos narrativos

  17. seleccion multiple says:

    Buenas tardes necesito informacion sobre seleccion multiple
    muchas gracias

  18. zul says:

    no entendi el pseudocodigo me gustaria que lo colocaran en c# please.

    • alberto says:

      Que tal zul… El pseudocódigo no tiene nada que ver con el lenguaje de programación como C#, Java, C++, etc. El pseudocógigo es escrito con nuestras propias palabras en forma de lenguaje de programación, una ves escrito se traduce a un lenguaje de programación formal como en este ejemplo que utilizo Java. Si deseas ejecutar el ejemplo en C# copia de la línea 06-22 y pegalo dentro del método Main() y para mostrar el resultado sustituye la línea 24 por: System.Console.WriteLine(resultado);

  19. valeria says:

    hagan un algoritmo rectangulo xD y es que me da pereza pensar hahahaha

    lo necesito xD el rectangulo algoritmo ok no estabien este articulo me hizo a clarar algunas dudotazZ k no zabia ni merga! xD

  20. ladiva says:

    Buenas Tarde A todos Me podrian Ayudar con este ejercicio es para entregar el viernes el ejercicio dice haci

    desarrolle un algoritmo y flujograma que permita determinar el area y volumen de un cilindro dado su radio (R) y altura (H) la Ecuacion es

    Volcil=3.14 *R*R*H

  21. Paulina says:

    muchas gracias por la información, Paulina

  22. Arisbeth says:

    Muy buena informacion, pero me gustaria que agregaras diagramas de flujo.

    gracias

  23. Arisbeth says:

    con ejemplos mas entendidos

  24. alberto says:

    Gracias a cada uno de ustedes por sus comentarios.