Вы находитесь на странице: 1из 12

c 

Nuevamente la función g(x, y) devuelve un solo valor para dos valores de 2


variables de entrada, x e y respectivamente.

Las funciones dentro de los lenguajes de programación se tratan teniendo en


cuenta el criterio anterior.

c : Una función es un grupo de instrucciones cuya ejecución se lleva a


cabo cada vez que se invoca el nombre de la función con valores de entrada y
luego de realizar un cálculo regresa un valor hasta la línea donde se hizo la
llamada a la función.
Toda función regresa un único valor


   : Cuando una función no regresa valor alguno se llama
procedimiento, en todo caso el valor que regresa es nulo. Un procedimiento es un
grupo de instrucciones, que como su nombre lo dice realiza un procedimiento y
nada mas, cuya ejecución se lleva a cabo cada vez que se invoca el nombre del
procedimiento, posiblemente con algunos valores como argumentos.
Todo procedimiento no regresa valores, sino que hace algo como por ejemplo
ordenar, imprimir, intercambiar valores, etc.
4.1.1 ARGUMENTOS DE LAS FUNCIONES

Son los valores de las variables de la función f(x,y,z), en este caso los argumentos
son x, y, z.
± En un procedimiento no interesa el número de argumentos de ingreso, lo que
mas interesa es el proceso que va ha realizar y sobre ello el valor que devuelve.
± En algunos casos los problemas pueden ser solucionados a través de funciones
o procedimientos indistintamente.

En Lenguaje C, main es una función; es decir es la función principal de un


programa.

i  Visual C# para Técnicos Eletrônicos Aprenda RS232, RS485 e


USB com C#
www.portalwebaula.com.brEnlaces patrocinados

4.1.2 CORRESPONDENCIA ENTRE ARGUMENTOS

Se refiere a que los valores de una misma función pueden ser diferentes, pero
siguen n un orden de correspondencia.
Ejemplo: Sea f(a, b, c) = f(m, n, p)=f(4, 5, ± ), en este caso;
a corresponde a m y este a 4 (podría decirse )
b corresponde a n y este a 5 (podría decirse )
c corresponde a p y este a ± (podría decirse )
Como se ve ¡la función f tiene 3 variables o argumentos!.

4.1.3 RECURSIVIDAD

Normalmente una función f puede llamar a una función g y esta a una función h y
así sucesivamente. cuando una función se llama a si misma se dice que sigue un
proceso recursivo. En este caso una función f se llama así misma, o la función f
llama a la función f; estos conceptos pueden ser utilizados para calcular el factorial
de un número o calcular un elemento de la serie del Italiano Fibonacii.

NUNCA LO OLVIDE:
En un proceso recursivo, identifique primero la semilla, si no logra identificarlo,
siga intentando hasta lograrlo.

SEMILLA: Son los valores iniciales de las series que siguen procesos recursivos.
En el factorial: La semilla es 1, para factorial de 0 o 1.
Serie fibonacii: La semilla es 1,1, para fibonacii de 0 o 1.

LLAMADA A UNA FUNCIÓN:


Variable:función(argumentos);

LLAMADA A UN PROCEDIMIENTO:
Procedimiento(argumentos);

?
c



Desde un punto de vista práctico, podemos decir que una función es una parte de un programa
(subrutina) con un nombre, que puede ser invocada (llamada a ejecución) desde otras partes
tantas veces como se desee. Un bloque de código que puede ser ejecutado como una unidad
funcional. Opcionalmente puede recibir valores; se ejecuta y puede devolver un valor. Desde el
punto de vista de la organización, podemos decir que una función es algo que permite un cierto
orden en una maraña de algoritmos. Como resumen de lo anterior podemos concluir que el uso de
funciones se justifica en dos palabras: organización y reutilización del código. Desde este último
punto de vista (reutilización), puede decirse que son un primer paso de la programación genérica (
4.12), ya que representan un algoritmo parametrizado [2].

