SlideShare una empresa de Scribd logo
1 de 42
Módulo 5.
                                                      Funciones y Procedimientos




                      rogramación de
                        omputadores


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                               Contenido

         1. FUNCIONES

         3. PROCEDIMIENTOS

         5. PARAMETROS

         7. VARIABLES GLOBALES Y LOCALES


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos

                          1. Funciones
   En Matemáticas                       g: Naturales → Naturales
                                                x     ⇒     x2



            f:{a,b,c} → {0,1,2}
                  a     ⇒ 1
                  b     ⇒ 0
                  c     ⇒ 2

                                    h: Reales x Reales → Reales
                                          (a,b)       ⇒ a2+2*b
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


         Funciones en Programación
   Proceso que recibe valores de entrada
     (parámetros) y retorna un resultado.


       funcion <nombre> (par1:tipo1,...parn:tipon): tipo
       variables
              <declaraciones>
       inicio
              < instrucciones >
             retornar <expresión>
       fin_funcion

Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


             Funciones en Programación

              h: Reales x Reales → Reales
                    (a,b)        ⇒ a2+2*b

       funcion h ( a : real, b : real): real
       variables
       inicio
              retornar a*a+2*b
       fin_funcion


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo 1




              Calcular el cuadrado de
                  diez números


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Programa

funcion cuadrado ( x : entero): entero     Declara-
inicio                                     ción de
       retornar x*x                        Función
fin_funcion
procedimiento principal()
variables
   A, rta, i :entero
inicio
  para (i := 1 hasta 10) hacer
     leer (A)
     rta := cuadrado ( A )               Llamado a
     escribir (rta)                      función
  fin_para
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos


                          Función Cuadrado



                                cuadrado (x)


                                retornar x*x


                                fin_funcion




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                 Programa             Funciones y Procedimientos


                                  INICIO

                                    i := 1


                                   i <=10
                                                      FIN
                                  leer (A)

                            rta :=cuadrado (A)

                               escribir (rta)

                                  i := i+1


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo 2



              Hallar el máximo entre dos
                     enteros A y B




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion maximo (par1:entero,    MEMORIA PROGRAMA
          par2:entero):entero
variables max1:entero               A               B
inicio
 si (par1 >= par2) entonces             -2          10
     max1 := par1
 sino
       max1 := par2               max
 fin_si                                       10
   retornar max1
fin_funcion
                                 MEMORIA maximo
procedimiento principal()
variables
    A, B, max:entero                                    10
inicio                           par1    -2   10
                                               par2
    leer (A)
    leer (B)                                   10
    max := maximo(A,B)              max1
    escribir (max)
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo 3



                Multiplicar dos números
                         enteros




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion mult(x1:entero,
           x2:entero): entero   MEMORIA PROGRAMA
variables z : entero
inicio
     z := x1*x2
    retornar z                   a    5     b     9
fin_funcion
procedimiento principal()             4       45
variables                        c          d 180
    a, b, c, d :entero
inicio
    a := 5                           MEMORIA mult
    b := 9
    c := 4                       x1 54 180 45
                                         x2 9
                                         x2
    d := mult(a,b)
    d := mult(c,d)
    escribir (d)                          z 180
                                          z 45
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos


                               Ejemplo 4


           Dado un arreglo de enteros,
            encontrar el máximo en un
                   sub-arreglo



Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion max_arr
   ( lista: arreglo [5] de entero,
   L1:entero, L2:entero):entero
variables i, temp: entero              MEMORIA PROGRAMA
inicio
   temp := lista[L1]                            3
                                                2
                                                5
                                                4
   para (i := L1+1 hasta L2) hacer      i       0
                                                1   max       8
        si (lista[i]> temp) entonces
            temp := lista[i]
        fin_si                                      t
   fin_para
   retornar temp                            7   2 8 4         0
fin_funcion

procedimiento principal()               MEMORIA max_arr
variables
  i, max:entero
  t:arreglo [5] de entero                   7   2    8 4      0
inicio                                              lista
  para (i := 0 hasta 4) hacer                                 4
                                                              5
                                                              2
                                                              1
       leer (t[i])                     L1 0               i   3
  fin_para
  max := max_arr(t,0,4)                L2 4         temp      8
                                                              7
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos




                Funciones Recursivas
      Función que se define en términos de si misma,
      es decir, el resultado de la función depende de
      resultados de ella misma en otros valores.

            Correcta                                  Incorrecta

                11              ssi ixx≤≤11           11          ssi ixx≤≤11
    f f( ( x)==
         x)                                   f f (x)==
                                                (x)
               f f( ( x−− 1) *xx oo.c . .
                      x 1) *             .c            f (x++11)**xx oo.c . .
                                                        f (x )               .c
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo 5



              Calcular el factorial de un
                       número.



Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
funcion facto
         (par:entero):entero
