SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos




                             Introducci´n a los Computadores
                                       o
                                Algoritmos computacionales


                                                CNM-130

                                 Departamento de Matem´ticas
                                                         a
                            Facultad de Ciencias Exactas y Naturales
                                    Universidad de Antioquia

                            Copyleft  « 2009. Reproducci´n permitida bajo los
                                                         o
                           t´rminos de la licencia de documentaci´n libre GNU.
                            e                                    o
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Contenido



      1   Introducci´n
                    o


      2   Diagramas de flujo


      3   Construcci´n de diagramas de flujo
                    o


      4   Pseudoc´digo
                 o


      5   GNU Octave


      6   Ejemplos
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Etapas en la resoluci´n de un problema
                     o

            Definici´n del problema: el enunciado completo del problema,
                     o
            ¿qu´ es lo que se pretende obtener?
               e

            An´lisis del problema:
              a
                  un conjunto de datos de entrada (la informaci´n dada)
                                                               o
                  un conjunto de datos de salida (lo que se desea obtener)
                  Relaciones que vinculen los datos de entrada y salida


            Dise˜ o de la soluci´n: se debe proponer o aplicar un modelo para
                 n                 o
            lograr sistematizar la b´squeda de la soluci´n.
                                     u                  o

            Codificaci´n: en esta etapa se describen los pasos que se deben
                       o
            ejecutar para resolver el problema (algoritmo).

            Prueba: se verifica el funcionamiento de la soluci´n propuesta y se
                                                              o
            detectan los errores que se presenten con la posterior correcci´n de los
                                                                           o
            mismos (depuraci´n).
                              o
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave    Ejemplos


Algoritmos

      Definici´n 1.1 (Algoritmo)
             o
      Un algoritmo es una secuencia finita de instrucciones, reglas o pasos que
      describen de modo preciso las operaciones que un computador debe realizar
      para ejecutar una tarea determinada en un tiempo finito.


            Cinco propiedades ampliamente aceptadas como requisitos para un
            algoritmo (Knuth):

                  Finitud: Un algoritmo siempre debe terminar despu´s de un n´ mero
                                                                   e         u
                  finito de pasos.
                  Precisi´n: cada paso de un algoritmo debe estar precisamente definido
                          o
                  y sin ambiguedades.
                  Entrada: un algoritmo tiene cero o m´s entradas que le son dadas antes
                                                       a
                  de que el algoritmo comience, o din´micamente mientras corre.
                                                     a
                  Salida: un algoritmo tiene una o m´s salidas.
                                                    a
                  Eficacia: las operaciones a realizar en un algoritmo deben ser
                  suficientemente b´sicas como para que en principio puedan ser
                                   a
                  realizadas de manera exacta y en un tiempo finito por un hombre
                  usando papel y l´piz.
                                  a
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave             Ejemplos


Ejemplo
            Algoritmo para preparar “fr´ıjoles con chicharr´n” para 8 raciones. Los
                                                           o
            datos de entrada (ingredientes) son:
                  2 libras de fr´
                                ıjoles.                         2 zanahorias peladas.

                  1 cucharada de aceite vegetal o               2 cubos de caldo de carne.
                  de girasol.                                   1 cucharada de sal.
                  1/4 de libra de tocino cortado                16 tazas de agua.
                  en trocitos.


              Algoritmo

                 1   Se lavan bien los fr´joles y se dejan remojando en el agua
                                         ı
                     desde la noche anterior.
                 2   Al d´a siguiente, se ponen en la olla a presi´n con el agua en
                         ı                                        o
                     que se remojaron, el aceite, el tocino y la zanahoria.
                 3   Se cocinan sin sal hasta que est´n blandos, aproximadamente por
                                                     e
                     1 hora.
                 4   Se lic´a una peque~a cantidad de los fr´joles con la zanahoria,
                           u           n                    ı
                     los cubos de caldo y la sal, y se agrega a los fr´joles.
                                                                      ı
                 5   Se cocinan media hora m´s con la olla destapada hasta que
                                            a
                     espesen.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave     Ejemplos


Otros ejemplos


            Muchos algoritmos no requieren de un computador para su ejecuci´n:
                                                                           o

                  Cambiar la llanta de un carro

                  Ir al banco a pagar una cuenta

                  Ir a un restaurante a comer

                  Determinar la cantidad de dinero que nos deben devolver al pagar el bus

                  Comprar una libra de azucar


            En la pr´ctica, un algoritmo es s´lo una parte de las etapas requeridas
                    a                        o
            para resolver un problema:

                  Dise˜o del algoritmo.
                      n

                  Implementaci´n del algoritmo en un lenguaje de programaci´n adecuado
                               o                                           o
                  (codificaci´n).
                            o

                  Ejecuci´n y validaci´n del programa por el computador.
                         o            o
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave     Ejemplos


Dise˜o de algoritmos
    n

            Herramientas utilizadas para dise˜ar algoritmos
                                             n

                  Diagramas de flujo: representaci´n esquem´tica de un algoritmo que
                                                    o         a
                  muestra gr´ficamente los pasos a seguir para alcanzar la soluci´n de un
                            a                                                   o
                  problema.

                  Pseudoc´digos: forma gen´rica de escribir un algoritmo, por medio de
                           o                  e
                  un lenguaje simple sin necesidad de conocer la sint´xis de un lenguaje
                                                                     a
                  de programaci´n.
                                o


            El diagrama de flujo se compone de figuras que ilustran los pasos o
            procesos a seguir para alcanzar la soluci´n del problema.
                                                     o

            Los s´
                 ımbolos presentados permiten crear una estructura gr´fica flexible
                                                                     a
            que ilustra los pasos a seguir.

            Un diagrama de flujo permite con facilidad la posterior escritura de un
            programa en alg´n lenguaje de programaci´n.
                           u                         o
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave     Ejemplos


Diagramas de flujo

                               S´
                                ımbolo utilizado para marcar el inicio y el fin del
                               diagrama de flujo.

                               S´
                                ımbolo utilizado para ingresar los datos de entrada
                               (expresa lectura).

                               S´ımbolo utilizado para representar un proceso. En su
                               interior se expresan asignaciones, operaciones
                               aritm´ticas, cambios de valor de celdas en memoria, etc.
                                     e

                               S´
                                ımbolos utilizados para indicar la direcci´n del flujo
                                                                          o
                               del diagrama.

                               S´
                                ımbolo utilizado para representar la estructura
                               selectiva si entonces; en su interior se almacena una
                               condici´n que determina el flujo del diagrama.
                                       o

                               S´
                                ımbolo utilizado para representar la estructura
                               selectiva si entonces/sino; en su interior se almacena
                               una condici´n que determina el flujo del diagrama.
                                           o
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave    Ejemplos


Diagramas de flujo

                               S´
                                ımbolo utilizado para representar una decisi´n
                                                                            o
                               m´ltiple. En su inetrior se almacena un selector y
                                 u
                               dependiendo de su valor, se sigue por una de las ramas.

                               S´
                                ımbolo utilizado para representar la impresi´n de un
                                                                            o
                               resultado (expresa escritura).


                               S´
                                ımbolo utilizado para expresar conexi´n dentro de
                                                                     o
                               una misma p´gina.
                                            a


                               S´
                                ımbolo utilizado para expresar conexi´n entre
                                                                     o
                               p´ginas diferentes.
                                a


                               S´
                                ımbolo utilizado para expresar un m´dulo de un
                                                                    o
                               problema: para continuar con el flujo normal del
                               diagrama es necesario primero resolver el subproblema
                               enunciado en su interior.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Diagramas de flujo


            Esquema general de un diagrama de flujo
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave    Ejemplos


Reglas para la construcci´n de diagramas de flujo
                         o


            Todo diagrama de flujo debe tener un inicio y un fin.




            Las lineas utilizadas para indicar la direcci´n del flujo del diagrama
                                                         o
            deben ser rectas verticales y horizontales y no se deben cruzar.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Reglas para la construcci´n de diagramas de flujo
                         o
            Todas las lineas utilizadas para indicar la direcci´n del flujo del
                                                               o
            diagrama deben estar conectadas.

            El diagrama de flujo debe ser constuido de arriba hacia abajo
            (top-down) y de izquierda a derecha (left-right).

            La notaci´n empleada en el diagrama de flujo debe ser independiente
                     o
            del lenguaje de programaci´n.
                                      o

            Si el diagrama de flujo requiere m´s de una hoja para su construcci´n,
                                              a                               o
            se debe utilizar conectores adecuados y enumerar las p´ginas
                                                                  a
            convenientemente.

            A un s´ımbolo del diagrama (excepto l´
                                                 ıneas) no puede llegar m´s de una
                                                                         a
            l´
             ınea.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave            Ejemplos


Construcci´n de diagramas de flujo
          o

      Ejemplo 3.1

      Construya un diagrama de flujo tal que dado los datos A, B, C y D que
      representan n´meros enteros, escriba los mismos en orden inverso.
                   u

      Soluci´n
            o




                  Diagrama de flujo general                      Diagrama de flujo en DFD
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Construcci´n de diagramas de flujo
          o
      Ejemplo 3.2

      Escriba (en papel) un diagrama de flujo que tenga como entradas los datos
      enteros A y B y escriba el resultado de la siguiente expresi´n:
                                                                  o

                                                 (A + B)2
                                                     3
      Implemente el diagrama tambi´n en DFD.
                                  e

      Soluci´n
            o
      Consideraciones:
            Datos: A y B (variables de tipo entero).

            Para indicar un proceso utilizamos




            Para asignar un valor o una expresi´n a una variable utilizamos
                                               o
                                      variable ← expresi´n o valor
                                                        o
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                    Pseudoc´digo
                                                                o       GNU Octave            Ejemplos


Construcci´n de diagramas de flujo
          o




                                                       Explicaci´n de las variables:
                                                                o

                                                           A, B: variables de tipo entero.

                                                           RES: variable de tipo real, almacena
                                                           el resultado de la operaci´n.
                                                                                     o

                                                                    #    A     B     RES
                                                                    1     5     6    40, 33
                                                                    2     7    10    96,33
                                                                    3     0     3     3,00
                                                                    4    12     2    65,33
                                                                    5    14    -5    27,00
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Construcci´n de diagramas de flujo
          o

      Ejemplo 3.3

      Un estudiante obtiene 5 calificaciones a lo largo del semestre. Escriba (en
      papel) un diagrama de flujo que imprima el promedio de sus calificaciones.
      Implem´ntelo tambi´n en DFD.
              e          e


      Soluci´n
            o

      Consideraciones:

            Datos:
                                   CAL1, CAL2, CAL3, CAL4, CAL5
            variables de tipo real que representan las 5 calificaciones del alumno.

            El promedio de las calificaciones est´ dado por
                                                a

                               CAL1+ CAL2+ CAL3+ CAL4 + CAL5
                                             5
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave             Ejemplos


Construcci´n de diagramas de flujo
          o

            Las observaciones anteriores nos conducen al siguiente diagrama de
            flujo.

                                                              CAL1, CAL2, CAL3, CAL4, CAL5:
                                                              Variables de tipo entero.

                                                              PRO: Variable de tipo real, almacena el
                                                              resultado de la operaci´n.
                                                                                     o




                       #     CAL1       CAL2           CAL3     CAL4      CAL5      PRO
                       1       8         8,5             9       7          6        7,7
                       2       9          8              9       7          9        8,4
                       3       9         10             10       8          9        9,2
                       4      8,5         9             7,5      6         6,5       7,5
                       5      7,3        6,8            9,5      8         8,5      8,02
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave              Ejemplos


