SlideShare una empresa de Scribd logo
1 de 27
Funciones Capítulo 4
¿Qué son?¿Para qué sirven? ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Diferencia entre  El Programa y las Funciones
Conceptos Básicos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Funciones ,[object Object],[object Object],[object Object],[object Object]
Declaración de Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],tipoDatoRetorno nombreFuncion(lista parámetros);
Implementación de Funciones int potencia(int base, int exponente) { sentencias; } float farenheitACelsius(double celsius) { sentencias; } La primera línea se escribe igual que en la declaración, pero sin el punto y coma. Entre llaves se escriben las sentencias que ejecutan lo que debe realizar la función
¿Cómo Retornar? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de Funciones ,[object Object],[object Object],[object Object],[object Object]
Uso de Funciones (continuación) ,[object Object],void main( ) { int x; … . x = potencia(a,b); … } void main( ) { float c; … . c = farenheitACelsius(f); … } void main( ) { … . printf(“%d”, potencia(a,b)); … } void main( ) { … . printf(“%f”, farenheitACelsius(f)); … }
Aplicación: Juegos de Azar Generación de Números Aleatorios
Generación de Números Aleatorios ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1 + ( rand() % 6);  //Número entre 1 y 6
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Generación de Números Aleatorios
Librería MATH ,[object Object]
Funciones Predicado ,[object Object],[object Object]
[object Object],La Verdad detrás de las Funciones #include <stdio.h> //Declaración de funciones int Factorial(int n); Si vemos s ó lo la funci ó n, tiene sentido, pues se encarga de calcular el factorial de la variable n Si vemos s ó lo el programa principal, tiene sentido, pues se imprime el factorial de todos los n ú meros hasta el 10 ,[object Object],[object Object],[object Object],[object Object],void  main() { int i; for (i = 0; i < 10; i ++)   printf(“%d”, Factorial(i)); } int Factorial   (int n) { int fact,  i ; fact = 1; for(i = 1; i <=n; i++)   fact = fact * i; return (fact); }
Paso de Argumentos a Funciones #include <stdio.h> #include < simpio .h> //Declaración de funciones int Factorial   (int n); void  main() { int i; for (i = 0; i < 10; i ++) printf(“%d”, Factorial(i)); } int Factorial   (int n) { int fact, i; fact = 1; for(i = 1; i <=n; i++) fact = fact * i; return (fact); } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pasos  para   l lamar  a una  Funci ó n ,[object Object],[object Object],[object Object],[object Object],[object Object],#include <stdio.h> int Factorial(int n); void main() { int i; for (i = 0; i < 10; i ++) { printf(“%d”,  Factorial(i) ); } } int Factorial(int n) { int fact, i; fact = 1; for(i = 1; i <=n; i++) { fact = fact * i; } return (fact); } Factorial(0) n 0 n 1 n 2 Factorial(1) Factorial(2) expr 1 expr 1 expr 2 Factorial(3) n 3 expr 6 1 1 2 6
Variables Locales ,[object Object],[object Object],[object Object],main i 0 Al llamar a la función Factorial, se crean 3 variables locales a Factorial, pueden tener cualquier nombre, en este caso: n, fact e i.  Las variables locales del main aun existen, pero, no se pueden ver mientras Factorial este activa. Cuando todo Factorial termina, retorna el valor, y las variables locales al main permanecen iguales como antes de la llamada. La variable i es local a la funcion main 0 1 1 La variable i es local a la funcion main Factorial n fact i main i 0
Más sobre … Un tipo especial de funciones: Procedimientos
Procedimientos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementación de Procedimientos void mostrar Menu  (void) { printf   (“ 1. Tabla de Sumar n ”); printf   (“ 2. Tabla de Restar ”); printf   (“ 3. Tabla de Multiplicar ”); printf   (“ 4. Tabla de Dividir ”); printf   (“ 5. Salir ”); }
[object Object],[object Object],[object Object],Paso  d e Parámetros Al retornar la función no efectuaría el cambio, como lo deseamos. Recordemos que, al pasar parámetros, se efectúa una copia de los valores. Este tipo de paso de parámetros se conoce como  PASO DE PARAMETROS POR VALOR. 3 4 3 4 3 3 4 void  main() { int x, y; printf(“Ingrese x:”); scanf(“%d”,&x); printf(“Ingrese y:”); scanf(“%d”,&y); printf(“x = %d, y= %d”, x, y); intercambiar(x,y); printf(“x = %d, y= %d”, x, y); } void intercambiar(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } x main y Intercambiar a b tmp x main y 3 4
[object Object],[object Object],[object Object],Paso  d e Parámetros  p or Referencia void  main() { int x, y; printf(“Ingrese x:”); scanf(“%d”,&x); printf(“Ingrese y:”); scanf(“%d”,&y); printf(“x = %d, y= %d”, x, y); intercambiar(&x,&y); printf(“x = %d, y= %d”, x, y); } void intercambiar(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } 3 4 Al retornar la función si habrá efectuado el cambio sobre las variables que se pasaron por referencia. 4 3 3 4 3 3 4 x  y main Intercambiar a  b  tmp
Refinamiento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Un Problema más Grande Dar Instrucciones Ingreso y Validacion de Año Imprimir Mes Mostrar Nombre del Mes Determinar que dia de la semana fue el primer dia del mes Dar el respectivo marqen para el primer dia del mes
Calendario Dar Instrucciones Pedir Año Imprimir Calendario Imprimir Nombre del Mes Determinar cuantos días trae el mes Determinar el dia de la semana donde cayo el primer dia Imprimir el Margen para el primer dia del mes Imprimir Calendario de c/ Mes Imprimir el resto de días Dependiendo del mes y de si es bisiesto, elegir total de días Calcular el dia de la semana del primer dia del año, contando el total de días desde 1900 hasta el año actual, considerando los años bisiestos Calcular el dia de la semana del primer dia del mes, sumándole al primer dia del año, el total de días hasta el mes actual, considerando el total de días de cada mes