Una vez expuesta la definición, señalemos que las funciones son la parte central de la
programación C++. Algunos lenguajes, como Pascal, distinguen entre procedimientos
("Procedures") y funciones. En C++ las funciones desempeñan ambos papeles, aunque en cierto
modo, los ficheros C++ desempeñan algunas funcionalidades de lo que, en otros lenguajes como
Modula±2, se denominan módulos [3]. Otra diferencia substancial es que C++  permite el
anidamiento de funciones, es decir, definir funciones dentro de otras. En C++ todas las
funciones se definen a nivel de fichero, con lo que tienen ámbito global al fichero ( 4.1.3 Ámbito
de función).

: existe una excepción a esta regla; se refiere a las funciones miembro de las clases, que
pueden ser declaradas y definidas dentro de las propias clases. Aunque las clases no son por
supuesto funciones en el sentido estricto, si representan cierta compartimentación de datos y
procedimientos (un tipo de "módulos"). Por ejemplo, en C++ es válido el siguiente código:

O O
 

 O OO   
O
  O  

 O  O OO    
  

  O 

 O    



 O  O OO   



  O  

 O OO    



c 

En la jerga de la programación orientada a objetos, las funciones dentro de las clases se


denominan !""# o "$, y las variables dentro de clases, %# !""#
o . El sentido es el mismo que en la programación tradicional (la nomenclatura es más
una cuestión de gustos), si bien referirnos a "propiedades" y "métodos" supone estar utilizando la
programación orientada a objetos y que nos referimos a miembros de una clase. En C++ esta
aclaración puede ser importante, porque es un lenguaje que podríamos llamar "híbrido"; en ciertas
partes puede utilizarse con técnicas de programación tradicional, y en otras con técnicas de POO.

& '

Cada programa C++ debe tener una sola función externa denominada "(), principal ( 4.4.4),
que desde la óptica del programador define el punto de entrada al programa. Las funciones se
declaran en cabeceras (estándar o específicas de usuario) o dentro de los ficheros fuente. Estas
declaraciones son denominadas . En ocasiones la declaración y definición se realiza en
el mismo punto (como ocurre con las variables), aunque es normal colocar al principio del fuente
los "prototipos" de las funciones que serán utilizadas en su interior, y las definiciones en cualquier
otro sitio (generalmente al final). En el caso del ejemplo anterior, la declaración y definición de
func1 se ha realizado en el mismo punto, mientras que la declaración de func2 se realiza dentro del
cuerpo de la clase y la definición en el exterior de esta [1].

La forma general del  de una función es:

      O O   

La forma general de la ' es:

      O O    


  O

! !   O 




Ejemplo:

   "

O
   "   ""

 O OO 

La comunicación entre el programa y las funciones que lo componen se realiza mediante los
argumentos de llamada, los valores devueltos y las variables globales y externas.

( %''

En ocasiones, en especial al tratar la sobrecarga de operadores ( 4.9.18), es conveniente


considerar una invocación del tipo

 O   


como un operador binario ( 4.9); el denominado %'' )* (
4.9.16) que se aplica entre el primer argumento   y el segundo, O   . En
este sentido la invocación anterior sería equivalente a:

 O   

Inicio.

[1] Las funciones miembro de clases (métodos) deben ser declaradas siempre dentro del cuerpo
de la clase, aunque la definición puede estar fuera ( 4.11.2a).

[2] Las funciones han sido definidas como los verbos de los lenguajes de programación (indican
alguna acción). Algunos autores mantienen que la función es una unidad lógica de programación, y
que su extensión debe limitarse al código que pueda incluirse en una pantalla, con objeto de que
pueda tenerse una visión completa de la misma de un solo vistazo y sea más fácil de entender el
funcionamiento de cada unidad lógica del programa.

[3] Los módulos de otros lenguajes pueden ser fácilmente mimetizados en C++ definiendo clases
en las que todos sus miembros sean estáticos

ï 
 

                


      ! "! ! !  


   #  $   " 

           %  & $


               
 

  "       "    # 
  

'    "       %
 &ï

 ()*+,+
 "   "        
 -

 "    $   ()   .$  


 

          .   
#     -#      " " 
"   $    "

// 


#O  $ O%

#O  $ O%

#O  $O %

O O 






   O &  O 



O 


 O  OO 







 O  O 

O 




   O  O &  



O  '  


  

