SlideShare una empresa de Scribd logo
Ing. Paulo Guerra 22-Marzo-2010
Objetivos de la Clase Estudiar los conceptos básicos entorno a las funciones en lenguaje C. Revisar la estructura y sintaxis de las funciones.  Analizar la diferencia entre paso de parámetros por valor y dirección. Aplicar todos los conocimientos y capacidades desarrolladas en la solución de problemas
Introducción Una función es un conjunto de líneas de código, diseñada para  realizar una tarea específica . Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para evitar tediosas repeticiones de programación.
Ventajas Permite una mejor estructuración mediante código modular. Reduce el tamaño del código Facilita la escritura y depuración de código Genera código reutilizable
Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
Forma general de una función Donde: tipo,  especifica el tipo de dato del valor devuelto por la función. nombre_función:  es un identificador o nombre válido. lista de parámetros,  es la lista de nombres de variables, reciben los valores de los argumentos cuando se llama a la función.  cuerpo:  bloque de código de la función.
Prototipos de Funciones Antes de escribir una función es necesario informarle al Compilador los tamaños de los valores que se le enviarán al “stack” y el tamaño de los valores que ella retornará al programa invocante. Ejemplo float mi_funcion(int i, char ch ) ;  Observación:  La declaración termina en  ";"
Implementación o definición La definición debe comenzar con un encabezamiento, que debe coincidir totalmente con el prototipo declarado para la misma, y a continuación del mismo, encerradas por llaves se escribirán las sentencias que la componen.
Ejemplo #include <stdio.h>  int suma (int i, int j ); /* PROTOTIPO */  void main( ) { /*Sentencias del Cuerpo de la función.*/  }  int suma (int i, int j ) /* DEFINICIÓN O IMPLEMENTACIÓN  */  { int total; total=i+j; return total; /* RETORNO devolviendo un valor int */  }
Argumentos y Parámetros Argumentos  :   son los valores que se envían a la función en el momento que se realiza su llamada, estos valores pueden ser constantes, variables o expresiones . int cantidad=5; calculo(cantidad , ’A’ , cantidad *2);
Parámetros:  Es la lista de variables que reciben los valores de los argumentos que se pasan a la función. Por lo que deben ser declarados y se comportan como variables locales dentro de la función, creándose al entrar en la función y destruyéndose al salir.  void calculo(int num, char ch, int producto) { /*Sentencias*/ } Los parámetros de esta función toman los valores  num=5, ch=‘A’ y producto=10.
Llamada por valor Este método, también llamado por  paso por valor , copia el valor del argumento en el parámetro de la función en el momento de la llamada. De esta forma los cambios en los parámetros de la función no afectan a las variables (argumentos).
Ejemplo void suma(int x, int y); void main() { int u=12; Suma(u,3); } void suma(int x, int y) { printf(“Suma =%d \n”,x+y); } El resultado será:  15 12 3 3 12 MEMORIA PILA VARIABLE u x y Dirección de Memoria FEE 2 FEE 0 EF 02 EF 00
Llama por dirección Este tipo de llamada usa la dirección real del argumento por lo que los cambios hechos en los parámetros  correspondientes afecta a dichas variables.
Ejemplo. /* función que intercambia el contenido de sus dos argumentos*/ void intercambio(int *x, int* y) { int  aux; aux= *x; *x=*y; *y=aux; } Llamada : Intercambio(&u , &v);
La sentencia return Esta instrucción tiene como objetivo el definir el punto en que se devuelve el control de ejecución al punto de llamada y devolver un valor. Sintaxis return [<valor-devuelto>] ; <valor-devuelto> es opcional; puede ser cualquier expresión que pueda reducirse a un valor del mismo tipo que devuelve la función. Una función puede tener más de un punto de retorno (situación que debe ser evitada en la medida de lo posible), pero se debe tener en cuenta que la ejecución de la función finaliza con la primera ejecución de una sentencia return.
Vida de una variable Cuando definimos una variable dentro de una función, esa variable sólo es válida dentro de la función. Si definimos una variable dentro de main sólo podremos usarla dentro de main. Si por el contrario la definimos como variable global, antes de las funciones, se puede usar en todas las funciones.
Biblioteca estándar de funciones Cada compilador viene con una serie de funciones predefinidas disponibles para su uso, estas son en su mayoría funciones de entrada/salida, de manipulación de cadenas y caracteres y funciones matemáticas. Los prototipos están definidas para Usted por el escritor de su compilador para todas las funciones incluidas en su compilador. La mayoría de los compiladores tienen funciones adicionales predefinidas que no son estándar pero que permiten al programador sacar mayor provecho de su computadora .
Ejercicio 1  Descubre los errores #include <stdio.h>  #include <conio.h>  int main() {  int num1, num2;  int resultado,  printf( &quot;Introduzca dos números: &quot; );  scanf( &quot;%i %i&quot;, &num1, &num2 );  resultado = compara( num1, num2 );  printf( &quot;El mayor de los dos es %i\n&quot;, resultado );  return 0;  } int compara( int a, int b );  {  int mayor;  if ( a>b ) mayor = a;  else  mayor = b;  return mayor;  }
Busca los errores. #include <stdio.h>  int resultado( int parametro )  int main() { int a, b;  a = 2;  b = 3;  printf( &quot;%i&quot;, resultado( a );  return 0;  }  char resultado( int parametro )  {  return parámetro+b;  }
Fuentes Consultadas Luís Joyanes Aguilar, Ignacio Zahonero Martínez  “ Programación en C”. Evelio Granizo Montalvo, “ Lenguaje C Teoría y Ejercicios.” Andrés Marzal, Isabel Gracia,  “Introducción al lenguaje C.”   http://sopa.dis.ulpgc.es/so/cpp/intro_c/introc01.htm http://www.elrincondelc.com/cursoc/cursoc8.html http://www.modelo.edu.mx/univ/virtech/prograc/cfuncion.htm

