SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Punteros a Funciones
        G.W.C.
Estructura de la Memoria
                      Sistema Operativo
Memoria Global        Código del Programa 1
                         Memoria Global
                           Pila (Stack)

   Pila (Stack)       Código del Programa 2
                         Memoria Global
                           Pila (Stack)



Montículo (Heap)      Memoria libre del
                         sistema
                      (Montículo o Heap)
Estructura de la Memoria
                 Código Máquina
Código del
Programa         :main
                   instrucciones
                                   3F5000AC
                                   3F5000AD
                   ...             3F5000AE

                 :bolzano          3F5000C8
Memoria Global     instrucciones   3F5000C9
                   ...             3F5000CA

                 :mifunción        3F50019E
                   instrucciones   3F50019F
     Pila          ...             3F5001A0
Declaración de punteros a función
                             tipo (*miPaF) (tipo, …);
:main             3F5000AC
  instrucciones   3F5000AD
  ...             3F5000AE



                             miPaF = mifunción;
:bolzano          3F5000C8
  instrucciones   3F5000C9
  ...             3F5000CA
                              miPaF apunta a 3F50019E
:mifunción        3F50019E
  instrucciones
  ...
                  3F50019F
                  3F5001A0   (* miPaF) (parámetros);
Ejemplo:
    double (*func) (double);
    func = sin;
    printf("%f", (*func) (1.56)) ;
Declaración de un tipo
 typedef tipo (*miTipo) (tipo, …)

 miTipo variable;

Ejemplo:
    typedef double (*miFunc) (double);
    miFunc func;
    func = sin;
    printf("%f", (*func) (1.56)) ;
Utilidad de los Punteros a Funciones
• Creación de procedimientos que requieren una función como
  Parámetro:
   – Creación de procedimientos más versátiles o genéricos (por ejemplo, la
     versión del programa Bolzano que sigue).
   – Funciones personalizables (por ejemplo, una función que ordene elementos
     de una matriz según un criterio dado por una función de tu elección).
   – Interfaces Gráficas de Usuario (GUI).
• Llamado de funciones de forma secuencial
   Esto implica tener una matriz de punteros a función.
      double (*fptrs[])(double, … ) = { … }; //Con una declaración de variable
      miTipo fptrs[] = { … }; //Con una declaración de tipo
       (*fptrs[1])(parámetros); //Se llaman así.
Función de ejemplo Bolzano

 Esta función usa un puntero a función
 para poder buscar ceros en cualquier
función que devuelva double y requiera
      un double como parámetro.
Bolzano                                          No
                                    i < 100           return med
f, min, max




  f(min)      Si                med = (max –
   == 0            return min   min) / 2 + min



  f(max)      Si                    f(med)       Si
    == 0           return max         == 0            return med



  f(max)*     No     return         f(med)*      No
   f(min )                           f(max )          max = med
     <0               NAN              <0




  i=0                            min = med
                                                      i ++

Mais conteúdo relacionado

Mais procurados

Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioLenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Carlos
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
RafaeloRivas
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
die_dex
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
die_dex
 

Mais procurados (20)

Utilidad de las funciones en c
Utilidad de las funciones en cUtilidad de las funciones en c
Utilidad de las funciones en c
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuarioLenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
Lenguajesdeprogramacion c nivel1-unidad1-03-funciones definidas por el usuario
 
Funciones en C++
Funciones en C++Funciones en C++
Funciones en C++
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
 
Semana 3 Fundamentos de Python(Funciones y Métodos)
Semana 3   Fundamentos de Python(Funciones y Métodos)Semana 3   Fundamentos de Python(Funciones y Métodos)
Semana 3 Fundamentos de Python(Funciones y Métodos)
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
 
Funcion scanf
Funcion scanfFuncion scanf
Funcion scanf
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Operadores
OperadoresOperadores
Operadores
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Funciones
FuncionesFunciones
Funciones
 

Destaque

Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
pedreror1
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
N_Alejandrino
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
yesid19
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Nilson Payares
 
Lenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variables
Lenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variablesLenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variables
Lenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variables
Carlos
 
(Meta 5.1)función sin parámetros que no retorna valor dev c++
(Meta 5.1)función sin parámetros que no retorna valor dev c++ (Meta 5.1)función sin parámetros que no retorna valor dev c++
(Meta 5.1)función sin parámetros que no retorna valor dev c++
Eli Diaz
 
Transición entre el mundo universitario y el mundo profesional observatorio...
Transición entre el mundo universitario y el mundo profesional   observatorio...Transición entre el mundo universitario y el mundo profesional   observatorio...
Transición entre el mundo universitario y el mundo profesional observatorio...
Centro de Innovación Profesional
 

Destaque (20)

Estructuras punteros
Estructuras punterosEstructuras punteros
Estructuras punteros
 
Ejemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra funciónEjemplo de paso de funciones como parámetros a otra función
Ejemplo de paso de funciones como parámetros a otra función
 
Introducción c++
Introducción c++Introducción c++
Introducción c++
 
codeblocks1
codeblocks1codeblocks1
codeblocks1
 
Revista digital
Revista digitalRevista digital
Revista digital
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Actividad unidad 4 tic
Actividad unidad 4 ticActividad unidad 4 tic
Actividad unidad 4 tic
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 
Lenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variables
Lenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variablesLenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variables
Lenguajesdeprogramacion c nivel1-unidad1-02-declaracion de variables
 
Clase 6
Clase 6Clase 6
Clase 6
 
0.1 Enbarcadero I
0.1 Enbarcadero I0.1 Enbarcadero I
0.1 Enbarcadero I
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
(Meta 5.1)función sin parámetros que no retorna valor dev c++
(Meta 5.1)función sin parámetros que no retorna valor dev c++ (Meta 5.1)función sin parámetros que no retorna valor dev c++
(Meta 5.1)función sin parámetros que no retorna valor dev c++
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 
0.2 Conceptos Basicos C++ II
0.2  Conceptos Basicos C++ II0.2  Conceptos Basicos C++ II
0.2 Conceptos Basicos C++ II
 
Manual C++ 1era Parte
Manual C++ 1era ParteManual C++ 1era Parte
Manual C++ 1era Parte
 
Transición entre el mundo universitario y el mundo profesional observatorio...
Transición entre el mundo universitario y el mundo profesional   observatorio...Transición entre el mundo universitario y el mundo profesional   observatorio...
Transición entre el mundo universitario y el mundo profesional observatorio...
 

Semelhante a Punteros a Funciones en C

Curso C Ii
Curso C IiCurso C Ii
Curso C Ii
yuli
 
Organizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamientoOrganizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamiento
José Luis Olivares
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
Ronal Palomino
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
karlalopezbello
 

Semelhante a Punteros a Funciones en C (20)

Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Curso C Ii
Curso C IiCurso C Ii
Curso C Ii
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Programación Funcional 101 con Scala y ZIO 2.0
Programación Funcional 101 con Scala y ZIO 2.0Programación Funcional 101 con Scala y ZIO 2.0
Programación Funcional 101 con Scala y ZIO 2.0
 
Arreglos
ArreglosArreglos
Arreglos
 
11funciones 1231096290787715-2
11funciones 1231096290787715-211funciones 1231096290787715-2
11funciones 1231096290787715-2
 
Tema 11
Tema 11Tema 11
Tema 11
 
Curso c ii
Curso c iiCurso c ii
Curso c ii
 
Programación 1: funciones en C
Programación 1: funciones en CProgramación 1: funciones en C
Programación 1: funciones en C
 
Grafica en Matlab de series de fourier
Grafica en Matlab de series de fourierGrafica en Matlab de series de fourier
Grafica en Matlab de series de fourier
 
Funciones
FuncionesFunciones
Funciones
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 
Organizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamientoOrganizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamiento
 
Aprende a usar GDB, el depurador de C
Aprende a usar GDB, el depurador de CAprende a usar GDB, el depurador de C
Aprende a usar GDB, el depurador de C
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
07 funciones
07 funciones07 funciones
07 funciones
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Punteros a Funciones en C

  • 2. Estructura de la Memoria Sistema Operativo Memoria Global Código del Programa 1 Memoria Global Pila (Stack) Pila (Stack) Código del Programa 2 Memoria Global Pila (Stack) Montículo (Heap) Memoria libre del sistema (Montículo o Heap)
  • 3. Estructura de la Memoria Código Máquina Código del Programa :main instrucciones 3F5000AC 3F5000AD ... 3F5000AE :bolzano 3F5000C8 Memoria Global instrucciones 3F5000C9 ... 3F5000CA :mifunción 3F50019E instrucciones 3F50019F Pila ... 3F5001A0
  • 4. Declaración de punteros a función tipo (*miPaF) (tipo, …); :main 3F5000AC instrucciones 3F5000AD ... 3F5000AE miPaF = mifunción; :bolzano 3F5000C8 instrucciones 3F5000C9 ... 3F5000CA miPaF apunta a 3F50019E :mifunción 3F50019E instrucciones ... 3F50019F 3F5001A0 (* miPaF) (parámetros); Ejemplo: double (*func) (double); func = sin; printf("%f", (*func) (1.56)) ;
  • 5. Declaración de un tipo typedef tipo (*miTipo) (tipo, …) miTipo variable; Ejemplo: typedef double (*miFunc) (double); miFunc func; func = sin; printf("%f", (*func) (1.56)) ;
  • 6. Utilidad de los Punteros a Funciones • Creación de procedimientos que requieren una función como Parámetro: – Creación de procedimientos más versátiles o genéricos (por ejemplo, la versión del programa Bolzano que sigue). – Funciones personalizables (por ejemplo, una función que ordene elementos de una matriz según un criterio dado por una función de tu elección). – Interfaces Gráficas de Usuario (GUI). • Llamado de funciones de forma secuencial Esto implica tener una matriz de punteros a función. double (*fptrs[])(double, … ) = { … }; //Con una declaración de variable miTipo fptrs[] = { … }; //Con una declaración de tipo (*fptrs[1])(parámetros); //Se llaman así.
  • 7. Función de ejemplo Bolzano Esta función usa un puntero a función para poder buscar ceros en cualquier función que devuelva double y requiera un double como parámetro.
  • 8. Bolzano No i < 100 return med f, min, max f(min) Si med = (max – == 0 return min min) / 2 + min f(max) Si f(med) Si == 0 return max == 0 return med f(max)* No return f(med)* No f(min ) f(max ) max = med <0 NAN <0 i=0 min = med i ++