variables z, fact:entero          MEMORIA PROGRAMA
inicio
    si (par=1 | par=0)
       entonces fact := 1
                                  i 0
                                    1
                                    2    A     0
                                               3     rta    1
                                                            6
    sino z := facto(par-1)
              fact := par*z
     fin_si
     retornar fact              FACTO (3) FACTO (2)
                                          FACTO (0)
fin_funcion                       par        par
                                             par           FACTO (1)
                                                             par
procedimiento principal()          3          0
                                              2                 1
variables                          z          zz                z
   i, A, rta:entero
inicio                             2          1
  para (i := 0 hasta 1) hacer
                                  fact       fact
                                              fact           fact
       leer (A)
       rta :=facto (A)             6           2
                                               1              1
  fin_para
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos


                     2. Procedimientos
     Porciones de código similares que no calculan
     un valor si no que por ejemplo, presentan
     información al usuario, leen una colección de
     datos o calculan más de un valor.

     procedimiento <nombre>(par1:tipo1, ...parn:tipon)
     variables
       <declaraciones>
     inicio
       < Instrucciones >
     fin_procedimiento
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo 1


            Leer un arreglo de 5 enteros y
         escribirlo mediante un procedimiento




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
procedimiento impresion
               (t:arreglo [5] de entero)
                                           MEMORIA PROGRAMA
                                           MEMORIA impresión
variables z:entero
inicio
     para (z:= 0 hasta 4) hacer              1i   2
                                                  1
                                                  0
                                                  5
                                                  4
                                                  3
                                                  2    3   4   5
        escribir (t[z])                                t
     fin_para                               1     2    3   4   5
fin_procedimiento                                     z  5
                                                         4
                                                         3
                                                         2
                                                         1
                                                         0
                                                      lista
procedimiento principal()
variables
  i:entero
  lista:arreglo [5] de entero
inicio
  para (i := 0 hasta 4) hacer                     1 2 3 4 5
       leer (lista [i])
  fin_para
  impresion ( lista )
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos




                           3. Parámetros

        • Parámetros por Valor
        • Parámetros por Referencia




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos




                Parámetros por Valor

       Parámetro por valor: variable local que
       almacena el valor que tiene la constante o la
       variable que se utiliza para llamarla. Su
       modificación no tiene efecto en el resto del
       programa.



Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                       Funciones y Procedimientos




        PROCEDIMIENTO
          PRINCIPAL                                   FUNCION


           a: entero                 funcion facto (t: de entero)
           a:=2
           f= facto(a)


                   2
                   a                                         t
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos




             Parámetros por Referencia

    Parámetro por referencia: variable que
    almacena la referencia a una variable del
    procedimiento o función que invoca. Cualquier
    modificación del parámetro tiene efectos
    en el resto del programa.




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos




     PROCEDIMIENTO
                                               procedimiento
       PRINCIPAL
        a: entero                              act (ref t: entero)
           a:=2
             f= act(a)


                     2

                     a                                      t

Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos



          Parámetro por Referencia
      Parámetro por referencia: en seudo-lenguaje
      se especifica anteponiendo la palabra ref a su
      definición.

      Ejemplo: el parámetro A es por referencia y el
      parámetro B es por valor:

      procedimiento x (ref A:entero, B:entero)

      inicio
        ....
      fin_procedimiento
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo



             Encontrar el triple de un número
                  dado por el usuario




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
PARAMETROS POR REFERENCIA
                                   MEMORIA PROGRAMA
procedimiento triple
              (ref num1:entero)
inicio                             num 12
                                       27
                                        4
                                        6
                                        2
                                        9      i    4
                                                    3
                                                    2
                                                    1
  num1 := num1*3
fin_procedimiento

procedimiento principal()
variables                            MEMORIA triple
      i, num: entero                      27 6 12
inicio
     para (i := 1 hasta 3) hacer
                                   num1   12
                                           4
                                           2
                                           6
                                          27
                                           9
          leer (num)
          triple (num)
          escribir num
     fin_para
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo



               Intercambiar los valores
          de las variables a y b (swapping)



Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
PARAMETROS POR REFERENCIA

procedimiento cambio
   (ref n1:entero, ref n2:entero)   MEMORIA PROGRAMA
variables t: entero
inicio
       t := n1                       a   50   b 32
     n1 := n2
     n2 := t
fin_procedimiento

procedimiento principal()
variables
    a, b: entero                    n1 50
                                       32     n2 32
                                                 50
inicio                                   32 50
     a := 50
     b := 32                                  t   50
     cambio (a, b)
     escribir (a,b)                  MEMORIA cambio