Más contenido relacionado

La actualidad más candente

Ejemplos de algoritmos
Ejemplos de algoritmosEjemplos de algoritmos
Ejemplos de algoritmosGabriel Diaz
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Derivada Polinomios en C
Derivada Polinomios en CDerivada Polinomios en C
Derivada Polinomios en CAbraham
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++Andy Otañez
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de ProgramaciónKudos S.A.S
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresionesJorge Ñauñay
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en CAbraham
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacionJaime amambal
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalomorenito9001
 
Estructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónEstructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosrasave
 
Llamadas a subalgoritmos
Llamadas a subalgoritmosLlamadas a subalgoritmos
Llamadas a subalgoritmosAbrirllave
 

La actualidad más candente (20)

Ejemplos de algoritmos
Ejemplos de algoritmosEjemplos de algoritmos
Ejemplos de algoritmos
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Derivada Polinomios en C
Derivada Polinomios en CDerivada Polinomios en C
Derivada Polinomios en C
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresiones
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en C
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Algoritmos secuenciales resueldos
Algoritmos  secuenciales resueldosAlgoritmos  secuenciales resueldos
Algoritmos secuenciales resueldos
 
Windows forms c# visual basic .net ejercicios
Windows forms c# visual basic .net ejerciciosWindows forms c# visual basic .net ejercicios
Windows forms c# visual basic .net ejercicios
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalo
 
Type conversion
Type conversionType conversion
Type conversion
 
Datatypes in c
Datatypes in cDatatypes in c
Datatypes in c
 
Estructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la ProgramaciónEstructuras de datos en Introducción a la Programación
Estructuras de datos en Introducción a la Programación
 
Ejercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registrosEjercicios resueltos en el Laboratorio de estructuras struct registros
Ejercicios resueltos en el Laboratorio de estructuras struct registros
 
Llamadas a subalgoritmos
Llamadas a subalgoritmosLlamadas a subalgoritmos
Llamadas a subalgoritmos
 
Error
ErrorError
Error
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 

Similar a Funciones-Capítulo-4-Qué-son-Para-qué-sirven

Similar a Funciones-Capítulo-4-Qué-son-Para-qué-sirven (20)

11funciones 1231096290787715-2
11funciones 1231096290787715-211funciones 1231096290787715-2
11funciones 1231096290787715-2
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
07 funciones
07 funciones07 funciones
07 funciones
 
Presentacion
PresentacionPresentacion
Presentacion
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Funciones
FuncionesFunciones
Funciones
 
Funciones
FuncionesFunciones
Funciones
 
Escuela
EscuelaEscuela
Escuela
 
Escuela
EscuelaEscuela
Escuela
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Fundamentos de la programación
Fundamentos de la programaciónFundamentos de la programación
Fundamentos de la programación
 
Funciones
FuncionesFunciones
Funciones
 
Presentacion capitulo 6
Presentacion capitulo 6Presentacion capitulo 6
Presentacion capitulo 6
 

Más de Ronny Parra

