9.- Programación en pseudocódigo y estructurado

 Programación en pseudocódigo y estructurado


La programación estructurada es un paradigma; ya que está orientada a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.

Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini, y una famosa carta, La sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968 y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control.


Programación en Pseudocódigo


    El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los programadores para omitir secciones de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es programable sino facilita la programación.

    El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo.

    El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés (similares a sus homónimos en los lenguajes de programación), tales como star,begin, end, stop, if-then-else, while, repeat-until….etc.

    Es un lenguaje de especificació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.

    El pseudocódigo nació como un lenguaje similar al inglés y era un medio 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. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.



    • Creación de Algoritmo
    En la elaboración o creación de un programa; después del análisis del problema, se establecen las especificaciones del programa, es decir, qué debe hacer y cómo lo debe hacer. Si un algoritmo es correcto, es más fácil realizar la programación y se reduce la posibilidad de cometer errores.
    El desarrollo de un algoritmo se realiza en tres fases:












    Los algoritmos pueden ser expresados de muchas maneras, destacando el lenguaje natural, los diagramas de flujo y el pseudocódigo. En la práctica, se utilizan los dos últimos ya que el lenguaje natural es más extenso

    Diagramas de flujo.- permiten crear algoritmos mediante símbolos gráficos que representan operaciones específicas y que indican la secuencia de las operaciones mediante flechas. Están regidos por normas ISO.












    Pseudocódigo.- utilizan una sintaxis formada por frases o palabras en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas.








    Los diagramas de flujo tienen los siguientes componentes y funciones:




    • Diseño de algoritmos


    En ciencias de la computación, el diseño de algoritmos es un método específico para poder crear un modelo matemático ajustado a un problema específico para resolverlo. El diseño de algoritmos o algorítmica es un área central de las ciencias de la computación, también muy importante para la investigación de operaciones (también conocida como investigación operativa), en ingeniería del software y en otras disciplinas afines.



    • Simbología y diagrama de flujo



    9.2.-Programación Estructurada


    • Identificación de la estructura básica
    • Lo primero que debemos considerar dentro de la organización básica de HTML es el uso de los corchetes angulares < y >. En HTML estos corchetes contienen en su interior código especial llamado ETIQUETA que indican la estructura y el formato del CONTENIDO de la página. HTML está formado por muchas etiquetas que pueden realizar infinidad de tareas para dar formato a nuestras páginas Web. Tres son las etiquetas (tags) que describen la estructura general de un documento y dan una información sencilla sobre él. Estas etiquetas no afectan a la apariencia del documento y solo interpretan y filtran los archivos HTML.

      • <HTML>: Limitan el documento (inicio y fin) e indica que se encuentra escrito en este lenguaje.
      • <HEAD>: Específica el prólogo del resto del archivo esto es, el encabezado. Son pocas las etiquetas que van dentro de ella, destacando la del título <TITLE> que será utilizado por los marcadores del navegador e identificará el contenido de la página. Solo puede haber un título por documento, preferiblemente corto aunque significativo, y no caben otras etiquetas dentro de él. En <HEAD> no hay que colocar nada del texto del documento.
      • <BODY>: Encierra el resto del documento, el contenido es el que se muestra en un explorador Web. 
    • Programación 
    • Programación es la acción de programar que implica ordenar, estructurar o componer una serie de acciones cronológicas para cumplir un objetivo. La programación puede ser aplicado para eventos sociales, a medios de comunicación y al mundo informático de las computadoras.
      En informática, la programación es el uso de lenguajes informáticos para imprimir en un sistema computacional funciones y procesos deseados. La programación de una computadora es la forma de indicar a la computadora qué es lo que tiene que hacer.
      Un lenguaje de programación es, en la ciencia de la computación, la herramienta para automatizar informaciones y acciones a través de una computadora. Los lenguajes de programación más conocidos son: Basic (1964), C++ (1983), Phyton (1991), Java (1995), C# (2000), entre otros.
      La programación es una de las etapas para el desarrollo de un programa o software. La programación especifica la estructura y el comportamiento de un programa verificando si está funcionando adecuadamente o no.
      La programación incluye la especificación del algoritmo definida como la secuencia de pasos y operaciones que el programa debe realizar para resolver un problema. Para que el algoritmo funcione, el programa debe estar implementado en un lenguaje compatible y correcto.
    • Lenguajes de programación
    • Lenguaje de programación. es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.
      Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
      También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
      • El desarrollo lógico del programa para resolver un problema en particular.
      • Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa)
      • Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
      • Prueba y depuración del programa.
      •   Desarrollo de la documentación.
      Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos)
      Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

    • Compiladores e interpretes
    • Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador e intérprete.
      Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel:
      • Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua.
      • Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
        • Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
        • Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
        • Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.

      • Creación de estructuras secuenciales
      • Una estructura de programa es secuencial si se ejecutan una tras otra a modo de secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.
        Ejemplo:
           INPUT x
           INPUT y
           auxiliar= x
           x= y
           y= auxiliar
           PRINT x
           PRINT y
        
        Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia.
        • 1º Se guarda una copia del valor de x en auxiliar.
        • 2º Se guarda el valor de y en x, perdiendo su valor anterior, pero se mantiene una copia del contenido en auxiliar.
        • 3º Se copia a y el valor de auxiliar, que es el valor inicial de x.
        • El resultado es el intercambio de los valores entre x e y, en tres operaciones secuenciales.
        • Estructuras selectivas if-else y anidades múltiples

      • Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas y son utilizadas en todos los lenguajes de programación, en este caso veremos estructuras selectivas para el lenguaje de programación Ruby,  creado por el programador japonés Yukihiro “Matz” Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995.En el círculo de amigos de Matsumoto se le puso el nombre de “Ruby” (en español rubí) como broma aludiendo al lenguaje de programación “Perl” (perla)
        En las estructuras selectivas se evalúan una condición y en función del resultado de la misma se realiza una opción u otra. Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else o bien en español si, entonces, si_no), las estructuras selectivas pueden ser:

        Simples

        Las estructuras selectivas simples o condicionales están compuesta únicamente de una sola condición si es verdadera ejecutara la acción o acciones si la condición es falsa no hará nada.
        if (condición) entre paréntesis esta la condición que se debe evaluar
        acción (si la condición entre paréntesis es verdadera se ejecutara la acción o acciones, porque, puede estar conformado por varias acciones)
        end
        Antes de mostrar el ejemplo vamos a explicar algunos comandos que vamos a utilizar:
        # => este comando nos permite poner un comentario, puede ser a principio de linea o en cualquier posición de ella.
        puts => este comando nos permite imprimir cualquier texto en pantalla, puede ser el resultado de una operación o un texto escrito entre comillas.
        Ejemplo:
        edad = 19 # asignamos un valor a la variable edad
        if (edad > 17)
        puts “Es mayor de edad”
        end
        Si ejecutamos el programa que hemos desarrollado el resultado seria: Es mayor de edad, porque, la condición que esta entre paréntesis es verdadera, porque, edad que tiene asignado 19 es mayor a 17, en cambio, si el valor asignado a la variable edad fuera menor a 18, no mostraría ningún resultado.

        Dobles

        Las estructuras selectivas dobles están compuesta únicamente de una sola condición, si es verdadera ejecutara la acción o acciones y si la condición es falsa ejecutara las acciones para la condición falsa. Esta estructura selectiva solo se debe utilizar únicamente cuando existen dos condiciones, si hubieran mas de dos condiciones se puede utilizar varias selectivas simples o una selectiva múltiple.
        if (condición)
        acción (si la condición entre paréntesis es verdadera se ejecutara la acción o acciones, porque, puede estar conformado por varias lineas)
        else
        acción (si la condición entre paréntesis es falsa se ejecutara la acción o acciones, porque, puede estar conformado por varias lineas)
        end
        Ejemplo:
        Siguiendo con el ejemplo anterior asignaremos el mismo valor a la variable edad
        edad = 19 # asignamos un valor a la variable edad
        if (edad > 17)
        puts “Es mayor de edad”
        else
        puts “Es menor de edad”
        end
        Si ejecutamos el programa que hemos desarrollado el resultado seria: Es mayor de edad, porque, la condición que esta entre paréntesis es verdadera, porque, edad que tiene asignado 19 es mayor a 17, en cambio, si el valor asignado a la variable edad fuera menor a 18,  el resultado seria Es menor de edad, porque, la condición es falsa.

        Múltiples

        Las estructuras selectivas múltiples o anidadas están compuesta múltiples selectivas simples que están unidas por el comando elsif el resultado que se obtiene con una selectiva multiple se puede obtener con varias selectivas simples, entonces, ¿cual es la diferencia? el codigo es mas pequeño, aunque, yo siempre he recomendado a mis alumnos que cuando recien se esta aprendiendo a programar es recomendable que al principio se trabaje con selectivas simples, a medida que se va aprendiendo y ganando destreza se puede comenzar a utilizar las selectivas multiples en los casos que ellos crean conveniente y necesarios.
        if (condición)
        acción (si la condición entre paréntesis es verdadera se ejecutara la acción o acciones, porque, puede estar conformado por varias lineas)
        elsif (condición)
        acción (si la condición entre paréntesis es verdadera se ejecutara la acción o acciones, porque, puede estar conformado por varias lineas)
        elsif (condición)
        acción (si la condición entre paréntesis es verdadera se ejecutara la acción o acciones, porque, puede estar conformado por varias lineas)
        end
        Ejemplo:
        Siguiendo con el ejemplo anterior asignaremos el mismo valor a la variable edad
        edad = 19 # asignamos un valor a la variable edad
        if (edad > 17)
        puts “Es mayor de edad”
        elsif (edad < 18)
        puts “Es menor de edad”
        end
        Si ejecutamos el programa que hemos desarrollado el resultado seria: Es mayor de edad, porque, la condición que esta entre paréntesis de la primera condición es verdadera, porque, en las selectivas múltiples cada condición debe ser única, porque, cuando ingresa en una de ellas ahí termina el programa, si el valor asignado a la variable edad fuera menor a 18,  el resultado seria Es menor de edad, porque, hubiera ingresado en la segunda condición y no en la primera.

        • Estructuras de iterativas do-while
        • La estructura de control do/while es otra sentencia de iteración en la que la condición se evalúa por primera vez una vez que se haya ejecutado el [Bloque de Instrucciones] y tienen la siguiente sintaxis:
          Su semántica es la misma que la de la instrucción while y su representación en un diagrama de actividad es la siguiente:
          En esta estructura repetitiva el bloque de instrucciones siempre se ejecuta al menos una vez pues la condición se evalúa al final. Una vez realizada la evaluación si el resultado es true, se vuelve a ejecutar el [Bloque de Instrucciones], en caso contrario se ejecutan las instrucciones que sigan a continuación saliendo del ciclo. La funcionalidad de este método será la misma que en el ejemplo con while. La única diferencia es la forma en que se controla el bucle. En la práctica, verá que la instrucción while se utiliza más a menudo que la instrucción do – while. El elegir una instrucción en lugar de la otra es una elección personal. Un aspecto muy importante a tener presente en los ciclos condicionales es la necesidad de contemplar dentro del bloque de instrucciones al menos una, que de alguna manera, altere –en algún momento- el resultado de la expresión booleana. La explicación sencillamente está dada por el hecho que de no existir esta instrucción una vez entrada al ciclo este nunca terminaría por lo que se caería en un ciclo infinito.

    Comentarios

    Entradas populares