fin_procedimiento
Módulo 5.
                                                      Funciones y Procedimientos




         4. Variables Globales y Locales

       • Variables Globales

       • Variables Locales



Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos




                        Variables Locales

    Variables Locales: son aquellas definidas dentro
    de    cada   función   o    procedimiento.  Sus
    modificaciones sólo son válidas en la función o
    procedimiento en que se han definido.




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos



                    Variables Globales
       Variables Globales: son aquellas
       definidas al comienzo del programa
       (antes     de    cualquier   función    o
       procedimiento). Se pueden usar dentro
       del algoritmo principal y en cada función
       y /o procedimiento definido en el
       programa
                   Regla del buen programador:
          evitar al máximo el uso de variables globales.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos




       Variables globales y locales

        <Definición de variables globales >
        <Definición de funciones y/o procedimientos>

        procedimiento principal ()
        variables
            <declaración de variables locales>
        inicio
             <instrucciones>
        fin_procedimiento

Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos


                             Ejemplo



                       Leer dos enteros y
                       hallar su promedio




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
variables
  num1, num2 :entero
  resultado:real                     VARIABLES GLOBALES

funcion func1 ( x1:entero,            num1          25
                x2:entero): real
variables promedio:real
inicio                                num2          32
    promedio := (x1+x2)/ 2.0
    retornar promedio                 resultado     28.5
fin_funcion

procedimiento principal()            VARIABLES LOCALES
inicio
   leer (num1)                        x1 25       x2 32
   leer (num2)
   resultado := func1 (num1, num2)
fin_procedimiento                      promedio 28.5
Módulo 5.
                                                      Funciones y Procedimientos




                              Ejemplo

          Construir un programa que reciba 3
         valores y devuelva el mínimo valor. El
           programa debe permitir al usuario
           repetir el proceso, si quiere utilizar
                         más datos.


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
procedimiento minimo                void minimo(float a, float b,
( a : real, b : real , c : real ,   float c, float &m)
ref m : real )
inicio                              {
 si (a <=b & a <=c)                     if (a<=b && a<=c)
         entonces                       {
                                                    m = a;
         m :=a                          }
sino                                    else
                                        {
     si (b <=a & b<= c)                         if (b<=a && b<=c)
         entonces                               {
         m:= b                                         m = b;
                                                }
     sino                               else
                                        {
         m :=c                                           m = c;
     fin_si                                     }
fin_si                                      }
fin_procedimiento                   }
procedimiento principal()       int main()
Variables                       {
x, y, z, menor : entero             float x, y, z, menor;
c : carácter                        char c;
Inicio


Haga                            do {
  escribir(“Digite el primer         cout<<"digite el primer número: ";
           número:”)
  leer(x)                            cin >> x;
  escribir(“Digite el segundo        cout<<"digite el segundo número: ";
           número:”)
  leer(y)                            cin >> y;
  escribir(“Digite el tercer         cout<<"digite el tercer número: ";
           número:”)
  leer(z)                            cin >> z;
Módulo 5.
                                                          Funciones y Procedimientos




      minimo(x, y, z, menor)                  minimo(x, y, z, menor);
      escribir(“El menor valor                cout<< "El menor entre: “<<
             entre:”) escribir(x)                  x<<y<<z<<“ es “
             escribir(y)escribir(z)                <<menor<<"n";
             escribir(“es”)
             escribir(menor)
      escribir(“Más datos? s/S”)              cout<<“Mas datos? s/S ";
      leer(c)                                 cin >> c;
    mientras (c =’s’ | c =’S’)               }while ( c=='s' || c=='S') ;
    fin_procedimiento                    }




Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 5.
                                                      Funciones y Procedimientos




                                     FIN

               Gracias por la atención
                       prestada


Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial

Más contenido relacionado

La actualidad más candente

Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012gerardoarbito
 
Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)Videoconferencias UTPL
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datosRiki Tapia
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++Riki Tapia
 
Metodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingenMetodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingenedamcar
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlabjamarzo
 
Computacion aplicada
Computacion aplicadaComputacion aplicada
Computacion aplicadaCarobrigit
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLABdwquezada
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabAdalberto C
 

La actualidad más candente (17)

Estructurada 7
Estructurada 7Estructurada 7
Estructurada 7
 
Módulo 4 (sin estilo)
Módulo 4 (sin estilo)Módulo 4 (sin estilo)
Módulo 4 (sin estilo)
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
 
Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)Metodología y Tecnología de la Programación I (II Bimestre)
Metodología y Tecnología de la Programación I (II Bimestre)
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 
Metodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingenMetodos numericos basicos_para_ingen
Metodos numericos basicos_para_ingen
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 
Computacion aplicada
Computacion aplicadaComputacion aplicada
Computacion aplicada
 
Classpad 330
Classpad 330Classpad 330
Classpad 330
 
Módulo 4
Módulo 4Módulo 4
Módulo 4
 
Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLAB
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlab
 

Destacado

Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...
Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...
Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...Radosław Kuzyk
 
Wybrane zagadnienia rozwoju chińskiego programu kosmicznego
Wybrane zagadnienia rozwoju chińskiego programu kosmicznegoWybrane zagadnienia rozwoju chińskiego programu kosmicznego
Wybrane zagadnienia rozwoju chińskiego programu kosmicznegoRadosław Kuzyk
 
Espen koch
Espen kochEspen koch
Espen kochEspen321
 
Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...
Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...
Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...MLOL
 