Construcci´n de diagramas de flujo
          o

      Ejemplo 3.4

      Escriba (en papel) un diagrama de flujo que permita calcular e imprimir el
      cuadrado y el cubo de un entero positivo NUM e implem´ntelo en DFD.
                                                             e

      Soluci´n
            o

                                                            NUM: variable de tipo entero.

                                                            CUA: variable de tipo real, almacena
                                                            el cuadrado del n´mero que se
                                                                             u
                                                            ingresa.

                                                            CUB: variable de tipo real, almacena
                                                            el cubo del n´mero que se ingresa.
                                                                         u

                                                                #     NUM      CUA    CUB
                                                                1       7        49     343
                                                                2      15       225    3375
                                                                3       8        64     512
                                                                4      12       144    1728
                                                                5      30       900   27000
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave       Ejemplos


Construcci´n de diagramas de flujo
          o
      Ejemplo 3.5

      Escriba (en papel) un diagrama de flujo tal que dado como datos la base y la
      altura de un rect´ngulo, calcule su per´
                       a                     ımetro y ´rea. Realice el diagrama
                                                      a
      tambi´n en DFD.
            e

      Soluci´n
            o
      Consideraciones:
            Datos: BASE, ALTURA
            Donde:
                  BASE: variable de tipo real que representa la base del rect´ngulo.
                                                                             a
                  ALTURA: variable de tipo real que representa la altura del rect´ngulo.
                                                                                 a

      Recuerde que:
            El area de un rect´ngulo est´ dada por
               ´              a         a
                                            area = base × altura
                                            ´
            El per´
                  ımetro de un rect´ngulo est´ dada por
                                   a         a
                                        ımetro = 2 × (base + altura)
                                     per´
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave           Ejemplos


Construcci´n de diagramas de flujo
          o

            Las observaciones anteriores nos conducen al siguiente diagrama de
            flujo.

                                                          BASE, ALTURA: variables de tipo real.

                                                          AREA: variable de tipo real, almacena
                                                          el ´rea del rect´ngulo.
                                                             a            a

                                                          PERIMETRO: variable de tipo real,
                                                          almacena el per´
                                                                         ımetro del rec´ngulo.
                                                                                       a




                          #     BASE       ALTURA          AREA        PERIMETRO
                          1       8          8,5             9             7
                          2       9           8              9             7
                          3       9           10            10             8
                          4      8,5          9             7,5            6
                          5      7,3         6,8            9,5            8
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave      Ejemplos


Terminolog´ b´sica
          ıa a
            Programa: conjunto de instrucciones que ejecuta un computador para
            alcanzar un resultado espec´
                                       ıfico (Von Neumann, 1946).

            Un programa se escribe en un lenguaje de programaci´n a partir de
                                                               o
            un diagrama de flujo dise˜ado con anterioridad.
                                    n

            Los lenguajes de programaci´n est´n constituidos por un conjunto de
                                       o     a
              1   Reglas sint´cticas: especif´
                             a               ıcan la formaci´n (sint´xis) de instrucciones
                                                            o       a
                  v´lidas.
                   a
              2   Reglas sem´nticas: especifican el significado de las instrucciones
                            a
                  v´lidas.
                   a

            Pasos en la resoluci´n de un problema:
                                o
              1   Desarrollo de un algoritmo (soluci´n general).
                                                    o
              2   Construcci´n de un diagrama de flujo.
                            o
              3   Construcci´n de un programa en un lenguaje de programaci´n.
                            o                                             o

            Previo al paso (3), utilizaremos un “lenguaje” llamado pseudoc´digo:
                                                                          o
                  Es independiente de cualquier lenguaje de programaci´n.
                                                                      o
                  Carece del rigor y formalismo expresados en las reglas (1) y (2).
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Instrucciones en pseudoc´digo
                        o


            Lectura de datos:

                                                          Leer A, VEL, C



            Proceso:

                                                          Hacer TEMP ← TEMP + 1




            Escritura:

                                                          Escribir A, VEL
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave           Ejemplos


Ejemplos
            Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.1)
                               o


                                               INVERTIR DATOS
                                               { Dado un conjunto de datos de entrada el
                                               programa invierte el orden de los mismos y
                                               los imprime }
                                               { A, B, C y D son variables de tipo entero }
                                                 1     Leer A, B, C, D
                                                 2     Escribir D, C, B, A



            Observaciones
                  Todo programa tiene un nombre que lo define y que se elige teniendo en
                  cuenta las reglas para la construcci´n de identificadores.
                                                      o
                  Entre llaves {· · · } van comentarios que indican la funci´n del programa.
                                                                            o
                  Escribir un programa es sencillo cuando se conoce las instrucciones del
                  pseudoc´digo. La “tarea intelectual” consiste en la construcci´n del
                          o                                                     o
                  diagrama de flujo.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave         Ejemplos


Ejemplos



            Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.2)
                               o



                                               CALCULA
                                               { Dado dos enteros A y B, el programa
                                               calcula el resultado de una expresi´n }
                                                                                  o
                                               { A y B son variables de tipo entero, RES es
                                               una variable de tipo real }
                                                 1     Leer A, B
                                                 2     Hacer RES ← (A + B) ∧ 2/3
                                                 3     Escribir RES
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave            Ejemplos


Ejemplos



            Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.3)
                               o


                                               PROMEDIO CALIFICACION
                                               { Dadas las calificaciones de un estudiante,
                                               calcula su promedio }
                                               { CAL1, CAL2, CAL3, CAL4, CAL5 y PRO
                                               son variables de tipo real}
                                                 1     Leer CAL1, CAL2, CAL3, CAL4, CAL5
                                                 2     Hacer PRO ← (CAL1 + CAL2 + CAL3
                                                       + CAL4 + CAL5)/5
                                                 3     Escribir PRO
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave       Ejemplos


Ejemplos


            Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.4)
                               o



                                               CUADRADO CUBO
                                               { Dado un entero positivo, el programa
                                               calcula el cuadrado y el cubo de dicho
                                               n´mero. }
                                                u
                                               { NUM es una variable de tipo entero, CUA y
                                               CUB son variables de tipo real }
                                                 1     Leer NUM
                                                 2     Hacer CUA ← NUM*NUM
                                                 3     Hacer CUB ← NUM∧3
                                                 4     Escribir CUA y CUB
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave          Ejemplos


Ejemplos


            Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.5)
                               o



                                               CUADRADO CUBO
                                               { Dados la base y la altura de un rect´ngulo,
                                                                                     a
                                                             ımetro y su ´rea. }
                                               calcula su per´           a
                                               { BASE, ALTURA, AREA Y PERIMETRO
                                               son variables de tipo real }
                                                 1     Leer BASE, ALTURA
                                                 2     Hacer AREA ← BASE*ALTURA
                                                 3     Hacer PERIMETRO ←
                                                       2*(BASE+ALTURA)
                                                 4     Escribir AREA y PERIMETRO
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Aspectos b´sicos
          a




            “Lenguaje” de alto nivel interpretado, orientado principalmente a
            computaci´n cient´
                     o       ıfica

            Pretende ser compatible con MATLAB

            Proporciona una l´
                             ınea de comandos interactiva para resolver problemas
            matem´ticos num´ricamente
                  a          e

            Incluye una colecci´n de algoritmos y funciones matem´ticas
                               o                                 a
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave     Ejemplos