Actitudes ante las discapacidades
Actitudes ante las discapacidadesActitudes ante las discapacidades
Actitudes ante las discapacidadesRonny Parra
 
Caracteres y cadenas en C
Caracteres y cadenas en CCaracteres y cadenas en C
Caracteres y cadenas en CRonny Parra
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en CRonny Parra
 
Creacion de una librería propia en C
Creacion de una librería propia en CCreacion de una librería propia en C
Creacion de una librería propia en CRonny Parra
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CRonny Parra
 
Introduccion a la programación
Introduccion a la programaciónIntroduccion a la programación
Introduccion a la programaciónRonny Parra
 
Diagramas de Interaccion de Objetos
Diagramas de Interaccion de ObjetosDiagramas de Interaccion de Objetos
Diagramas de Interaccion de ObjetosRonny Parra
 
Entorno grafico en Java
Entorno grafico en JavaEntorno grafico en Java
Entorno grafico en JavaRonny Parra
 
Entorno gráfico en Java
Entorno gráfico en JavaEntorno gráfico en Java
Entorno gráfico en JavaRonny Parra
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en JavaRonny Parra
 
Conceptos basicos de Ecologia
Conceptos basicos de EcologiaConceptos basicos de Ecologia
Conceptos basicos de EcologiaRonny Parra
 
Diagramas de casos de uso
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de usoRonny Parra
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de DatosRonny Parra
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: AppletsRonny Parra
 

Más de Ronny Parra (20)

Actitudes ante las discapacidades
Actitudes ante las discapacidadesActitudes ante las discapacidades
Actitudes ante las discapacidades
 
Caracteres y cadenas en C
Caracteres y cadenas en CCaracteres y cadenas en C
Caracteres y cadenas en C
 
Archivos en C
Archivos en CArchivos en C
Archivos en C
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
Creacion de una librería propia en C
Creacion de una librería propia en CCreacion de una librería propia en C
Creacion de una librería propia en C
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 
Introduccion a la programación
Introduccion a la programaciónIntroduccion a la programación
Introduccion a la programación
 
Threads en Java
Threads en JavaThreads en Java
Threads en Java
 
Eventos en Java
Eventos en JavaEventos en Java
Eventos en Java
 
Diagramas de Interaccion de Objetos
Diagramas de Interaccion de ObjetosDiagramas de Interaccion de Objetos
Diagramas de Interaccion de Objetos
 
Entorno grafico en Java
Entorno grafico en JavaEntorno grafico en Java
Entorno grafico en Java
 
Entorno gráfico en Java
Entorno gráfico en JavaEntorno gráfico en Java
Entorno gráfico en Java
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en Java
 
Clases Anidadas
Clases AnidadasClases Anidadas
Clases Anidadas
 
Conceptos basicos de Ecologia
Conceptos basicos de EcologiaConceptos basicos de Ecologia
Conceptos basicos de Ecologia
 
Diagramas de casos de uso
Diagramas de casos de usoDiagramas de casos de uso
Diagramas de casos de uso
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: Applets
 

Funciones-Capítulo-4-Qué-son-Para-qué-sirven

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Implementación de Funciones int potencia(int base, int exponente) { sentencias; } float farenheitACelsius(double celsius) { sentencias; } La primera línea se escribe igual que en la declaración, pero sin el punto y coma. Entre llaves se escriben las sentencias que ejecutan lo que debe realizar la función
  • 8.
  • 9.
  • 10.
  • 11. Aplicación: Juegos de Azar Generación de Números Aleatorios
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Más sobre … Un tipo especial de funciones: Procedimientos
  • 21.
  • 22. Implementación de Procedimientos void mostrar Menu (void) { printf (“ 1. Tabla de Sumar n ”); printf (“ 2. Tabla de Restar ”); printf (“ 3. Tabla de Multiplicar ”); printf (“ 4. Tabla de Dividir ”); printf (“ 5. Salir ”); }
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Calendario Dar Instrucciones Pedir Año Imprimir Calendario Imprimir Nombre del Mes Determinar cuantos días trae el mes Determinar el dia de la semana donde cayo el primer dia Imprimir el Margen para el primer dia del mes Imprimir Calendario de c/ Mes Imprimir el resto de días Dependiendo del mes y de si es bisiesto, elegir total de días Calcular el dia de la semana del primer dia del año, contando el total de días desde 1900 hasta el año actual, considerando los años bisiestos Calcular el dia de la semana del primer dia del mes, sumándole al primer dia del año, el total de días hasta el mes actual, considerando el total de días de cada mes