O  !   ! !( !') 

O  !  ! !( !')


   O 



 * 



   O  

O  ! *(+ !' 

 




 O 


ï

          (  


 &#) "  "-      

 "      . ! $  
    

 0 1    !           
       & !  - /!  2   
%   /    # $       #
&(#)"3  4(      )    "  . 
&! $          !  

  "       

55 655       

)  7899 99   

")   5     ":29 $ :;9

)   <  &

?
?

c 
   

/= % 2998   !  ! #

( > &     #  )

c 

' &  " ( #)    "  $


       

' &   à !    " '   
      &#   #! $   &# %?  
?

5?!  & ! "!  



   à   
    "   

 -!  %  & ?  "" ( !
&   -)!  " @   A   
&#   ?     "!  à   à   ?
 ï

*O,-
.*  /0
1* O++

     #!     & %()! ()$


()! ?   B $ C 8 D  &   - 
#   &! -  .    " 
 

5" &   +     &# %()    


" 5!   ()   " < $    &# ()   "

v
   

 #  &  ""      #! "A 


   &      

   &#   ?   #!  !   à   
!    A   "!     !
  "        
' 4  #   &# ï

O2    O   2  O O2 2  


   
O2 2   
O 
O2 2O 
O OO
O 
   " O 
O 

"   4     ! 4   
>!  $    " EF  $   ï

i Y ? 
?? ?? ?
?  ? 
? ?   ?
? ?
i Y ? ?? ? 
? ?
? ?
i 
? 
 
 ?? 
? 
?? ?
? ?? ?

?
?
? ?

"A    ! 



  ! -  &   &# '
4#  @ $        #   &#  
  4# "     G

    !  ? -  &   à  à !
$   4   !   $  H  " 
     &     .!    
   &ï

3 2 O2 2 2'3 2 O2 2 2' 

5.>   -ï  &#    ?   >     
   

   O 3 24 O  


O 
3   
O OO
3 *56 O7
  3 
O 

I>-    &#   ?     $ !   
ï

i 
?
? 
?Y?
?

??
? ?? ?
?   ??
? ?

? ? ?

? ?
?  ? ? ?? ?
? ?
 ??
?

? ?
 ?Y?
? ? ?
? ?
 ?

?
?Y? ??

?
i 
? 
? 
?
? ??? ?
? ?
? ?   ? ?? 
?
!?  ??? ?? ??
?
? 
???" ?
?
    

       &#  -    
&#  à  
   

' #    #  "   &# !  A!
          "    
   &#! $ ?     !   #
 à   àà !  ?    (  # 
à    à ) $  ? %!    &#!    " 


  &  !  ."   # % - 
 #  "     $ % ? 

Y       ?   >     


&#    -  ' &# ?G>()  "   
    #!     &  "" 
%()  ()

 O4
O 
'.'8   
O OO
 8
*3 248
 OO
O 

 &  # ?  &# ?G>()     '


&#  -?        & ! 4 
  A &  " $ ."A ..  #  :   %
  !  &#    #   #! $    
 ?     " 5  @!    5  "   

Y ï       $  "    B  


! % & 5     $ >  
! &%  # $  &! () $ "()ï

 O  2
O 
1''.   
O OO
 1
*  1
.*1
 OO!9   !'
 OO!9 !'.
O 

   O    :   

;        
: 
O OO
   : 7
O 

   O  :   

;       : 
O OO
   : 75
O 

I>-   .   &      
   - %

K
 

' &  $ @  .  #!    
#ï     

   à  à à    à 
à J  .
   

     à 

  4    ! "A   à!  !  !
   &!  ï

i ?
?  ? ?  ?
? 
? ?
i   ??
? ?

?  ?
? ? ? 
?
i  ?
? ? ? 
? 
?
?? ?
??" 
? ?
 ??
 ?#?
? ?
?
?
?"  ?

 4  & &   & $  ï 
     

      à   à  à   


 

'  !   ! # ?    & '
#          &#!  $  "
&#   $        +  
   &  #ï

 OO   2 OO O2 2  


   
O2 2   
O 
O2 2O 
O OO
O 
O 

!     ! K#      


   L ' @ "  %  ?    
!  !           
"!  "A      " .  

   " ?  "    ?!     
   

V ?

Вам также может понравиться