Más contenido relacionado

PPTX
Funciones C++ modificado
PPTX
Presen iii 26 funciones
PPTX
Funciones en c++
PPT
Funciones en C++
PPT
Funciones en C
DOCX
FUNCIONES EN LENGUAJE C
PPT
FUNCIONES LENGUAJE C
PPT
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Funciones C++ modificado
Presen iii 26 funciones
Funciones en c++
Funciones en C++
Funciones en C
FUNCIONES EN LENGUAJE C
FUNCIONES LENGUAJE C
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario

La actualidad más candente (20)

PPT
Operadores
PPTX
Utilidad de las funciones en c
PPTX
Funciones en Lenguaje C
DOCX
Abstracción en programación
PPT
Tema 7 www.fresymetal.com
PDF
Metodos funciones
DOCX
Apuntes1 elementos del lenguaje c
PPTX
Presentacion
PDF
Punteros a Funciones en C
PPTX
Funciones
PPT
PPTX
Apunfun2
PPT
Estructuras de control
PDF
13 PHP. Un Ejemplo Con Constantes
PPT
Funcionesclase1
PPTX
Estructura basica para_c_
PPTX
Comenzando a programar
PDF
Chuleta de lenguaje C para principiantes
Operadores
Utilidad de las funciones en c
Funciones en Lenguaje C
Abstracción en programación
Tema 7 www.fresymetal.com
Metodos funciones
Apuntes1 elementos del lenguaje c
Presentacion
Punteros a Funciones en C
Funciones
Apunfun2
Estructuras de control
13 PHP. Un Ejemplo Con Constantes
Funcionesclase1
Estructura basica para_c_
Comenzando a programar
Chuleta de lenguaje C para principiantes
Publicidad

Destacado (20)

DOCX
merca 2.0
PPT
Segunda parte base de datos.
DOC
desarrollo personal
PPTX
Funcionamiento del Sistema Bancario
PDF
Solicitud activaciones central de abastos
PDF
Mc kinsey social_impact_bonds_report (1)
PPTX
Presentacion
PPT
Educación a Distancia Licenciatura
DOCX
Tugas kisi2 10 soal
PDF
Github git-cheat-sheet
DOCX
Glosario metodolodia de estudio
PPTX
Articulo Auditoria informática
PDF
PDF
songboystite
PPT
Modelo osi
PDF
Bli2013 resumen-esp
KEY
The Expropriation of Digital Labor 
and What to Do About It
PPTX
The Art Of Netiquette
PDF
844819960 x
DOCX
Desviación estándar y coeficiente de variación.abogado, administrador de e...
merca 2.0
Segunda parte base de datos.
desarrollo personal
Funcionamiento del Sistema Bancario
Solicitud activaciones central de abastos
Mc kinsey social_impact_bonds_report (1)
Presentacion
Educación a Distancia Licenciatura
Tugas kisi2 10 soal
Github git-cheat-sheet
Glosario metodolodia de estudio
Articulo Auditoria informática
songboystite
Modelo osi
Bli2013 resumen-esp
The Expropriation of Digital Labor 
and What to Do About It
The Art Of Netiquette
844819960 x
Desviación estándar y coeficiente de variación.abogado, administrador de e...
Publicidad