research findings 1
research findings 1research findings 1
research findings 1Maci Slater
 
Displacement of large colon in horse
Displacement of large colon in horseDisplacement of large colon in horse
Displacement of large colon in horseRaaz Eve Mishra
 
Social commerce - Vendi di più grazie ai Social Media
Social commerce  - Vendi di più grazie ai Social MediaSocial commerce  - Vendi di più grazie ai Social Media
Social commerce - Vendi di più grazie ai Social MediaRino Scoppio
 

Destacado (13)

Presentation
PresentationPresentation
Presentation
 
Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...
Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...
Kierunki rozwoju nauki polskiej we współczesnym świecie - możliwości i ograni...
 
Web
WebWeb
Web
 
Pampa extendida
Pampa extendidaPampa extendida
Pampa extendida
 
Wybrane zagadnienia rozwoju chińskiego programu kosmicznego
Wybrane zagadnienia rozwoju chińskiego programu kosmicznegoWybrane zagadnienia rozwoju chińskiego programu kosmicznego
Wybrane zagadnienia rozwoju chińskiego programu kosmicznego
 
Espen koch
Espen kochEspen koch
Espen koch
 
Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...
Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...
Chiara Faggiolani, Lorenzo Verna, Maurizio Vivarelli. Lettura e big data: lav...
 
research findings 1
research findings 1research findings 1
research findings 1
 
Arrhythmia
Arrhythmia Arrhythmia
Arrhythmia
 
Logica de predicados
Logica de predicadosLogica de predicados
Logica de predicados
 
Ejercicios punto muerto
Ejercicios punto muertoEjercicios punto muerto
Ejercicios punto muerto
 
Displacement of large colon in horse
Displacement of large colon in horseDisplacement of large colon in horse
Displacement of large colon in horse
 
Social commerce - Vendi di più grazie ai Social Media
Social commerce  - Vendi di più grazie ai Social MediaSocial commerce  - Vendi di più grazie ai Social Media
Social commerce - Vendi di più grazie ai Social Media
 

Similar a Modulo4

Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoEnAutomático
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Metodologia de la programación Capitulo 1: Conceptos Generales
Metodologia de la programación Capitulo 1: Conceptos GeneralesMetodologia de la programación Capitulo 1: Conceptos Generales
Metodologia de la programación Capitulo 1: Conceptos GeneralesVideoconferencias UTPL
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contFranco Guamán
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.pptLeydi Hernandez
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacionBETTYLLANOS
 
Diapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdfDiapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdfFtimaAF
 
Metodologia de la programacion Capitulo 2: La Secuenciación
Metodologia de la programacion Capitulo 2: La SecuenciaciónMetodologia de la programacion Capitulo 2: La Secuenciación
Metodologia de la programacion Capitulo 2: La SecuenciaciónVideoconferencias UTPL
 
Elementos basicos cpp_oto2014
Elementos basicos cpp_oto2014Elementos basicos cpp_oto2014
Elementos basicos cpp_oto2014joshram
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - IntroducciónManuelZambrano67
 
Presentacion ip pseudocodigo_2012_primera_parte
Presentacion ip pseudocodigo_2012_primera_partePresentacion ip pseudocodigo_2012_primera_parte
Presentacion ip pseudocodigo_2012_primera_parteymendal
 
Ejercicios propuestos
Ejercicios propuestosEjercicios propuestos
Ejercicios propuestosNery Davila
 
Ejercicios propuestosc++
Ejercicios propuestosc++Ejercicios propuestosc++
Ejercicios propuestosc++Mauricio Moya
 
Guía de laboratorio no1
Guía de laboratorio no1Guía de laboratorio no1
Guía de laboratorio no1ARMANDOUNIGARRO
 

Similar a Modulo4 (20)

Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Metodologia de la programación Capitulo 1: Conceptos Generales
Metodologia de la programación Capitulo 1: Conceptos GeneralesMetodologia de la programación Capitulo 1: Conceptos Generales
Metodologia de la programación Capitulo 1: Conceptos Generales
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-cont
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
resumen matlab
resumen matlabresumen matlab
resumen matlab
 
Introduccion a C++.pdf
Introduccion a C++.pdfIntroduccion a C++.pdf
Introduccion a C++.pdf
 
Diapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdfDiapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdf
 
Metodologia de la programacion Capitulo 2: La Secuenciación
Metodologia de la programacion Capitulo 2: La SecuenciaciónMetodologia de la programacion Capitulo 2: La Secuenciación
Metodologia de la programacion Capitulo 2: La Secuenciación
 
Elementosbasicosc
Elementosbasicosc Elementosbasicosc
Elementosbasicosc
 
Elementos basicos cpp_oto2014
Elementos basicos cpp_oto2014Elementos basicos cpp_oto2014
Elementos basicos cpp_oto2014
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - Introducción
 
Funciones y módulos en Python
Funciones y módulos en PythonFunciones y módulos en Python
Funciones y módulos en Python
 