Aspectos b´sicos
          a

            Ventajas

                  Sencillo de utilizar

                  Software libre: se distribuye bajo licencia GNU, GPL (General Public
                  License)

                  Sint´xis muy similar a MATLAB
                      a

                  C´digo abierto: amplia comunidad de soporte (foros, etc.)
                   o


            A diferencia de MATLAB. . .

                  No soporta programaci´n orientada a objetos
                                       o

                  Capacidad de gr´ficos limitada (GUI’s)
                                 a

                  Pocos toolboxes disponibles

                  No dispone de los millones de una compa˜´ como MathWorks, Inc.
                                                         nıa
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Aspectos b´sicos: iniciando GNU Octave:
          a


     ~$ octave


     GNU Octave, version 3.0.1
     Copyright (C) 2008 John W. Eaton and others.
     This is free software; see the source code for copying conditions.
     There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
     FITNESS FOR A PARTICULAR PURPOSE. For details, type ‘warranty’.

     Octave was configured for "x86_64-pc-linux-gnu".

     Additional information about Octave is available at http://www.octave.org.

     Please contribute if you find this software useful.
     For more information, visit http://www.octave.org/help-wanted.html

     Report bugs to <bug@octave.org> (but first, please read
     http://www.octave.org/bugs.html to learn how to write a helpful report).

     For information about changes from previous versions, type ‘news’.

     octave:1>
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave      Ejemplos


Algunos operadores aritm´ticos
                        e
                     Operador           Operaci´n
                                               o            Ejemplo       Resultado
                          ∧             Potencia              2∧3              8
                          ∗           Multiplicaci´n
                                                  o           7∗3             21
                          /             Divisi´n
                                               o              10/4          2.5000
                          +              Suma                 3−4             −1
                          −              Resta                7−4              3
                         rem         M´dulo (residuo)
                                      o                     rem(10, 3)         1



       octave:#> 3+4                                         octave:#> 4+6/2+3
       ans = 7                                               ans = 10


       octave:#> 5/10*2+5                                    octave:#> (4+6)/(2+3)
       ans = 6                                               ans = 2


       octave:#> 5/(10*2+5)                                  octave:#> 0∧0
       ans = 0.20000                                         ans = 1


       octave:#> 2+4*3^2                                     octave:#> rem(17,3)
       ans = 38                                              ans = 2
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave           Ejemplos


Operadores relacionales (de comparaci´n)
                                     o
                     Operador           Operaci´n
                                               o             Ejemplo      Resultado
                          ==              Igual               4 == 5           0
                          !=           Diferente de            2!=3            1
                           <            Menor que             10 < 4           0
                           >            Mayor que              5>-4            1
                          <=         Menor o igual que         7<=7            1
                          >=         Mayor o igual que      3.5 >= 10          0



       octave:#> 1+2>7-3                                     octave:#> 3>4<5
       ans = 0                                               ans = 1


       octave:#> 1<2<3                                       octave:#> 1/3<0.33333
       ans = 1                                               ans = 0


       octave:#> 1>2==2<3                                    octave:#> 5/3>=11/7
       ans = 1                                               ans = 1


       octave:#> 1>2==(2<3)                                  octave:#> 2∧(2/3) < 3∧(3/4)
       ans = 0                                               ans = 1
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave          Ejemplos


Operadores l´gicos (booleanos)
            o

                         Operador        Operaci´n
                                                o        Ejemplo       Resultado
                              &              y              2&3            1
                              |              o              3|5            1
                              !           negaci´n
                                                o           !7             0


            A     B     A&B       A|B     !A                      Operador         Jerarqu´
                                                                                          ıa
            0     0       0        0       1                          ()            (mayor)
            0     1       0        1       1                          ∧
            1     0       0        1       0                      ∗, /, rem
            1     1       1        1       0               ==, ! =, <, >, <=, >=
                                                                       !
                                                                      &
                                                                       |            (menor)



       octave:#> 0&1|1                                       octave:#> 5*4>4&0<3
       ans = 1                                               ans = 1


       octave:#> 1&(1|0)                                     octave:#> 2∧(3&0/5)>rem(45,6)
       ans = 0                                               ans = 0
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave         Ejemplos


Variables y formatos
            Variables: expresiones (identificadores) asociados a datos almacenados
            en un sistema de memoria

            Algunos tipos de datos:
                  Real de doble precisi´n: 8 bytes (15 cifras exactas)
                                       o
                  String: ’cadena de caracteres’


       octave:#> base=3                                      octave:#> cadena=’hola’; a=3;
       base = 3


       octave:#> alt=4                                       octave:#> cadena
       altura = 4                                            cadena = hola


       octave:#> area = base*alt                             octave:#> a=2*a
       area = 12                                             a = 6


       octave:#> perim = 2*base+2*alt                        octave:#> area == 2*a
       perim = 14                                            ans = 1
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave           Ejemplos


Variables y formatos
                Tipo       Formato                                          π
                short      punto   fijo, 5 d´
                                           ıgitos                 3.1416
                long       punto   fijo, 15 d´ıgitos               3.14159265358979
                short e    punto   flotante, 5 d´ ıgitos           3.1416e+000
                long e     punto   flotante, 15 d´ ıgitos          3.141592653589793e+000
                short g    punto   fijo o flotante, 5 d´  ıgitos    3.1416
                long g     punto   fijo o flotante, 15 d´  ıgitos   3.14159265358979



       octave:#> b=1/3                                        octave:#> format long e
       b = 0.33333


       octave:#> format long                                  octave:#> c
                                                              c = 1.23123123123123e-01


       octave:#> b                                            octave:#> format
       b = 0.333333333333333


       octave:#> c = 41/333                                   octave:#> c
       c = 0.123123123123123                                  c = 0.12312
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave          Ejemplos


Variables predefinidas
                          Variable     Uso
                          ans          almacena el ultimo resultado
                                                    ´
                          pi           almacena el valor de π = 3,1415 . . .
                          e            almacena el valor de e = 2,7183 . . .
                                                            √
                          i            almacena el valor de −1
                          eps          epsilon de la m´quina
                                                       a
                          Inf          infinito
                          NaN          resultado no n´ merico (Not a Number)
                                                      u


       octave:#> pi                                          octave:#> eps
       ans = 3.1416                                          ans = 2.22044604925031e-16


       octave:#> format long
                                                             octave:#> 1/0
                                                             warning: division by zero
                                                             ans = Inf
       octave:#> pi
       ans = 3.14159265358979
                                                             octave:#> 0/0
                                                             warning: division by zero
       octave:#> e                                           ans = NaN
       ans = 2.71828182845905
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                    Pseudoc´digo
                                                                o       GNU Octave          Ejemplos


Entorno de trabajo
            Variables utilizadas en una sesi´n de trabajo (who, whos)
                                            o

            Historial de ordenes ejecutadas (↓, ↑)
                         ´

       octave:#> who -v

       *** local user variables:

       __nargin__        a           alt               ans          area         b   base

       c       cadena          perim



       octave:#> clear cadena



       octave:#> who -v

       *** local user variables:

       __nargin__        a           alt               ans          area         b   base

       c         perim
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave             Ejemplos


Entorno de trabajo

           octave:#> who -v

           *** local user variables:

           __nargin__      alt             area            base           perim
           a               ans             b               c

           octave-3.0.1:32> whos -v

           *** local user variables:

              Prot   Name                 Size                            Bytes    Class
              ====   ====                 ====                            =====    =====
               rw-   __nargin__           1x1                                 8    double
               rwd   a                    1x1                                 8    double
               rwd   alt                  1x1                                 8    double
               rwd   ans                  1x1                                 1    logical
               rwd   area                 1x1                                 8    double
               rwd   b                    1x1                                 8    double
               rwd   base                 1x1                                 8    double
               rwd   c                    1x1                                 8    double
               rwd   perim                1x1                                 8    double

           Total is 9 elements using 65 bytes
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave           Ejemplos


Funciones matem´ticas
               a

                                Funci´n
                                     o       Uso
                                sqrt(x)      calcula la ra´ cuadrada de x
                                                          ız
                                exp(x)       funci´n exponencial
                                                  o
                                log(x)       funci´n logaritmo natural
                                                  o
                                sin(x)       calcula sen(x)
                                cos(x)       calcula cos(x)
                                tan(x)       calcula tan(x)
                                asin(x)      calcula sen−1 (x)
                                acos(x)      calcula cos−1 (x)
                                atan(x)      calcula tan−1 (x)



       octave:#> cos(pi)                                     octave:#> cos(a)∧2+sen(a)∧2
       ans = -1                                              ans = 1.0000


       octave:#> exp(1)                                      octave:#> log(e)
       ans = 2.7183                                          ans = 1


       octave:#> 4*atan(1)                                   octave:#> 2*sin(3*pi/2)
       ans = 3.1416                                          ans = -2
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave               Ejemplos


Instrucciones de entrada/salida
    Salida de datos:                                                    Entero                   d, i
                                                                        Punto fijo                f, g
          disp("texto")                                                 Punto flotante            e
                                                                        Caracter                 c
          printf("cadena de formato", arg1, arg2,...)                   Cadena de caracteres     s

    octave:#> disp("¡hola, mundo!")
    ¡hola, mundo!

    octave:#> m=3;
    octave:#> disp(m)
     3

    octave:#> pulg=2.54; cent=6.4516;

    octave:#> printf(" %d pulgadas equivalen a %f cen´metros n", m, cent);
                                                     ı
    3 pulgadas equivalen a 6.451600 cent´metros
                                         ı

    octave:#> printf(" %f pulgadas equivalen a %f cent´metros n", pulg, cent);
                                                      ı
    2.540000 pulgadas equivale a 6.451600 cent´metros
                                              ı

    octave:#> printf(" %f pulgadas equivalen a %e cen´metros n", pulg, cent);
                                                     ı
    2.540000 pulgadas equivale a 6.451600e+00 cent´metros
                                                  ı
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Instrucciones de entrada/salida
            Entrada de datos por teclado:
                  input("texto")
                  input("texto", "s")

      octave:#> palabra = input("Ingrese una palabra: ","s");
      Ingrese una palabra: casa


      octave:#> palabra
      palabra = casa


      octave:#> letras = input("Ingrese el n´mero de letras: ");
                                            u
      Ingrese el n´mero de letras: 4
                  u


      octave:#> letras
      letras = 4


      octave:#> printf("La palabra %s tiene %d letras n", palabra, letras);
      La palabra casa tiene 4 letras
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Scripts
            Archivos de texto plano sin formato, con extensi´n .m, que contienen
                                                            o
            una sucesi´n de comandos de Octave
                      o
            Se editan con cualquier editor de texto (usaremos geany)
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplos de scripts


            hola mundo.m

         % Progarma Hola mundo en Octave, versi´n "emo"
                                               o
         printf("¡Hola, maldito mundo!n");




            promedio.m

         % Calcula el promedio de dos n´meros reales
                                       u

         % Lee los valores de num1 y num2
         num1 = input("Ingrese el primer n´mero: ");
                                          u
         num2 = input("Ingrese el segundo n´mero: ");
                                            u

         % Calcula el promedio y lo almacena en la variable prom
         prom = (num1+num2)/2;

         % Imprime los n´meros ingresados y su promedio
                        u
         printf("El promedio de %g y %g es: %g n", num1, num2, prom);
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplos de scripts




                 pmol.m

              % Este programa calcula el peso molecular de una molecula
              % organica.

              % Calculo de los g/mol de cada elemento.
              peso C = 12*9 ;
              peso H = 1*6 ;
              peso O = 16*4;

              % Calculo del peso molecular
              peso molecular = peso C + peso H + peso O

              % Calculo del porcentaje de oxigeno
              porcentaje O = peso O/peso molecular*100
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplos de scripts

      Ejemplo 5.1
      Escriba un programa (script) en Octave que tenga como entradas los datos
      enteros A y B y escriba el resultado de la siguiente expresi´n:
                                                                  o
                                                 (A + B)2
                                                     3

      Soluci´n
            o


                                           operacion.m

                                         % Dados dos enteros A y B, calcula
                                         % (A+B)∧2/3

                                         % Lee los valores de A y B
                                         A = input("Ingrese A: ");
                                         B = input("Ingrese B: ");
                                         RES = (A+B)∧2/3;

                                         % Imprime contenido de la variable RES
                                         disp(RES);
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave                  Ejemplos


Ejemplos de scripts
                   ´
      Ejemplo 5.2 (Area y per´
                             ımetro de un rect´ngulo)
                                              a

      Escriba un programa (script) en Octave tal que dado como datos la base y la
      altura de un rect´ngulo, calcule su per´
                       a                     ımetro y area.
                                                      ´

      Soluci´n
            o



                                        rectangulo.m

                                      % Dados la base y la altura de un rect´ngulo, el programa
                                                                            a
                                      % calcula su ´rea y su per´metro
                                                   a            ı

                                      % Lee los valores de la base y la altura
                                      BASE = input("Ingrese la base: ");
                                      ALTURA = input("Ingrese la altura: ");

                                      AREA = BASE*ALTURA;
                                      PERIMETRO = 2*(BASE+ALTURA);

                                      printf("El ´rea es %f y el per´metro es %f n", AREA, PERIMETRO);
                                                 a                  ı
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave                Ejemplos


Funciones

  Son scripts que tienen una sintaxis predefinida                      Sintaxis de una funci´n
                                                                                           o

  Programas que resultan complejos por medio de                       function nombre(argumentos)
  scripts, se simplifican por medio de funciones
                                                                            sentencias
  Una vez definidas, las funciones se invocan desde                    end
  la l´
      ınea de comandos o desde un script


  cuadrado.m                               octave:#> cuadrado(3)
                                           ans = 9
function y = cuadrado(x)
% Calcula el cuadrado de                   octave:#> cuadrado(-2.5678)
% un n´mero
      u                                    ans = 6.5936
      y = x*x;
end                                        octave:#> cuadrado(t)
                                           error: ‘t’ undefined near line 2 column 10
                                           error: evaluating argument list element number 1


                                           octave:#> help cuadrado
                                           calcula el cuadrado de un n´mero real
                                                                      u
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave                 Ejemplos


Ejemplo de funci´n
                o
                    ´
       Ejemplo 5.3 (Area y per´
                              ımetro de un rect´ngulo con funciones)
                                               a
       Resuelva el ejemplo (5.2) del rect´ngulo utilizando funciones.
                                         a

       Soluci´n
             o
  area.m                                     rectangulo2.m

                                          % Dados la base y la altura de un rect´ngulo, el programa
                                                                                a
function z = area(x,y)                    % calcula su ´rea y su per´metro
                                                       a            ı
% Calcula el ´rea de un
             a                            % Lee los valores de la base y la altura
% cuadrado de lados x e y                 BASE = input("Ingrese la base: ");
                                          ALTURA = input("Ingrese la altura: ");
      z = x*y;
                                          AREA = area(BASE,ALTURA);
                                          PERIMETRO = perimetro(BASE,ALTURA);
end
                                          printf("El ´rea es %f y el per´metro es %f n", AREA, PERIMETRO);
                                                     a                  ı
  perimetro.m

                                          octave:#> rectangulo2
function z = perimetro(x,y)               Ingrese la base: 2
% Calcula el per´metro de un
                ı                         Ingrese la altura: 3
% cuadrado de lados x e y                 El ´rea es 6.000000 y el per´metro es 10.000000
                                             a                        ı

      z = 2*(x+y);
end
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplo 6.1

      Ejemplo 6.1

      Realice un algoritmo (diagrama de flujo, pseudoc´digo) tal que dado el costo
                                                        o
      de un art´ıculo vendido y la cantidad de dinero entregada por el cliente,
      calcule e imprima el cambio que se debe entregar al mismo. Implem´ntelo
                                                                           e
      en DFD.

      Soluci´n
            o
      Datos:
            PRECIO: variable de tipo real que representa el precio del producto.

            PAGO: variable de tipo real que representa el pago a realizar por el
            cliente.

      Variables de salida:
            DEVO: variable de tipo real. Almacen el cambio que se le debe entregar
            al cliente.

      Nota: asumimos que el pago del cliente es mayor que el precio del producto.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o         GNU Octave          Ejemplos


Ejemplo 6.1



                                               DEVUELTO
                                               { Dado el costo de un producto y la cantidad
                                               de dinero entregada por el cliente, calcula el
                                               vuelto que hay que entregar al cliente. }
                                               { PRECIO, PAGO Y DEVO son variables de tipo
                                               real. }
                                                 1     Leer PRECIO, PAGO
                                                 2     Hacer DEVO ← PAGO − PRECIO
                                                 3     Escribir DEVO




                                       #     PRECIO      PAGO    DEVO
                                       1       34         60      26
                                       2      124.7      213     88,13
                                       3      24.53      100     75,47
                                       4       12         21       9
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplo 6.2
      Ejemplo 6.2

      Realice un algoritmo (diagrama de flujo, pseudoc´digo) que reciba como
                                                        o
      datos el nombre de un dinosaurio, su peso (en toneladas) y su altura (en
      pies), y que escriba el nombre del dinosaurio, su peso en kilogramos y su
      altura en metros. Implem´ntelo en DFD.
                                e

      Soluci´n
            o
      Datos:
            NOM: variable de tipo cadena de caracteres que indica el nombre del
            dinosaurio.
            PES: variable de tipo real que representa el peso del dinosaurio.
            ALT: variable de tipo real que representa la altura del dinosaurio.
      Variables de salida:
            PESKG: variable de tipo real, almacena el peso del dinosaurio en Kg.
            ALTMT: variable de tipo real, almacena el peso del dinosaurio en mt.
      Consideraciones:
            1 tonelada equivale a 1000 kilogramos.
            1 pie equivale a 0.3047 metros.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave          Ejemplos


Ejemplo 6.2


                                               DINOSAURIO
                                               { Dado el nombre de un dinosaurio, su peso
                                               en toneladas y su altura en pies, el programa
                                               escribe el nombre del dinosaurio, su peso en
                                               kilogramos y su altura en metros. }
                                               { NOM es una variable de tipo cadena de
                                               caracteres. PES, ALT, PESKG, y ALTMT son
                                               variables de tipo real. }
                                                 1     Leer NOM, PES, ALT
                                                 2     Hacer PESOKG ← PESO∗1000
                                                 3     Hacer ALTMT ← ALT∗0,3047
                                                 4     Escribir NOM, PESOKG, ALTMT



                          #           NOM            PES    ALT    PESKG    ALTMT
                          1      tiranosaurio         5     30      5000     9,15
                          2     poderosaurio         15     90     15000    27,42
                          3     perderosaurio        50     80     50000    24,37
                          4     brontosaurio         25     70     25000    21,32
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplo 6.3

      Ejemplo 6.3

      En una gasolinera las m´quinas registran el combustible surtido en galones
                                a
      pero el precio de la gasolina est´ fijado en litros. Realice un algoritmo
                                       a
      (diagrama de flujo, pseudoc´digo) que calcule e imprima el valor que hay
                                   o
      que cobrarle al cliente e implem´ntelo en DFD.
                                       e

      Soluci´n
            o
      Datos:
            GAL: variable de tipo real que representa los galones de gasolina
            surtidos al cliente.

      Variables de salida:
            TOTAL: variable de tipo real, almacena el total que debe pagar el cliente.

      Consideraciones:
            1 gal´n equivale a 3.785 litros.
                 o
            1 litro de gasolina cuesta $1480.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o        GNU Octave           Ejemplos


Ejemplo 6.3


                                               GASOLINA
                                               { Dado los galones de gasolina surtidos a un
                                               cliente, calcula el precio que debe pagar el
                                               cliente. }
                                               { GAL y TOTAL son variableS de tipo real. }
                                                 1     Leer GAL
                                                 2     Hacer TOTAL ← GAL∗3,785 ∗ 1480
                                                 3     Escribir TOTAL




                                         #      GAL         TOTAL
                                         1     10,38      58146,684
                                         2     15,90       89068,62
                                         3      8,40       47055,12
                                         4      9,66      54113,388
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplo 6.4
      Ejemplo 6.4

      Realice un algoritmo (diagrama de flujo, pseudoc´digo) que reciba como
                                                         o
      datos el radio y la altura de un cilindro y calcule e imprima su ´rea y
                                                                       a
      volumen. Implem´ntelo en DFD.
                        e

      Soluci´n
            o
      Datos:
            RADIO: variable de tipo real que representa el radio del cilindro.
            ALT: variable de tipo real que representa la altura del cilindro.
      Variables de salida:
            VOL: variable de tipo real, almacena el volumen del cilindro.
            AREA: variable de tipo real, almacena el area del cilindro.
                                                     ´
      Consideraciones:
            El volumen y el area de un cilindro est´n dados respectivamente por
                            ´                      a
                                volumen = πr2 × h          y   area = 2πr × h
            donde r es el radio de la base, h es su altura y π = 3,141592 . . .
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave             Ejemplos


Ejemplo 6.4


                                               CILINDRO
                                               { Dado el radio y la altura de un cilindro,
                                               calcula su ´rea y su volumen.}
                                                          a
                                               { RADIO, ALT, VOL y AREA son variables de tipo
                                               real. }
                                                 1     Leer RADIO, ALT
                                                 2     Hacer VOL ← 3.141592 ∗ RADIO∧2 ∗ ALT
                                                 3     Hacer AREA ← 2 ∗ 3,141592∗ RADIO ∗ ALT
                                                 4     Escribir VOL, AREA




                            #     RADIO       ALT            VOL           AREA
                            1     45,22      11,60        74519,33       3295,86
                            2     17,30       8,45         7945,09        918,51
                            3     69,30      72,40       1092332,40      31524,75
                            4     125,30     117,40      5790552,70      92427,01
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplo 6.5


      Ejemplo 6.5

      Realice un algoritmo (diagrama de flujo, pseudoc´digo) que calcule e
                                                     o
      imprima el n´mero de segundos que hay en un determinado n´mero de
                   u                                              u
      d´
       ıas. Implem´ntelo en DFD.
                   e


      Soluci´n
            o

      Datos:
            DIAS: variable de tipo entero que representa el n´mero de d´
                                                             u         ıas.


      Variables de salida:
            SEG: variable de tipo real. Almacena la cantidad de segundos que hay
            en un n´mero determinado de d´
                    u                       ıas.
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave          Ejemplos


Ejemplo 6.5


                                               SEGUNDOS EN DIAS
                                               { Dado un n´mero determinado de d´
                                                           u                        ıas,
                                               calcula cu´ntos segundos tienen ´stos. }
                                                         a                     e
                                               { DIAS es una variable de tipo entero y SEG es
                                               una variable de tipo real. }
                                                 1     Leer DIAS
                                                 2     Hacer SEG ← DIAS∗24 ∗ 60 ∗ 60
                                                 3     Escribir DIAS




                                           #     DIAS         SEG
                                           1       1        86400
                                           2       7        604800
                                           3      15       1296000
                                           4      30       2592000
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave          Ejemplos


Ejemplo 6.6
      Ejemplo 6.6

      Se desea conocer cu´ntos meses han transcurrido entre enero de 1949 y
                          a
      enero de 2002. Realice un algoritmo (diagrama de flujo, pseudoc´digo) que
                                                                    o
      resuelva dicho problema e implem´ntelo en DFD.
                                       e

      Soluci´n
            o
      Variables:
            ATRANS: variable de tipo entero; almacena el n´mero de meses que hay
                                                          u
            entre 1949 y 2002.


                                               MESES
                                               { Determina el n´mero de meses que hay
                                                               u
                                               entre 1949 y 2002. }
                                                 1     Hacer ATRANS ← (2002 − 1949) ∗ 12
                                                 2     Escribir ATRANS
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Ejemplo 6.7

      Ejemplo 6.7 (Generalizaci´n del ejemplo 6.6)
                               o

      Se desea determinar los meses transcurridos entre los inicios de dos a˜os
                                                                            n
      cualesquiera. Realice un algoritmo (diagrama de flujo, pseudoc´digo) que
                                                                     o
      resuelva dicho problema e implem´ntelo en DFD.
                                        e

      Soluci´n
            o

      Datos:
            AINICIAL: variable de tipo entero, representa el a˜o inicial.
                                                              n
            AFINAL: variable de tipo entero, representa el a˜o final.
                                                            n
            ATRANS: variable de tipo entero; almacena el n´mero de a˜os que hay
                                                          u         n
            entre el a˜o inicial y el a˜o final.
                      n                n


      Variables de salida:
            MTRANS: variable de tipo entero; almacena el n´mero de meses
                                                            u
            transcurridos entre el a˜o inicial y el a˜o final.
                                    n                n
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                   Pseudoc´digo
                                                               o       GNU Octave          Ejemplos


Ejemplo 6.7


                                               MESES GENERAL
                                               { Dado un n´mero determinado de d´
                                                           u                        ıas,
                                               calcula cu´ntos segundos tienen ´stos. }
                                                         a                     e
                                               { DIAS es una variable de tipo entero y SEG es
                                               una variable de tipo real. }
                                                 1     Leer AINICIAL, AFINAL
                                                 2     Hacer ATRANS ← AFINAL−AINICIAL
                                                 3     Hacer MTRANS ← 12∗MTRANS
                                                 4     Escribir ATRANS




                                    #     ANICIAL       AFINAL    MTRANS
                                    1      1982          2008      312
                                    2      1969          1987      216
                                    3      1883          1972      1068
                                    4      1944          1949       60
Introducci´n Diagramas de flujo Dise˜ o de diagramas
          o                         n                  Pseudoc´digo
                                                              o       GNU Octave   Ejemplos


Referencias




            O. Cair´
                   o
            Metodolog´ de la programaci´n
                     ıa                o
            Segunda edici´n. Alfaomega Grupo Editor, S.A., 2005
                         o


            J.W. Eaton
            GNU Octave: A high-level interactive language for numerical
            computations
            Network Theory Ltd., 2002

Más contenido relacionado

La actualidad más candente

EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE CEJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE CGato Rivitas
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasJohan Velandia
 
Programacion lenguaje-c
Programacion lenguaje-cProgramacion lenguaje-c
Programacion lenguaje-cClariza
 
Algoritmos y Logica
Algoritmos y LogicaAlgoritmos y Logica
Algoritmos y LogicaDSGP
 
Naturaleza y evolución de la tecnología (1)
Naturaleza y evolución de la tecnología (1)Naturaleza y evolución de la tecnología (1)
Naturaleza y evolución de la tecnología (1)daniela515873
 
Trabajo de tecnologia
Trabajo de tecnologia Trabajo de tecnologia
Trabajo de tecnologia JuanGarcia1543
 
Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacionnmqy28
 
Naturaleza y evolución de la tecnología
Naturaleza y evolución de la tecnologíaNaturaleza y evolución de la tecnología
Naturaleza y evolución de la tecnologíaCataMaya2
 

La actualidad más candente (17)

EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE CEJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientras
 
Programacion lenguaje-c
Programacion lenguaje-cProgramacion lenguaje-c
Programacion lenguaje-c
 
Algoritmos y Logica
Algoritmos y LogicaAlgoritmos y Logica
Algoritmos y Logica
 
Apartes De Algoritmos
Apartes De AlgoritmosApartes De Algoritmos
Apartes De Algoritmos
 
Estructura secuencial
Estructura secuencialEstructura secuencial
Estructura secuencial
 
Naturaleza y evolución de la tecnología (1)
Naturaleza y evolución de la tecnología (1)Naturaleza y evolución de la tecnología (1)
Naturaleza y evolución de la tecnología (1)
 
Trabajo de tecnologia
Trabajo de tecnologia Trabajo de tecnologia
Trabajo de tecnologia
 
00000
0000000000
00000
 
Algoritmos 02
Algoritmos 02Algoritmos 02
Algoritmos 02
 
Trabajo de tecnologia
Trabajo de tecnologia Trabajo de tecnologia
Trabajo de tecnologia
 
Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacion
 
Clase de programacion
Clase  de  programacionClase  de  programacion
Clase de programacion
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Logica algoritmos
Logica algoritmosLogica algoritmos
Logica algoritmos
 
Estructuras básicas.docx
Estructuras básicas.docxEstructuras básicas.docx
Estructuras básicas.docx
 
Naturaleza y evolución de la tecnología
Naturaleza y evolución de la tecnologíaNaturaleza y evolución de la tecnología
Naturaleza y evolución de la tecnología
 

Destacado

¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPMIsrael Herraiz
 
Cuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacionCuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programaciontacubomx
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveGabriel Romero
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilabGabriel Romero
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltosfermodcor
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)irvingsalazar2
 