Similar a Funciones (20)

PPT
Funcionesenlenguaje c
PDF
Funciones con vectores y matrices1
PDF
vectores y matrices
PDF
Utp pti_s6y7_funciones y variables
PDF
Utp lpi_s6y7_funciones y variables 2012-2
DOCX
Funciones lenguaje c modulo4
DOCX
Elemento 4
PPTX
Funciones en C
PPTX
Funciones
PDF
8448148681
PDF
Algoritmos y lenjuage de programacion
PPT
Funciones
PDF
Presentacion programación 2, lenguaje C.
PDF
Programacion Modular lic en informa.pdf
PDF
Funciones
PDF
Introduccion a C++.pdf
PDF
ESTRUCTURAS DE CONTROL: BUCLES EN C++
PPTX
programación Milton.pptx
Funcionesenlenguaje c
Funciones con vectores y matrices1
vectores y matrices
Utp pti_s6y7_funciones y variables
Utp lpi_s6y7_funciones y variables 2012-2
Funciones lenguaje c modulo4
Elemento 4
Funciones en C
Funciones
8448148681
Algoritmos y lenjuage de programacion
Funciones
Presentacion programación 2, lenguaje C.
Programacion Modular lic en informa.pdf
Funciones
Introduccion a C++.pdf
ESTRUCTURAS DE CONTROL: BUCLES EN C++
programación Milton.pptx

Más de Paulo Guerra Terán (20)

DOCX
Tutorial de uso de slideshared
PDF
Publicacion material
PPT
Bloque 0 pacie
PPT
Investigación
PPTX
Arrays bidimensionales
PPTX
PPT
9 operadores
PPT
11 estructuras de control decision
PPT
10 entrada y salida
PPT
9 operadores
PPT
8 tipos variables constantes
PPTX
7 lenguaje c
PPT
6. windows forms
PPT
1 Plataforma .Net
PPTX
6 Escritura De Algoritmos Programas
PPTX
5 Expresiones
PPTX
PPTX
PPT
2 Flujogramas
Tutorial de uso de slideshared
Publicacion material
Bloque 0 pacie
Investigación
Arrays bidimensionales
9 operadores
11 estructuras de control decision
10 entrada y salida
9 operadores
8 tipos variables constantes
7 lenguaje c
6. windows forms
1 Plataforma .Net
6 Escritura De Algoritmos Programas
5 Expresiones
2 Flujogramas

Último (20)

PDF
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PPTX
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
PPTX
Historia-Clinica-de-Emergencia-Obstetrica 1.10.pptx
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Modelo Educativo SUB 2023versión final.pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
EL aprendizaje adaptativo bajo STEM+H.pdf
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
TOMO II - LITERATURA.pd plusenmas ultras
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
Historia-Clinica-de-Emergencia-Obstetrica 1.10.pptx
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Modelo Educativo SUB 2023versión final.pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
EL aprendizaje adaptativo bajo STEM+H.pdf
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
Manual de Convivencia 2025 actualizado a las normas vigentes