Presentacion ip pseudocodigo_2012_primera_parte
Presentacion ip pseudocodigo_2012_primera_partePresentacion ip pseudocodigo_2012_primera_parte
Presentacion ip pseudocodigo_2012_primera_parte
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Ejercicios propuestos
Ejercicios propuestosEjercicios propuestos
Ejercicios propuestos
 
Ejercicios propuestosc++
Ejercicios propuestosc++Ejercicios propuestosc++
Ejercicios propuestosc++
 
Guía de laboratorio no1
Guía de laboratorio no1Guía de laboratorio no1
Guía de laboratorio no1
 

Más de Miguel Angel Zamora

Espinosa, baruch etica demostrada segun el orden geométrico
Espinosa, baruch etica demostrada segun el orden geométricoEspinosa, baruch etica demostrada segun el orden geométrico
Espinosa, baruch etica demostrada segun el orden geométricoMiguel Angel Zamora
 
Habermas jurgen el discurso filosófico de la modernidad
Habermas jurgen   el discurso filosófico de la modernidadHabermas jurgen   el discurso filosófico de la modernidad
Habermas jurgen el discurso filosófico de la modernidadMiguel Angel Zamora
 
Habermas sobre nietzsche y otros ensayos
Habermas   sobre nietzsche y otros ensayosHabermas   sobre nietzsche y otros ensayos
Habermas sobre nietzsche y otros ensayosMiguel Angel Zamora
 
Habermas perfiles filosófico políticos
Habermas    perfiles filosófico políticosHabermas    perfiles filosófico políticos
Habermas perfiles filosófico políticosMiguel Angel Zamora
 
Hegel, georg wilhelm friedrich fenomenología del espíritu [1807][spa]
Hegel, georg wilhelm friedrich   fenomenología del espíritu [1807][spa]Hegel, georg wilhelm friedrich   fenomenología del espíritu [1807][spa]
Hegel, georg wilhelm friedrich fenomenología del espíritu [1807][spa]Miguel Angel Zamora
 
Hegel, georg escritos pedagogicos
Hegel, georg  escritos pedagogicosHegel, georg  escritos pedagogicos
Hegel, georg escritos pedagogicosMiguel Angel Zamora
 
Hegel ciencia de la logica competa
Hegel   ciencia de la logica competaHegel   ciencia de la logica competa
Hegel ciencia de la logica competaMiguel Angel Zamora
 
Hegel introduccion a la historia de la filosofia
Hegel   introduccion a la historia de la filosofiaHegel   introduccion a la historia de la filosofia
Hegel introduccion a la historia de la filosofiaMiguel Angel Zamora
 
Sujetos politicos y alternativas en el actual capitalismo
Sujetos politicos y alternativas en el actual capitalismoSujetos politicos y alternativas en el actual capitalismo
Sujetos politicos y alternativas en el actual capitalismoMiguel Angel Zamora
 
Cp19 marx y engels ante las tensiones del ocaso de la modernidad sergio d...
Cp19 marx y engels ante las tensiones del ocaso de la modernidad     sergio d...Cp19 marx y engels ante las tensiones del ocaso de la modernidad     sergio d...
Cp19 marx y engels ante las tensiones del ocaso de la modernidad sergio d...Miguel Angel Zamora
 
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...Miguel Angel Zamora
 
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...Miguel Angel Zamora
 
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...Miguel Angel Zamora
 
Cp14 ´mercado de alternativas´ y alternativas de izquierda. elementos para l...
Cp14 ´mercado de alternativas´ y alternativas de izquierda.  elementos para l...Cp14 ´mercado de alternativas´ y alternativas de izquierda.  elementos para l...
Cp14 ´mercado de alternativas´ y alternativas de izquierda. elementos para l...Miguel Angel Zamora
 
Cp13 guerra y sujeto la guerra como posibilidad irreductible del estado - fa...
Cp13 guerra y sujeto  la guerra como posibilidad irreductible del estado - fa...Cp13 guerra y sujeto  la guerra como posibilidad irreductible del estado - fa...
Cp13 guerra y sujeto la guerra como posibilidad irreductible del estado - fa...Miguel Angel Zamora
 
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...Miguel Angel Zamora
 
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...Miguel Angel Zamora
 
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...Miguel Angel Zamora
 

Más de Miguel Angel Zamora (20)

Espinosa, baruch etica demostrada segun el orden geométrico
Espinosa, baruch etica demostrada segun el orden geométricoEspinosa, baruch etica demostrada segun el orden geométrico
Espinosa, baruch etica demostrada segun el orden geométrico
 
Habermas jurgen el discurso filosófico de la modernidad
Habermas jurgen   el discurso filosófico de la modernidadHabermas jurgen   el discurso filosófico de la modernidad
Habermas jurgen el discurso filosófico de la modernidad
 
Habermas teoria y praxis
Habermas   teoria y praxisHabermas   teoria y praxis
Habermas teoria y praxis
 