Ecuaciones de Lorenz en Octave
Ecuaciones de Lorenz en OctaveEcuaciones de Lorenz en Octave
Ecuaciones de Lorenz en Octavedagoquevedo
 

Destacado (7)

¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM
 
Cuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacionCuadro sinoptico lenguaje de programacion
Cuadro sinoptico lenguaje de programacion
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octave
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)
 
Ecuaciones de Lorenz en Octave
Ecuaciones de Lorenz en OctaveEcuaciones de Lorenz en Octave
Ecuaciones de Lorenz en Octave
 

Similar a Clase de turbo C

ALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y informaciónALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y informaciónQuirogaSharon
 
Proyecto de-programacion
Proyecto de-programacionProyecto de-programacion
Proyecto de-programacionhelp center
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programaciónJeckson Loza
 
La robotica y sus aplicaciones
La robotica y sus aplicacionesLa robotica y sus aplicaciones
La robotica y sus aplicacionesDeiniHernandez
 
Unidad2 compu luis jimenez
Unidad2 compu luis jimenezUnidad2 compu luis jimenez
Unidad2 compu luis jimenezLuisJoseJimenez
 
Algoritmos computacionales y programación: 1
 Algoritmos computacionales y programación: 1 Algoritmos computacionales y programación: 1
Algoritmos computacionales y programación: 1Universidad Veracruzana
 
1 er practico de programación
1 er practico de programación1 er practico de programación
1 er practico de programaciónnela333
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoLincoln School
 
01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdfcristianperez473965
 
Presentacion ip algoritmia_2011
Presentacion ip algoritmia_2011Presentacion ip algoritmia_2011
Presentacion ip algoritmia_2011ymendal
 
Presentacion ip algoritmia_2012_ii
Presentacion ip algoritmia_2012_iiPresentacion ip algoritmia_2012_ii
Presentacion ip algoritmia_2012_iiymendal
 
Algoritmos y diagramas de flujos
Algoritmos y diagramas de flujosAlgoritmos y diagramas de flujos
Algoritmos y diagramas de flujosWalter Manero
 
Algoritmo
Algoritmo Algoritmo
Algoritmo jhohamn
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...Deisy Pestana
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...Deisy Pestana
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, karen martínez
Algoritmos taller 1   vanessa berrio, camilo rodriguez, karen martínezAlgoritmos taller 1   vanessa berrio, camilo rodriguez, karen martínez
Algoritmos taller 1 vanessa berrio, camilo rodriguez, karen martínezIisa Berriio
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...Deisy Pestana
 

Similar a Clase de turbo C (20)

ALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y informaciónALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y información
 
Proyecto de-programacion
Proyecto de-programacionProyecto de-programacion
Proyecto de-programacion
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
La robotica y sus aplicaciones
La robotica y sus aplicacionesLa robotica y sus aplicaciones
La robotica y sus aplicaciones
 
Unidad2 compu luis jimenez
Unidad2 compu luis jimenezUnidad2 compu luis jimenez
Unidad2 compu luis jimenez
 
Algoritmos computacionales y programación: 1
 Algoritmos computacionales y programación: 1 Algoritmos computacionales y programación: 1
Algoritmos computacionales y programación: 1
 
1 er practico de programación
1 er practico de programación1 er practico de programación
1 er practico de programación
 
Tema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmicoTema 4 -_introduccion_a_razonamiento_algoritmico
Tema 4 -_introduccion_a_razonamiento_algoritmico
 
01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf
 
Semana 1
Semana 1Semana 1
Semana 1
 
Fundamentos de Algoritmia
Fundamentos de AlgoritmiaFundamentos de Algoritmia
Fundamentos de Algoritmia
 
Presentacion ip algoritmia_2011
Presentacion ip algoritmia_2011Presentacion ip algoritmia_2011
Presentacion ip algoritmia_2011
 
Presentacion ip algoritmia_2012_ii
Presentacion ip algoritmia_2012_iiPresentacion ip algoritmia_2012_ii
Presentacion ip algoritmia_2012_ii
 
Algoritmos y diagramas de flujos
Algoritmos y diagramas de flujosAlgoritmos y diagramas de flujos
Algoritmos y diagramas de flujos
 
Algoritmo
Algoritmo Algoritmo
Algoritmo
 
Cuestionario video
Cuestionario videoCuestionario video
Cuestionario video
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, karen martínez
Algoritmos taller 1   vanessa berrio, camilo rodriguez, karen martínezAlgoritmos taller 1   vanessa berrio, camilo rodriguez, karen martínez
Algoritmos taller 1 vanessa berrio, camilo rodriguez, karen martínez
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
 

Más de tacubomx

Cuestionario
CuestionarioCuestionario
Cuestionariotacubomx
 
Como se instala java y turbo c 3.0
Como se instala java y turbo c 3.0Como se instala java y turbo c 3.0
Como se instala java y turbo c 3.0tacubomx
 
Expocicion de Arreglos
Expocicion de ArreglosExpocicion de Arreglos
Expocicion de Arreglostacubomx
 
Examen de Turbo C
Examen de Turbo CExamen de Turbo C
Examen de Turbo Ctacubomx
 
Exposicion Arreglos
Exposicion ArreglosExposicion Arreglos
Exposicion Arreglostacubomx
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmicatacubomx
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo Ctacubomx
 
Ciclos C++
Ciclos C++Ciclos C++
Ciclos C++tacubomx
 
La estructura if
La estructura ifLa estructura if
La estructura iftacubomx
 
La estructura if en turbo C
La estructura if en turbo CLa estructura if en turbo C
La estructura if en turbo Ctacubomx
 
Arreglos En C ++
Arreglos En C ++Arreglos En C ++
Arreglos En C ++tacubomx
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++tacubomx
 
Curso de Lenguaje C
Curso de Lenguaje CCurso de Lenguaje C
Curso de Lenguaje Ctacubomx
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivastacubomx
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programaciontacubomx
 

Más de tacubomx (16)

Cuestionario
CuestionarioCuestionario
Cuestionario
 
Como se instala java y turbo c 3.0
Como se instala java y turbo c 3.0Como se instala java y turbo c 3.0
Como se instala java y turbo c 3.0
 
Expocicion de Arreglos
Expocicion de ArreglosExpocicion de Arreglos
Expocicion de Arreglos
 
Examen de Turbo C
Examen de Turbo CExamen de Turbo C
Examen de Turbo C
 
Exposicion Arreglos
Exposicion ArreglosExposicion Arreglos
Exposicion Arreglos
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 
Ciclos C++
Ciclos C++Ciclos C++
Ciclos C++
 
Turbo c
Turbo cTurbo c
Turbo c
 
La estructura if
La estructura ifLa estructura if
La estructura if
 
La estructura if en turbo C
La estructura if en turbo CLa estructura if en turbo C
La estructura if en turbo C
 
Arreglos En C ++
Arreglos En C ++Arreglos En C ++
Arreglos En C ++
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
Curso de Lenguaje C
Curso de Lenguaje CCurso de Lenguaje C
Curso de Lenguaje C
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 

Clase de turbo C

  • 1. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Introducci´n a los Computadores o Algoritmos computacionales CNM-130 Departamento de Matem´ticas a Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft « 2009. Reproducci´n permitida bajo los o t´rminos de la licencia de documentaci´n libre GNU. e o
  • 2. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Contenido 1 Introducci´n o 2 Diagramas de flujo 3 Construcci´n de diagramas de flujo o 4 Pseudoc´digo o 5 GNU Octave 6 Ejemplos
  • 3. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Etapas en la resoluci´n de un problema o Definici´n del problema: el enunciado completo del problema, o ¿qu´ es lo que se pretende obtener? e An´lisis del problema: a un conjunto de datos de entrada (la informaci´n dada) o un conjunto de datos de salida (lo que se desea obtener) Relaciones que vinculen los datos de entrada y salida Dise˜ o de la soluci´n: se debe proponer o aplicar un modelo para n o lograr sistematizar la b´squeda de la soluci´n. u o Codificaci´n: en esta etapa se describen los pasos que se deben o ejecutar para resolver el problema (algoritmo). Prueba: se verifica el funcionamiento de la soluci´n propuesta y se o detectan los errores que se presenten con la posterior correcci´n de los o mismos (depuraci´n). o
  • 4. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Algoritmos Definici´n 1.1 (Algoritmo) o Un algoritmo es una secuencia finita de instrucciones, reglas o pasos que describen de modo preciso las operaciones que un computador debe realizar para ejecutar una tarea determinada en un tiempo finito. Cinco propiedades ampliamente aceptadas como requisitos para un algoritmo (Knuth): Finitud: Un algoritmo siempre debe terminar despu´s de un n´ mero e u finito de pasos. Precisi´n: cada paso de un algoritmo debe estar precisamente definido o y sin ambiguedades. Entrada: un algoritmo tiene cero o m´s entradas que le son dadas antes a de que el algoritmo comience, o din´micamente mientras corre. a Salida: un algoritmo tiene una o m´s salidas. a Eficacia: las operaciones a realizar en un algoritmo deben ser suficientemente b´sicas como para que en principio puedan ser a realizadas de manera exacta y en un tiempo finito por un hombre usando papel y l´piz. a
  • 5. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo Algoritmo para preparar “fr´ıjoles con chicharr´n” para 8 raciones. Los o datos de entrada (ingredientes) son: 2 libras de fr´ ıjoles. 2 zanahorias peladas. 1 cucharada de aceite vegetal o 2 cubos de caldo de carne. de girasol. 1 cucharada de sal. 1/4 de libra de tocino cortado 16 tazas de agua. en trocitos. Algoritmo 1 Se lavan bien los fr´joles y se dejan remojando en el agua ı desde la noche anterior. 2 Al d´a siguiente, se ponen en la olla a presi´n con el agua en ı o que se remojaron, el aceite, el tocino y la zanahoria. 3 Se cocinan sin sal hasta que est´n blandos, aproximadamente por e 1 hora. 4 Se lic´a una peque~a cantidad de los fr´joles con la zanahoria, u n ı los cubos de caldo y la sal, y se agrega a los fr´joles. ı 5 Se cocinan media hora m´s con la olla destapada hasta que a espesen.
  • 6. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Otros ejemplos Muchos algoritmos no requieren de un computador para su ejecuci´n: o Cambiar la llanta de un carro Ir al banco a pagar una cuenta Ir a un restaurante a comer Determinar la cantidad de dinero que nos deben devolver al pagar el bus Comprar una libra de azucar En la pr´ctica, un algoritmo es s´lo una parte de las etapas requeridas a o para resolver un problema: Dise˜o del algoritmo. n Implementaci´n del algoritmo en un lenguaje de programaci´n adecuado o o (codificaci´n). o Ejecuci´n y validaci´n del programa por el computador. o o
  • 7. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Dise˜o de algoritmos n Herramientas utilizadas para dise˜ar algoritmos n Diagramas de flujo: representaci´n esquem´tica de un algoritmo que o a muestra gr´ficamente los pasos a seguir para alcanzar la soluci´n de un a o problema. Pseudoc´digos: forma gen´rica de escribir un algoritmo, por medio de o e un lenguaje simple sin necesidad de conocer la sint´xis de un lenguaje a de programaci´n. o El diagrama de flujo se compone de figuras que ilustran los pasos o procesos a seguir para alcanzar la soluci´n del problema. o Los s´ ımbolos presentados permiten crear una estructura gr´fica flexible a que ilustra los pasos a seguir. Un diagrama de flujo permite con facilidad la posterior escritura de un programa en alg´n lenguaje de programaci´n. u o
  • 8. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Diagramas de flujo S´ ımbolo utilizado para marcar el inicio y el fin del diagrama de flujo. S´ ımbolo utilizado para ingresar los datos de entrada (expresa lectura). S´ımbolo utilizado para representar un proceso. En su interior se expresan asignaciones, operaciones aritm´ticas, cambios de valor de celdas en memoria, etc. e S´ ımbolos utilizados para indicar la direcci´n del flujo o del diagrama. S´ ımbolo utilizado para representar la estructura selectiva si entonces; en su interior se almacena una condici´n que determina el flujo del diagrama. o S´ ımbolo utilizado para representar la estructura selectiva si entonces/sino; en su interior se almacena una condici´n que determina el flujo del diagrama. o
  • 9. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Diagramas de flujo S´ ımbolo utilizado para representar una decisi´n o m´ltiple. En su inetrior se almacena un selector y u dependiendo de su valor, se sigue por una de las ramas. S´ ımbolo utilizado para representar la impresi´n de un o resultado (expresa escritura). S´ ımbolo utilizado para expresar conexi´n dentro de o una misma p´gina. a S´ ımbolo utilizado para expresar conexi´n entre o p´ginas diferentes. a S´ ımbolo utilizado para expresar un m´dulo de un o problema: para continuar con el flujo normal del diagrama es necesario primero resolver el subproblema enunciado en su interior.
  • 10. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Diagramas de flujo Esquema general de un diagrama de flujo
  • 11. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Reglas para la construcci´n de diagramas de flujo o Todo diagrama de flujo debe tener un inicio y un fin. Las lineas utilizadas para indicar la direcci´n del flujo del diagrama o deben ser rectas verticales y horizontales y no se deben cruzar.
  • 12. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Reglas para la construcci´n de diagramas de flujo o Todas las lineas utilizadas para indicar la direcci´n del flujo del o diagrama deben estar conectadas. El diagrama de flujo debe ser constuido de arriba hacia abajo (top-down) y de izquierda a derecha (left-right). La notaci´n empleada en el diagrama de flujo debe ser independiente o del lenguaje de programaci´n. o Si el diagrama de flujo requiere m´s de una hoja para su construcci´n, a o se debe utilizar conectores adecuados y enumerar las p´ginas a convenientemente. A un s´ımbolo del diagrama (excepto l´ ıneas) no puede llegar m´s de una a l´ ınea.
  • 13. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Ejemplo 3.1 Construya un diagrama de flujo tal que dado los datos A, B, C y D que representan n´meros enteros, escriba los mismos en orden inverso. u Soluci´n o Diagrama de flujo general Diagrama de flujo en DFD
  • 14. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Ejemplo 3.2 Escriba (en papel) un diagrama de flujo que tenga como entradas los datos enteros A y B y escriba el resultado de la siguiente expresi´n: o (A + B)2 3 Implemente el diagrama tambi´n en DFD. e Soluci´n o Consideraciones: Datos: A y B (variables de tipo entero). Para indicar un proceso utilizamos Para asignar un valor o una expresi´n a una variable utilizamos o variable ← expresi´n o valor o
  • 15. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Explicaci´n de las variables: o A, B: variables de tipo entero. RES: variable de tipo real, almacena el resultado de la operaci´n. o # A B RES 1 5 6 40, 33 2 7 10 96,33 3 0 3 3,00 4 12 2 65,33 5 14 -5 27,00
  • 16. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Ejemplo 3.3 Un estudiante obtiene 5 calificaciones a lo largo del semestre. Escriba (en papel) un diagrama de flujo que imprima el promedio de sus calificaciones. Implem´ntelo tambi´n en DFD. e e Soluci´n o Consideraciones: Datos: CAL1, CAL2, CAL3, CAL4, CAL5 variables de tipo real que representan las 5 calificaciones del alumno. El promedio de las calificaciones est´ dado por a CAL1+ CAL2+ CAL3+ CAL4 + CAL5 5
  • 17. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Las observaciones anteriores nos conducen al siguiente diagrama de flujo. CAL1, CAL2, CAL3, CAL4, CAL5: Variables de tipo entero. PRO: Variable de tipo real, almacena el resultado de la operaci´n. o # CAL1 CAL2 CAL3 CAL4 CAL5 PRO 1 8 8,5 9 7 6 7,7 2 9 8 9 7 9 8,4 3 9 10 10 8 9 9,2 4 8,5 9 7,5 6 6,5 7,5 5 7,3 6,8 9,5 8 8,5 8,02
  • 18. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Ejemplo 3.4 Escriba (en papel) un diagrama de flujo que permita calcular e imprimir el cuadrado y el cubo de un entero positivo NUM e implem´ntelo en DFD. e Soluci´n o NUM: variable de tipo entero. CUA: variable de tipo real, almacena el cuadrado del n´mero que se u ingresa. CUB: variable de tipo real, almacena el cubo del n´mero que se ingresa. u # NUM CUA CUB 1 7 49 343 2 15 225 3375 3 8 64 512 4 12 144 1728 5 30 900 27000
  • 19. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Ejemplo 3.5 Escriba (en papel) un diagrama de flujo tal que dado como datos la base y la altura de un rect´ngulo, calcule su per´ a ımetro y ´rea. Realice el diagrama a tambi´n en DFD. e Soluci´n o Consideraciones: Datos: BASE, ALTURA Donde: BASE: variable de tipo real que representa la base del rect´ngulo. a ALTURA: variable de tipo real que representa la altura del rect´ngulo. a Recuerde que: El area de un rect´ngulo est´ dada por ´ a a area = base × altura ´ El per´ ımetro de un rect´ngulo est´ dada por a a ımetro = 2 × (base + altura) per´
  • 20. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Construcci´n de diagramas de flujo o Las observaciones anteriores nos conducen al siguiente diagrama de flujo. BASE, ALTURA: variables de tipo real. AREA: variable de tipo real, almacena el ´rea del rect´ngulo. a a PERIMETRO: variable de tipo real, almacena el per´ ımetro del rec´ngulo. a # BASE ALTURA AREA PERIMETRO 1 8 8,5 9 7 2 9 8 9 7 3 9 10 10 8 4 8,5 9 7,5 6 5 7,3 6,8 9,5 8
  • 21. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Terminolog´ b´sica ıa a Programa: conjunto de instrucciones que ejecuta un computador para alcanzar un resultado espec´ ıfico (Von Neumann, 1946). Un programa se escribe en un lenguaje de programaci´n a partir de o un diagrama de flujo dise˜ado con anterioridad. n Los lenguajes de programaci´n est´n constituidos por un conjunto de o a 1 Reglas sint´cticas: especif´ a ıcan la formaci´n (sint´xis) de instrucciones o a v´lidas. a 2 Reglas sem´nticas: especifican el significado de las instrucciones a v´lidas. a Pasos en la resoluci´n de un problema: o 1 Desarrollo de un algoritmo (soluci´n general). o 2 Construcci´n de un diagrama de flujo. o 3 Construcci´n de un programa en un lenguaje de programaci´n. o o Previo al paso (3), utilizaremos un “lenguaje” llamado pseudoc´digo: o Es independiente de cualquier lenguaje de programaci´n. o Carece del rigor y formalismo expresados en las reglas (1) y (2).
  • 22. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Instrucciones en pseudoc´digo o Lectura de datos: Leer A, VEL, C Proceso: Hacer TEMP ← TEMP + 1 Escritura: Escribir A, VEL
  • 23. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.1) o INVERTIR DATOS { Dado un conjunto de datos de entrada el programa invierte el orden de los mismos y los imprime } { A, B, C y D son variables de tipo entero } 1 Leer A, B, C, D 2 Escribir D, C, B, A Observaciones Todo programa tiene un nombre que lo define y que se elige teniendo en cuenta las reglas para la construcci´n de identificadores. o Entre llaves {· · · } van comentarios que indican la funci´n del programa. o Escribir un programa es sencillo cuando se conoce las instrucciones del pseudoc´digo. La “tarea intelectual” consiste en la construcci´n del o o diagrama de flujo.
  • 24. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.2) o CALCULA { Dado dos enteros A y B, el programa calcula el resultado de una expresi´n } o { A y B son variables de tipo entero, RES es una variable de tipo real } 1 Leer A, B 2 Hacer RES ← (A + B) ∧ 2/3 3 Escribir RES
  • 25. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.3) o PROMEDIO CALIFICACION { Dadas las calificaciones de un estudiante, calcula su promedio } { CAL1, CAL2, CAL3, CAL4, CAL5 y PRO son variables de tipo real} 1 Leer CAL1, CAL2, CAL3, CAL4, CAL5 2 Hacer PRO ← (CAL1 + CAL2 + CAL3 + CAL4 + CAL5)/5 3 Escribir PRO
  • 26. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.4) o CUADRADO CUBO { Dado un entero positivo, el programa calcula el cuadrado y el cubo de dicho n´mero. } u { NUM es una variable de tipo entero, CUA y CUB son variables de tipo real } 1 Leer NUM 2 Hacer CUA ← NUM*NUM 3 Hacer CUB ← NUM∧3 4 Escribir CUA y CUB
  • 27. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.5) o CUADRADO CUBO { Dados la base y la altura de un rect´ngulo, a ımetro y su ´rea. } calcula su per´ a { BASE, ALTURA, AREA Y PERIMETRO son variables de tipo real } 1 Leer BASE, ALTURA 2 Hacer AREA ← BASE*ALTURA 3 Hacer PERIMETRO ← 2*(BASE+ALTURA) 4 Escribir AREA y PERIMETRO
  • 28. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Aspectos b´sicos a “Lenguaje” de alto nivel interpretado, orientado principalmente a computaci´n cient´ o ıfica Pretende ser compatible con MATLAB Proporciona una l´ ınea de comandos interactiva para resolver problemas matem´ticos num´ricamente a e Incluye una colecci´n de algoritmos y funciones matem´ticas o a
  • 29. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Aspectos b´sicos a Ventajas Sencillo de utilizar Software libre: se distribuye bajo licencia GNU, GPL (General Public License) Sint´xis muy similar a MATLAB a C´digo abierto: amplia comunidad de soporte (foros, etc.) o A diferencia de MATLAB. . . No soporta programaci´n orientada a objetos o Capacidad de gr´ficos limitada (GUI’s) a Pocos toolboxes disponibles No dispone de los millones de una compa˜´ como MathWorks, Inc. nıa
  • 30. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Aspectos b´sicos: iniciando GNU Octave: a ~$ octave GNU Octave, version 3.0.1 Copyright (C) 2008 John W. Eaton and others. This is free software; see the source code for copying conditions. There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, type ‘warranty’. Octave was configured for "x86_64-pc-linux-gnu". Additional information about Octave is available at http://www.octave.org. Please contribute if you find this software useful. For more information, visit http://www.octave.org/help-wanted.html Report bugs to <bug@octave.org> (but first, please read http://www.octave.org/bugs.html to learn how to write a helpful report). For information about changes from previous versions, type ‘news’. octave:1>
  • 31. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Algunos operadores aritm´ticos e Operador Operaci´n o Ejemplo Resultado ∧ Potencia 2∧3 8 ∗ Multiplicaci´n o 7∗3 21 / Divisi´n o 10/4 2.5000 + Suma 3−4 −1 − Resta 7−4 3 rem M´dulo (residuo) o rem(10, 3) 1 octave:#> 3+4 octave:#> 4+6/2+3 ans = 7 ans = 10 octave:#> 5/10*2+5 octave:#> (4+6)/(2+3) ans = 6 ans = 2 octave:#> 5/(10*2+5) octave:#> 0∧0 ans = 0.20000 ans = 1 octave:#> 2+4*3^2 octave:#> rem(17,3) ans = 38 ans = 2
  • 32. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Operadores relacionales (de comparaci´n) o Operador Operaci´n o Ejemplo Resultado == Igual 4 == 5 0 != Diferente de 2!=3 1 < Menor que 10 < 4 0 > Mayor que 5>-4 1 <= Menor o igual que 7<=7 1 >= Mayor o igual que 3.5 >= 10 0 octave:#> 1+2>7-3 octave:#> 3>4<5 ans = 0 ans = 1 octave:#> 1<2<3 octave:#> 1/3<0.33333 ans = 1 ans = 0 octave:#> 1>2==2<3 octave:#> 5/3>=11/7 ans = 1 ans = 1 octave:#> 1>2==(2<3) octave:#> 2∧(2/3) < 3∧(3/4) ans = 0 ans = 1
  • 33. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Operadores l´gicos (booleanos) o Operador Operaci´n o Ejemplo Resultado & y 2&3 1 | o 3|5 1 ! negaci´n o !7 0 A B A&B A|B !A Operador Jerarqu´ ıa 0 0 0 0 1 () (mayor) 0 1 0 1 1 ∧ 1 0 0 1 0 ∗, /, rem 1 1 1 1 0 ==, ! =, <, >, <=, >= ! & | (menor) octave:#> 0&1|1 octave:#> 5*4>4&0<3 ans = 1 ans = 1 octave:#> 1&(1|0) octave:#> 2∧(3&0/5)>rem(45,6) ans = 0 ans = 0
  • 34. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Variables y formatos Variables: expresiones (identificadores) asociados a datos almacenados en un sistema de memoria Algunos tipos de datos: Real de doble precisi´n: 8 bytes (15 cifras exactas) o String: ’cadena de caracteres’ octave:#> base=3 octave:#> cadena=’hola’; a=3; base = 3 octave:#> alt=4 octave:#> cadena altura = 4 cadena = hola octave:#> area = base*alt octave:#> a=2*a area = 12 a = 6 octave:#> perim = 2*base+2*alt octave:#> area == 2*a perim = 14 ans = 1
  • 35. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Variables y formatos Tipo Formato π short punto fijo, 5 d´ ıgitos 3.1416 long punto fijo, 15 d´ıgitos 3.14159265358979 short e punto flotante, 5 d´ ıgitos 3.1416e+000 long e punto flotante, 15 d´ ıgitos 3.141592653589793e+000 short g punto fijo o flotante, 5 d´ ıgitos 3.1416 long g punto fijo o flotante, 15 d´ ıgitos 3.14159265358979 octave:#> b=1/3 octave:#> format long e b = 0.33333 octave:#> format long octave:#> c c = 1.23123123123123e-01 octave:#> b octave:#> format b = 0.333333333333333 octave:#> c = 41/333 octave:#> c c = 0.123123123123123 c = 0.12312
  • 36. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Variables predefinidas Variable Uso ans almacena el ultimo resultado ´ pi almacena el valor de π = 3,1415 . . . e almacena el valor de e = 2,7183 . . . √ i almacena el valor de −1 eps epsilon de la m´quina a Inf infinito NaN resultado no n´ merico (Not a Number) u octave:#> pi octave:#> eps ans = 3.1416 ans = 2.22044604925031e-16 octave:#> format long octave:#> 1/0 warning: division by zero ans = Inf octave:#> pi ans = 3.14159265358979 octave:#> 0/0 warning: division by zero octave:#> e ans = NaN ans = 2.71828182845905
  • 37. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Entorno de trabajo Variables utilizadas en una sesi´n de trabajo (who, whos) o Historial de ordenes ejecutadas (↓, ↑) ´ octave:#> who -v *** local user variables: __nargin__ a alt ans area b base c cadena perim octave:#> clear cadena octave:#> who -v *** local user variables: __nargin__ a alt ans area b base c perim
  • 38. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Entorno de trabajo octave:#> who -v *** local user variables: __nargin__ alt area base perim a ans b c octave-3.0.1:32> whos -v *** local user variables: Prot Name Size Bytes Class ==== ==== ==== ===== ===== rw- __nargin__ 1x1 8 double rwd a 1x1 8 double rwd alt 1x1 8 double rwd ans 1x1 1 logical rwd area 1x1 8 double rwd b 1x1 8 double rwd base 1x1 8 double rwd c 1x1 8 double rwd perim 1x1 8 double Total is 9 elements using 65 bytes
  • 39. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Funciones matem´ticas a Funci´n o Uso sqrt(x) calcula la ra´ cuadrada de x ız exp(x) funci´n exponencial o log(x) funci´n logaritmo natural o sin(x) calcula sen(x) cos(x) calcula cos(x) tan(x) calcula tan(x) asin(x) calcula sen−1 (x) acos(x) calcula cos−1 (x) atan(x) calcula tan−1 (x) octave:#> cos(pi) octave:#> cos(a)∧2+sen(a)∧2 ans = -1 ans = 1.0000 octave:#> exp(1) octave:#> log(e) ans = 2.7183 ans = 1 octave:#> 4*atan(1) octave:#> 2*sin(3*pi/2) ans = 3.1416 ans = -2
  • 40. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Instrucciones de entrada/salida Salida de datos: Entero d, i Punto fijo f, g disp("texto") Punto flotante e Caracter c printf("cadena de formato", arg1, arg2,...) Cadena de caracteres s octave:#> disp("¡hola, mundo!") ¡hola, mundo! octave:#> m=3; octave:#> disp(m) 3 octave:#> pulg=2.54; cent=6.4516; octave:#> printf(" %d pulgadas equivalen a %f cen´metros n", m, cent); ı 3 pulgadas equivalen a 6.451600 cent´metros ı octave:#> printf(" %f pulgadas equivalen a %f cent´metros n", pulg, cent); ı 2.540000 pulgadas equivale a 6.451600 cent´metros ı octave:#> printf(" %f pulgadas equivalen a %e cen´metros n", pulg, cent); ı 2.540000 pulgadas equivale a 6.451600e+00 cent´metros ı
  • 41. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Instrucciones de entrada/salida Entrada de datos por teclado: input("texto") input("texto", "s") octave:#> palabra = input("Ingrese una palabra: ","s"); Ingrese una palabra: casa octave:#> palabra palabra = casa octave:#> letras = input("Ingrese el n´mero de letras: "); u Ingrese el n´mero de letras: 4 u octave:#> letras letras = 4 octave:#> printf("La palabra %s tiene %d letras n", palabra, letras); La palabra casa tiene 4 letras
  • 42. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Scripts Archivos de texto plano sin formato, con extensi´n .m, que contienen o una sucesi´n de comandos de Octave o Se editan con cualquier editor de texto (usaremos geany)
  • 43. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos de scripts hola mundo.m % Progarma Hola mundo en Octave, versi´n "emo" o printf("¡Hola, maldito mundo!n"); promedio.m % Calcula el promedio de dos n´meros reales u % Lee los valores de num1 y num2 num1 = input("Ingrese el primer n´mero: "); u num2 = input("Ingrese el segundo n´mero: "); u % Calcula el promedio y lo almacena en la variable prom prom = (num1+num2)/2; % Imprime los n´meros ingresados y su promedio u printf("El promedio de %g y %g es: %g n", num1, num2, prom);
  • 44. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos de scripts pmol.m % Este programa calcula el peso molecular de una molecula % organica. % Calculo de los g/mol de cada elemento. peso C = 12*9 ; peso H = 1*6 ; peso O = 16*4; % Calculo del peso molecular peso molecular = peso C + peso H + peso O % Calculo del porcentaje de oxigeno porcentaje O = peso O/peso molecular*100
  • 45. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos de scripts Ejemplo 5.1 Escriba un programa (script) en Octave que tenga como entradas los datos enteros A y B y escriba el resultado de la siguiente expresi´n: o (A + B)2 3 Soluci´n o operacion.m % Dados dos enteros A y B, calcula % (A+B)∧2/3 % Lee los valores de A y B A = input("Ingrese A: "); B = input("Ingrese B: "); RES = (A+B)∧2/3; % Imprime contenido de la variable RES disp(RES);
  • 46. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplos de scripts ´ Ejemplo 5.2 (Area y per´ ımetro de un rect´ngulo) a Escriba un programa (script) en Octave tal que dado como datos la base y la altura de un rect´ngulo, calcule su per´ a ımetro y area. ´ Soluci´n o rectangulo.m % Dados la base y la altura de un rect´ngulo, el programa a % calcula su ´rea y su per´metro a ı % Lee los valores de la base y la altura BASE = input("Ingrese la base: "); ALTURA = input("Ingrese la altura: "); AREA = BASE*ALTURA; PERIMETRO = 2*(BASE+ALTURA); printf("El ´rea es %f y el per´metro es %f n", AREA, PERIMETRO); a ı
  • 47. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Funciones Son scripts que tienen una sintaxis predefinida Sintaxis de una funci´n o Programas que resultan complejos por medio de function nombre(argumentos) scripts, se simplifican por medio de funciones sentencias Una vez definidas, las funciones se invocan desde end la l´ ınea de comandos o desde un script cuadrado.m octave:#> cuadrado(3) ans = 9 function y = cuadrado(x) % Calcula el cuadrado de octave:#> cuadrado(-2.5678) % un n´mero u ans = 6.5936 y = x*x; end octave:#> cuadrado(t) error: ‘t’ undefined near line 2 column 10 error: evaluating argument list element number 1 octave:#> help cuadrado calcula el cuadrado de un n´mero real u
  • 48. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo de funci´n o ´ Ejemplo 5.3 (Area y per´ ımetro de un rect´ngulo con funciones) a Resuelva el ejemplo (5.2) del rect´ngulo utilizando funciones. a Soluci´n o area.m rectangulo2.m % Dados la base y la altura de un rect´ngulo, el programa a function z = area(x,y) % calcula su ´rea y su per´metro a ı % Calcula el ´rea de un a % Lee los valores de la base y la altura % cuadrado de lados x e y BASE = input("Ingrese la base: "); ALTURA = input("Ingrese la altura: "); z = x*y; AREA = area(BASE,ALTURA); PERIMETRO = perimetro(BASE,ALTURA); end printf("El ´rea es %f y el per´metro es %f n", AREA, PERIMETRO); a ı perimetro.m octave:#> rectangulo2 function z = perimetro(x,y) Ingrese la base: 2 % Calcula el per´metro de un ı Ingrese la altura: 3 % cuadrado de lados x e y El ´rea es 6.000000 y el per´metro es 10.000000 a ı z = 2*(x+y); end
  • 49. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.1 Ejemplo 6.1 Realice un algoritmo (diagrama de flujo, pseudoc´digo) tal que dado el costo o de un art´ıculo vendido y la cantidad de dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo. Implem´ntelo e en DFD. Soluci´n o Datos: PRECIO: variable de tipo real que representa el precio del producto. PAGO: variable de tipo real que representa el pago a realizar por el cliente. Variables de salida: DEVO: variable de tipo real. Almacen el cambio que se le debe entregar al cliente. Nota: asumimos que el pago del cliente es mayor que el precio del producto.
  • 50. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.1 DEVUELTO { Dado el costo de un producto y la cantidad de dinero entregada por el cliente, calcula el vuelto que hay que entregar al cliente. } { PRECIO, PAGO Y DEVO son variables de tipo real. } 1 Leer PRECIO, PAGO 2 Hacer DEVO ← PAGO − PRECIO 3 Escribir DEVO # PRECIO PAGO DEVO 1 34 60 26 2 124.7 213 88,13 3 24.53 100 75,47 4 12 21 9
  • 51. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.2 Ejemplo 6.2 Realice un algoritmo (diagrama de flujo, pseudoc´digo) que reciba como o datos el nombre de un dinosaurio, su peso (en toneladas) y su altura (en pies), y que escriba el nombre del dinosaurio, su peso en kilogramos y su altura en metros. Implem´ntelo en DFD. e Soluci´n o Datos: NOM: variable de tipo cadena de caracteres que indica el nombre del dinosaurio. PES: variable de tipo real que representa el peso del dinosaurio. ALT: variable de tipo real que representa la altura del dinosaurio. Variables de salida: PESKG: variable de tipo real, almacena el peso del dinosaurio en Kg. ALTMT: variable de tipo real, almacena el peso del dinosaurio en mt. Consideraciones: 1 tonelada equivale a 1000 kilogramos. 1 pie equivale a 0.3047 metros.
  • 52. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.2 DINOSAURIO { Dado el nombre de un dinosaurio, su peso en toneladas y su altura en pies, el programa escribe el nombre del dinosaurio, su peso en kilogramos y su altura en metros. } { NOM es una variable de tipo cadena de caracteres. PES, ALT, PESKG, y ALTMT son variables de tipo real. } 1 Leer NOM, PES, ALT 2 Hacer PESOKG ← PESO∗1000 3 Hacer ALTMT ← ALT∗0,3047 4 Escribir NOM, PESOKG, ALTMT # NOM PES ALT PESKG ALTMT 1 tiranosaurio 5 30 5000 9,15 2 poderosaurio 15 90 15000 27,42 3 perderosaurio 50 80 50000 24,37 4 brontosaurio 25 70 25000 21,32
  • 53. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.3 Ejemplo 6.3 En una gasolinera las m´quinas registran el combustible surtido en galones a pero el precio de la gasolina est´ fijado en litros. Realice un algoritmo a (diagrama de flujo, pseudoc´digo) que calcule e imprima el valor que hay o que cobrarle al cliente e implem´ntelo en DFD. e Soluci´n o Datos: GAL: variable de tipo real que representa los galones de gasolina surtidos al cliente. Variables de salida: TOTAL: variable de tipo real, almacena el total que debe pagar el cliente. Consideraciones: 1 gal´n equivale a 3.785 litros. o 1 litro de gasolina cuesta $1480.
  • 54. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.3 GASOLINA { Dado los galones de gasolina surtidos a un cliente, calcula el precio que debe pagar el cliente. } { GAL y TOTAL son variableS de tipo real. } 1 Leer GAL 2 Hacer TOTAL ← GAL∗3,785 ∗ 1480 3 Escribir TOTAL # GAL TOTAL 1 10,38 58146,684 2 15,90 89068,62 3 8,40 47055,12 4 9,66 54113,388
  • 55. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.4 Ejemplo 6.4 Realice un algoritmo (diagrama de flujo, pseudoc´digo) que reciba como o datos el radio y la altura de un cilindro y calcule e imprima su ´rea y a volumen. Implem´ntelo en DFD. e Soluci´n o Datos: RADIO: variable de tipo real que representa el radio del cilindro. ALT: variable de tipo real que representa la altura del cilindro. Variables de salida: VOL: variable de tipo real, almacena el volumen del cilindro. AREA: variable de tipo real, almacena el area del cilindro. ´ Consideraciones: El volumen y el area de un cilindro est´n dados respectivamente por ´ a volumen = πr2 × h y area = 2πr × h donde r es el radio de la base, h es su altura y π = 3,141592 . . .
  • 56. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.4 CILINDRO { Dado el radio y la altura de un cilindro, calcula su ´rea y su volumen.} a { RADIO, ALT, VOL y AREA son variables de tipo real. } 1 Leer RADIO, ALT 2 Hacer VOL ← 3.141592 ∗ RADIO∧2 ∗ ALT 3 Hacer AREA ← 2 ∗ 3,141592∗ RADIO ∗ ALT 4 Escribir VOL, AREA # RADIO ALT VOL AREA 1 45,22 11,60 74519,33 3295,86 2 17,30 8,45 7945,09 918,51 3 69,30 72,40 1092332,40 31524,75 4 125,30 117,40 5790552,70 92427,01
  • 57. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.5 Ejemplo 6.5 Realice un algoritmo (diagrama de flujo, pseudoc´digo) que calcule e o imprima el n´mero de segundos que hay en un determinado n´mero de u u d´ ıas. Implem´ntelo en DFD. e Soluci´n o Datos: DIAS: variable de tipo entero que representa el n´mero de d´ u ıas. Variables de salida: SEG: variable de tipo real. Almacena la cantidad de segundos que hay en un n´mero determinado de d´ u ıas.
  • 58. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.5 SEGUNDOS EN DIAS { Dado un n´mero determinado de d´ u ıas, calcula cu´ntos segundos tienen ´stos. } a e { DIAS es una variable de tipo entero y SEG es una variable de tipo real. } 1 Leer DIAS 2 Hacer SEG ← DIAS∗24 ∗ 60 ∗ 60 3 Escribir DIAS # DIAS SEG 1 1 86400 2 7 604800 3 15 1296000 4 30 2592000
  • 59. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.6 Ejemplo 6.6 Se desea conocer cu´ntos meses han transcurrido entre enero de 1949 y a enero de 2002. Realice un algoritmo (diagrama de flujo, pseudoc´digo) que o resuelva dicho problema e implem´ntelo en DFD. e Soluci´n o Variables: ATRANS: variable de tipo entero; almacena el n´mero de meses que hay u entre 1949 y 2002. MESES { Determina el n´mero de meses que hay u entre 1949 y 2002. } 1 Hacer ATRANS ← (2002 − 1949) ∗ 12 2 Escribir ATRANS
  • 60. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.7 Ejemplo 6.7 (Generalizaci´n del ejemplo 6.6) o Se desea determinar los meses transcurridos entre los inicios de dos a˜os n cualesquiera. Realice un algoritmo (diagrama de flujo, pseudoc´digo) que o resuelva dicho problema e implem´ntelo en DFD. e Soluci´n o Datos: AINICIAL: variable de tipo entero, representa el a˜o inicial. n AFINAL: variable de tipo entero, representa el a˜o final. n ATRANS: variable de tipo entero; almacena el n´mero de a˜os que hay u n entre el a˜o inicial y el a˜o final. n n Variables de salida: MTRANS: variable de tipo entero; almacena el n´mero de meses u transcurridos entre el a˜o inicial y el a˜o final. n n
  • 61. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Ejemplo 6.7 MESES GENERAL { Dado un n´mero determinado de d´ u ıas, calcula cu´ntos segundos tienen ´stos. } a e { DIAS es una variable de tipo entero y SEG es una variable de tipo real. } 1 Leer AINICIAL, AFINAL 2 Hacer ATRANS ← AFINAL−AINICIAL 3 Hacer MTRANS ← 12∗MTRANS 4 Escribir ATRANS # ANICIAL AFINAL MTRANS 1 1982 2008 312 2 1969 1987 216 3 1883 1972 1068 4 1944 1949 60
  • 62. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Referencias O. Cair´ o Metodolog´ de la programaci´n ıa o Segunda edici´n. Alfaomega Grupo Editor, S.A., 2005 o J.W. Eaton GNU Octave: A high-level interactive language for numerical computations Network Theory Ltd., 2002