Funciones

  • 1. Ing. Paulo Guerra 22-Marzo-2010
  • 2. Objetivos de la Clase Estudiar los conceptos básicos entorno a las funciones en lenguaje C. Revisar la estructura y sintaxis de las funciones. Analizar la diferencia entre paso de parámetros por valor y dirección. Aplicar todos los conocimientos y capacidades desarrolladas en la solución de problemas
  • 3. Introducción Una función es un conjunto de líneas de código, diseñada para realizar una tarea específica . Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para evitar tediosas repeticiones de programación.
  • 4. Ventajas Permite una mejor estructuración mediante código modular. Reduce el tamaño del código Facilita la escritura y depuración de código Genera código reutilizable
  • 5. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
  • 6. Forma general de una función Donde: tipo, especifica el tipo de dato del valor devuelto por la función. nombre_función: es un identificador o nombre válido. lista de parámetros, es la lista de nombres de variables, reciben los valores de los argumentos cuando se llama a la función. cuerpo: bloque de código de la función.
  • 7. Prototipos de Funciones Antes de escribir una función es necesario informarle al Compilador los tamaños de los valores que se le enviarán al “stack” y el tamaño de los valores que ella retornará al programa invocante. Ejemplo float mi_funcion(int i, char ch ) ; Observación: La declaración termina en &quot;;&quot;
  • 8. Implementación o definición La definición debe comenzar con un encabezamiento, que debe coincidir totalmente con el prototipo declarado para la misma, y a continuación del mismo, encerradas por llaves se escribirán las sentencias que la componen.
  • 9. Ejemplo #include <stdio.h> int suma (int i, int j ); /* PROTOTIPO */ void main( ) { /*Sentencias del Cuerpo de la función.*/ } int suma (int i, int j ) /* DEFINICIÓN O IMPLEMENTACIÓN */ { int total; total=i+j; return total; /* RETORNO devolviendo un valor int */ }
  • 10. Argumentos y Parámetros Argumentos : son los valores que se envían a la función en el momento que se realiza su llamada, estos valores pueden ser constantes, variables o expresiones . int cantidad=5; calculo(cantidad , ’A’ , cantidad *2);
  • 11. Parámetros: Es la lista de variables que reciben los valores de los argumentos que se pasan a la función. Por lo que deben ser declarados y se comportan como variables locales dentro de la función, creándose al entrar en la función y destruyéndose al salir. void calculo(int num, char ch, int producto) { /*Sentencias*/ } Los parámetros de esta función toman los valores num=5, ch=‘A’ y producto=10.
  • 12. Llamada por valor Este método, también llamado por paso por valor , copia el valor del argumento en el parámetro de la función en el momento de la llamada. De esta forma los cambios en los parámetros de la función no afectan a las variables (argumentos).
  • 13. Ejemplo void suma(int x, int y); void main() { int u=12; Suma(u,3); } void suma(int x, int y) { printf(“Suma =%d \n”,x+y); } El resultado será: 15 12 3 3 12 MEMORIA PILA VARIABLE u x y Dirección de Memoria FEE 2 FEE 0 EF 02 EF 00
  • 14. Llama por dirección Este tipo de llamada usa la dirección real del argumento por lo que los cambios hechos en los parámetros correspondientes afecta a dichas variables.
  • 15. Ejemplo. /* función que intercambia el contenido de sus dos argumentos*/ void intercambio(int *x, int* y) { int aux; aux= *x; *x=*y; *y=aux; } Llamada : Intercambio(&u , &v);
  • 16. La sentencia return Esta instrucción tiene como objetivo el definir el punto en que se devuelve el control de ejecución al punto de llamada y devolver un valor. Sintaxis return [<valor-devuelto>] ; <valor-devuelto> es opcional; puede ser cualquier expresión que pueda reducirse a un valor del mismo tipo que devuelve la función. Una función puede tener más de un punto de retorno (situación que debe ser evitada en la medida de lo posible), pero se debe tener en cuenta que la ejecución de la función finaliza con la primera ejecución de una sentencia return.
  • 17. Vida de una variable Cuando definimos una variable dentro de una función, esa variable sólo es válida dentro de la función. Si definimos una variable dentro de main sólo podremos usarla dentro de main. Si por el contrario la definimos como variable global, antes de las funciones, se puede usar en todas las funciones.
  • 18. Biblioteca estándar de funciones Cada compilador viene con una serie de funciones predefinidas disponibles para su uso, estas son en su mayoría funciones de entrada/salida, de manipulación de cadenas y caracteres y funciones matemáticas. Los prototipos están definidas para Usted por el escritor de su compilador para todas las funciones incluidas en su compilador. La mayoría de los compiladores tienen funciones adicionales predefinidas que no son estándar pero que permiten al programador sacar mayor provecho de su computadora .
  • 19. Ejercicio 1 Descubre los errores #include <stdio.h> #include <conio.h> int main() { int num1, num2; int resultado, printf( &quot;Introduzca dos números: &quot; ); scanf( &quot;%i %i&quot;, &num1, &num2 ); resultado = compara( num1, num2 ); printf( &quot;El mayor de los dos es %i\n&quot;, resultado ); return 0; } int compara( int a, int b ); { int mayor; if ( a>b ) mayor = a; else mayor = b; return mayor; }
  • 20. Busca los errores. #include <stdio.h> int resultado( int parametro ) int main() { int a, b; a = 2; b = 3; printf( &quot;%i&quot;, resultado( a ); return 0; } char resultado( int parametro ) { return parámetro+b; }
  • 21. Fuentes Consultadas Luís Joyanes Aguilar, Ignacio Zahonero Martínez “ Programación en C”. Evelio Granizo Montalvo, “ Lenguaje C Teoría y Ejercicios.” Andrés Marzal, Isabel Gracia, “Introducción al lenguaje C.” http://sopa.dis.ulpgc.es/so/cpp/intro_c/introc01.htm http://www.elrincondelc.com/cursoc/cursoc8.html http://www.modelo.edu.mx/univ/virtech/prograc/cfuncion.htm