Habermas sobre nietzsche y otros ensayos
Habermas   sobre nietzsche y otros ensayosHabermas   sobre nietzsche y otros ensayos
Habermas sobre nietzsche y otros ensayos
 
Habermas perfiles filosófico políticos
Habermas    perfiles filosófico políticosHabermas    perfiles filosófico políticos
Habermas perfiles filosófico políticos
 
Hegel, georg wilhelm friedrich fenomenología del espíritu [1807][spa]
Hegel, georg wilhelm friedrich   fenomenología del espíritu [1807][spa]Hegel, georg wilhelm friedrich   fenomenología del espíritu [1807][spa]
Hegel, georg wilhelm friedrich fenomenología del espíritu [1807][spa]
 
Hegel, georg escritos pedagogicos
Hegel, georg  escritos pedagogicosHegel, georg  escritos pedagogicos
Hegel, georg escritos pedagogicos
 
Hegel georg historia de jesus
Hegel georg   historia de jesusHegel georg   historia de jesus
Hegel georg historia de jesus
 
Hegel ciencia de la logica competa
Hegel   ciencia de la logica competaHegel   ciencia de la logica competa
Hegel ciencia de la logica competa
 
Hegel introduccion a la historia de la filosofia
Hegel   introduccion a la historia de la filosofiaHegel   introduccion a la historia de la filosofia
Hegel introduccion a la historia de la filosofia
 
Sujetos politicos y alternativas en el actual capitalismo
Sujetos politicos y alternativas en el actual capitalismoSujetos politicos y alternativas en el actual capitalismo
Sujetos politicos y alternativas en el actual capitalismo
 
Cp19 marx y engels ante las tensiones del ocaso de la modernidad sergio d...
Cp19 marx y engels ante las tensiones del ocaso de la modernidad     sergio d...Cp19 marx y engels ante las tensiones del ocaso de la modernidad     sergio d...
Cp19 marx y engels ante las tensiones del ocaso de la modernidad sergio d...
 
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...
 
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...
 
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...Cp17 el marxismo y las posibilidades del socialismo en cuba   actualidad y vi...
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...
 
Cp14 ´mercado de alternativas´ y alternativas de izquierda. elementos para l...
Cp14 ´mercado de alternativas´ y alternativas de izquierda.  elementos para l...Cp14 ´mercado de alternativas´ y alternativas de izquierda.  elementos para l...
Cp14 ´mercado de alternativas´ y alternativas de izquierda. elementos para l...
 
Cp13 guerra y sujeto la guerra como posibilidad irreductible del estado - fa...
Cp13 guerra y sujeto  la guerra como posibilidad irreductible del estado - fa...Cp13 guerra y sujeto  la guerra como posibilidad irreductible del estado - fa...
Cp13 guerra y sujeto la guerra como posibilidad irreductible del estado - fa...
 
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...
 
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...
 
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
 

Modulo4

  • 1. Módulo 5. Funciones y Procedimientos rogramación de omputadores Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 2. Módulo 5. Funciones y Procedimientos Contenido 1. FUNCIONES 3. PROCEDIMIENTOS 5. PARAMETROS 7. VARIABLES GLOBALES Y LOCALES Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 3. Módulo 5. Funciones y Procedimientos 1. Funciones En Matemáticas g: Naturales → Naturales x ⇒ x2 f:{a,b,c} → {0,1,2} a ⇒ 1 b ⇒ 0 c ⇒ 2 h: Reales x Reales → Reales (a,b) ⇒ a2+2*b Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 4. Módulo 5. Funciones y Procedimientos Funciones en Programación Proceso que recibe valores de entrada (parámetros) y retorna un resultado. funcion <nombre> (par1:tipo1,...parn:tipon): tipo variables <declaraciones> inicio < instrucciones > retornar <expresión> fin_funcion Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 5. Módulo 5. Funciones y Procedimientos Funciones en Programación h: Reales x Reales → Reales (a,b) ⇒ a2+2*b funcion h ( a : real, b : real): real variables inicio retornar a*a+2*b fin_funcion Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 6. Módulo 5. Funciones y Procedimientos Ejemplo 1 Calcular el cuadrado de diez números Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 7. Programa funcion cuadrado ( x : entero): entero Declara- inicio ción de retornar x*x Función fin_funcion procedimiento principal() variables A, rta, i :entero inicio para (i := 1 hasta 10) hacer leer (A) rta := cuadrado ( A ) Llamado a escribir (rta) función fin_para fin_procedimiento
  • 8. Módulo 5. Funciones y Procedimientos Función Cuadrado cuadrado (x) retornar x*x fin_funcion Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 9. Módulo 5. Programa Funciones y Procedimientos INICIO i := 1 i <=10 FIN leer (A) rta :=cuadrado (A) escribir (rta) i := i+1 Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 10. Módulo 5. Funciones y Procedimientos Ejemplo 2 Hallar el máximo entre dos enteros A y B Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 11. funcion maximo (par1:entero, MEMORIA PROGRAMA par2:entero):entero variables max1:entero A B inicio si (par1 >= par2) entonces -2 10 max1 := par1 sino max1 := par2 max fin_si 10 retornar max1 fin_funcion MEMORIA maximo procedimiento principal() variables A, B, max:entero 10 inicio par1 -2 10 par2 leer (A) leer (B) 10 max := maximo(A,B) max1 escribir (max) fin_procedimiento
  • 12. Módulo 5. Funciones y Procedimientos Ejemplo 3 Multiplicar dos números enteros Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 13. funcion mult(x1:entero, x2:entero): entero MEMORIA PROGRAMA variables z : entero inicio z := x1*x2 retornar z a 5 b 9 fin_funcion procedimiento principal() 4 45 variables c d 180 a, b, c, d :entero inicio a := 5 MEMORIA mult b := 9 c := 4 x1 54 180 45 x2 9 x2 d := mult(a,b) d := mult(c,d) escribir (d) z 180 z 45 fin_procedimiento
  • 14. Módulo 5. Funciones y Procedimientos Ejemplo 4 Dado un arreglo de enteros, encontrar el máximo en un sub-arreglo Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 15. funcion max_arr ( lista: arreglo [5] de entero, L1:entero, L2:entero):entero variables i, temp: entero MEMORIA PROGRAMA inicio temp := lista[L1] 3 2 5 4 para (i := L1+1 hasta L2) hacer i 0 1 max 8 si (lista[i]> temp) entonces temp := lista[i] fin_si t fin_para retornar temp 7 2 8 4 0 fin_funcion procedimiento principal() MEMORIA max_arr variables i, max:entero t:arreglo [5] de entero 7 2 8 4 0 inicio lista para (i := 0 hasta 4) hacer 4 5 2 1 leer (t[i]) L1 0 i 3 fin_para max := max_arr(t,0,4) L2 4 temp 8 7 fin_procedimiento
  • 16. Módulo 5. Funciones y Procedimientos Funciones Recursivas Función que se define en términos de si misma, es decir, el resultado de la función depende de resultados de ella misma en otros valores. Correcta Incorrecta  11 ssi ixx≤≤11  11 ssi ixx≤≤11 f f( ( x)== x) f f (x)== (x) f f( ( x−− 1) *xx oo.c . . x 1) * .c f (x++11)**xx oo.c . . f (x ) .c Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 17. Módulo 5. Funciones y Procedimientos Ejemplo 5 Calcular el factorial de un número. Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 18. funcion facto (par:entero):entero variables z, fact:entero MEMORIA PROGRAMA inicio si (par=1 | par=0) entonces fact := 1 i 0 1 2 A 0 3 rta 1 6 sino z := facto(par-1) fact := par*z fin_si retornar fact FACTO (3) FACTO (2) FACTO (0) fin_funcion par par par FACTO (1) par procedimiento principal() 3 0 2 1 variables z zz z i, A, rta:entero inicio 2 1 para (i := 0 hasta 1) hacer fact fact fact fact leer (A) rta :=facto (A) 6 2 1 1 fin_para fin_procedimiento
  • 19. Módulo 5. Funciones y Procedimientos 2. Procedimientos Porciones de código similares que no calculan un valor si no que por ejemplo, presentan información al usuario, leen una colección de datos o calculan más de un valor. procedimiento <nombre>(par1:tipo1, ...parn:tipon) variables <declaraciones> inicio < Instrucciones > fin_procedimiento Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 20. Módulo 5. Funciones y Procedimientos Ejemplo 1 Leer un arreglo de 5 enteros y escribirlo mediante un procedimiento Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 21. procedimiento impresion (t:arreglo [5] de entero) MEMORIA PROGRAMA MEMORIA impresión variables z:entero inicio para (z:= 0 hasta 4) hacer 1i 2 1 0 5 4 3 2 3 4 5 escribir (t[z]) t fin_para 1 2 3 4 5 fin_procedimiento z 5 4 3 2 1 0 lista procedimiento principal() variables i:entero lista:arreglo [5] de entero inicio para (i := 0 hasta 4) hacer 1 2 3 4 5 leer (lista [i]) fin_para impresion ( lista ) fin_procedimiento
  • 22. Módulo 5. Funciones y Procedimientos 3. Parámetros • Parámetros por Valor • Parámetros por Referencia Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 23. Módulo 5. Funciones y Procedimientos Parámetros por Valor Parámetro por valor: variable local que almacena el valor que tiene la constante o la variable que se utiliza para llamarla. Su modificación no tiene efecto en el resto del programa. Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 24. Módulo 5. Funciones y Procedimientos PROCEDIMIENTO PRINCIPAL FUNCION a: entero funcion facto (t: de entero) a:=2 f= facto(a) 2 a t Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 25. Módulo 5. Funciones y Procedimientos Parámetros por Referencia Parámetro por referencia: variable que almacena la referencia a una variable del procedimiento o función que invoca. Cualquier modificación del parámetro tiene efectos en el resto del programa. Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 26. Módulo 5. Funciones y Procedimientos PROCEDIMIENTO procedimiento PRINCIPAL a: entero act (ref t: entero) a:=2 f= act(a) 2 a t Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 27. Módulo 5. Funciones y Procedimientos Parámetro por Referencia Parámetro por referencia: en seudo-lenguaje se especifica anteponiendo la palabra ref a su definición. Ejemplo: el parámetro A es por referencia y el parámetro B es por valor: procedimiento x (ref A:entero, B:entero) inicio .... fin_procedimiento Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 28. Módulo 5. Funciones y Procedimientos Ejemplo Encontrar el triple de un número dado por el usuario Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 29. PARAMETROS POR REFERENCIA MEMORIA PROGRAMA procedimiento triple (ref num1:entero) inicio num 12 27 4 6 2 9 i 4 3 2 1 num1 := num1*3 fin_procedimiento procedimiento principal() variables MEMORIA triple i, num: entero 27 6 12 inicio para (i := 1 hasta 3) hacer num1 12 4 2 6 27 9 leer (num) triple (num) escribir num fin_para fin_procedimiento
  • 30. Módulo 5. Funciones y Procedimientos Ejemplo Intercambiar los valores de las variables a y b (swapping) Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 31. PARAMETROS POR REFERENCIA procedimiento cambio (ref n1:entero, ref n2:entero) MEMORIA PROGRAMA variables t: entero inicio t := n1 a 50 b 32 n1 := n2 n2 := t fin_procedimiento procedimiento principal() variables a, b: entero n1 50 32 n2 32 50 inicio 32 50 a := 50 b := 32 t 50 cambio (a, b) escribir (a,b) MEMORIA cambio fin_procedimiento
  • 32. Módulo 5. Funciones y Procedimientos 4. Variables Globales y Locales • Variables Globales • Variables Locales Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 33. Módulo 5. Funciones y Procedimientos Variables Locales Variables Locales: son aquellas definidas dentro de cada función o procedimiento. Sus modificaciones sólo son válidas en la función o procedimiento en que se han definido. Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 34. Módulo 5. Funciones y Procedimientos Variables Globales Variables Globales: son aquellas definidas al comienzo del programa (antes de cualquier función o procedimiento). Se pueden usar dentro del algoritmo principal y en cada función y /o procedimiento definido en el programa Regla del buen programador: evitar al máximo el uso de variables globales. Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 35. Módulo 5. Funciones y Procedimientos Variables globales y locales <Definición de variables globales > <Definición de funciones y/o procedimientos> procedimiento principal () variables <declaración de variables locales> inicio <instrucciones> fin_procedimiento Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 36. Módulo 5. Funciones y Procedimientos Ejemplo Leer dos enteros y hallar su promedio Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 37. variables num1, num2 :entero resultado:real VARIABLES GLOBALES funcion func1 ( x1:entero, num1 25 x2:entero): real variables promedio:real inicio num2 32 promedio := (x1+x2)/ 2.0 retornar promedio resultado 28.5 fin_funcion procedimiento principal() VARIABLES LOCALES inicio leer (num1) x1 25 x2 32 leer (num2) resultado := func1 (num1, num2) fin_procedimiento promedio 28.5
  • 38. Módulo 5. Funciones y Procedimientos Ejemplo Construir un programa que reciba 3 valores y devuelva el mínimo valor. El programa debe permitir al usuario repetir el proceso, si quiere utilizar más datos. Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 39. procedimiento minimo void minimo(float a, float b, ( a : real, b : real , c : real , float c, float &m) ref m : real ) inicio { si (a <=b & a <=c) if (a<=b && a<=c) entonces { m = a; m :=a } sino else { si (b <=a & b<= c) if (b<=a && b<=c) entonces { m:= b m = b; } sino else { m :=c m = c; fin_si } fin_si } fin_procedimiento }
  • 40. procedimiento principal() int main() Variables { x, y, z, menor : entero float x, y, z, menor; c : carácter char c; Inicio Haga do { escribir(“Digite el primer cout<<"digite el primer número: "; número:”) leer(x) cin >> x; escribir(“Digite el segundo cout<<"digite el segundo número: "; número:”) leer(y) cin >> y; escribir(“Digite el tercer cout<<"digite el tercer número: "; número:”) leer(z) cin >> z;
  • 41. Módulo 5. Funciones y Procedimientos minimo(x, y, z, menor) minimo(x, y, z, menor); escribir(“El menor valor cout<< "El menor entre: “<< entre:”) escribir(x) x<<y<<z<<“ es “ escribir(y)escribir(z) <<menor<<"n"; escribir(“es”) escribir(menor) escribir(“Más datos? s/S”) cout<<“Mas datos? s/S "; leer(c) cin >> c; mientras (c =’s’ | c =’S’) }while ( c=='s' || c=='S') ; fin_procedimiento } Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial
  • 42. Módulo 5. Funciones y Procedimientos FIN Gracias por la atención prestada Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial