La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando.

Presentaciones similares


Presentación del tema: "APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando."— Transcripción de la presentación:

1 APUNTADORES EN C

2 MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando funciones. Introducción a las funciones 1. Conceptos previos. Introducción a las funciones 2. Estructura de una funcion. Definicion de una funcion. Invocacion de funciones.

3 REPASO CLASE ANTERIOR Ámbito: Global. Local (Bloque). Ocultamiento de variables. Caja negra #include int a, b = 1, c = 2; int main() { int d = 3, e = 3; { int f = 8; int g = 9; } return 0; } Ámbito global Ámbito local Bloque 1 Bloque 2 #include int a=1; int main() { int a = 3; { int a = 5; } return 0; } Bloque 1 Bloque 2 Variable global a = 1. Ocultamiento de la variable a, global por la variable local al bloque del main. a = 3. Ocultamiento de la variable a, local a la función main por la variable local al bloque definido al interior del main. a = 5.

4 REPASO CLASE ANTERIOR #include declaracion_variables_globales; int main() { declaracion_variables_locales; instruccion_1; instruccion_2;... instruccion_N; return 0; } #include protipo_funciones; declaracion_variables_globales; int main() { declaracion_variables_locales; funcion_1(); funcion_2();... funcion_N(); return 0; } funcion_1() { codigo_funcion_1; }... funcion_N() { codigo_funcion_N; }

5 REPASO CLASE ANTERIOR... Caja negra in_1 in_N out_1 In_2 Función: Nombre. (Con el cual es invocada). Entradas. (Parámetros de la función). Salida. (Valor de retorno si tiene). capitan_planeta(agua, tierra, aire, fuego, corazon); Por sus poderes reunidos yo soy,… EL CAPITAN PLANETA

6 REPASO CLASE ANTERIOR... Caja negra in_1 in_N out_1 In_2 tipo_retorno nombre_funcion(tipo_1,..., tipo_N); tipo_retorno nombre_funcion(tipo_1 param_1,..., tipo_N param_N) { intruccion_1;... instrucción_N; return expresion; } Declaración de la función (Prototipo). Definición de la función

7 REPASO CLASE ANTERIOR #include protipo_funciones; declaracion_variables_globales; int main() { declaracion_variables_locales; funcion_1(); funcion_2();... funcion_N(); return 0; } funcion_1() { codigo_funcion_1; }... funcion_N() { codigo_funcion_N; } #include float suma(float,float); int main() {... float a= suma(2.3,4.1);... return 0; } float suma(float num1, float num2) { float res; res = num1 + num2; return res; }

8 LOS APUNTADORES, Y ESO PA QUE? (1) char doc[1000][80]; Características (Color, autocompletar, etc.). Estructura de datos (Como se almacena la información en memoria). 1000 líneas. 80 car/linea. 80000 caracteres. Que el documento tenga mas de 1000 líneas. Que el numero de caracteres de una línea sea mayor de 80. PROBLEMAS

9 LOS APUNTADORES, Y ESO PA QUE? (2) (+) Estructura de datos (Que sea posible abrir simultáneamente hasta 10 archivos). (+) char doc[50000][1000][10]; 50000 líneas. 1000 car / línea. 10 archivos 500000000 caracteres.

10 LOS APUNTADORES, Y ESO PA QUE? (2) Gasto extravagante de memoria, pues esta se reserva en tiempo de compilación, y dicha reserva se hace tomando el peor de los casos. Problemas en equipos que no posean la RAM suficiente para cargar la aplicación. PROBLEMAS

11 LOS APUNTADORES, Y ESO PA QUE? (2) Gasto extravagante de memoria, pues esta se reserva en tiempo de compilación, y dicha reserva se hace tomando el peor de los casos. Problemas en equipos que no posean la RAM suficiente para cargar la aplicación. PROBLEMAS

12 LOS APUNTADORES, Y ESO PA QUE? (3) Creación de estructuras dinámicas de datos tales como listas y arboles. Llamado de funciones por referencia. Acceso a arreglos y matrices. Oh, y ahora quien podrá ayudarme??? Pos los punteros home!!!. Ya que estos permiten resolver problemas como los anteriores ya que gracias a estos es posible crear estructuras dinámicas de datos en vez de estructuras estáticas. Algunos programadores prefieren los apuntadores por que hacen el código mas eficiente.

13 LOS APUNTADORES Lista de variables #include double a,b; int c = -3,d; int main() { char e = ’A’, f = ‘Z’;... return 0; }

14 LOS APUNTADORES. ALGUNAS DEFINICIONES Variable: Lugar de memoria que puede mantener un valor. Una variable posee tres atributos básicamente. Nombre. Tipo. Dirección. #include char a = ‘H’,b; short c = 6; int main() { int d; float e = 1.0;... return 0; } 0x00404090 0x00404A90 0x00404A9B 0x00504A90 a b c d e H 0 6 xxxx 1.0

15 LOS APUNTADORES. ALGUNAS DEFINICIONES Variable: Lugar de memoria que puede mantener un valor. Una variable posee tres atributos básicamente. Nombre. Tipo. Dirección. #include char a = ‘H’,b; short c = 6; int main() { int d; float e = 1.0;... return 0; } 0x00404090 0x00404A90 0x00404A9B 0x00504A90 a b c d e H 0 6 xxxx 1.0

16 DIRECCION DE MEMORIA #include int main() { float f = 3.14;... return 0; } 248440 f 3.14 0123

17 ¿ENTONCES QUE ES UN APUNTADOR? Apuntador: Un apuntador no es mas que una variable que almacena una dirección de memoria. 1 2 3 4 5 6 7 8

18 ¿ENTONCES QUE ES UN APUNTADOR? #include int main() { int i,j; int *p; p = &i; *p = 5; j = i; return 0; } Apuntador: Un apuntador no es mas que una variable que almacena una dirección de memoria. Acceso indirecto Desreferenciar Referenciar.

19 ¿ENTONCES QUE ES UN APUNTADOR? #include int main() { int i; int *p; p = &i; *p = 5; return 0; }

20 TOME APUNTE PA QUE NO SE DUERMA Declaración de apuntadores. Inicialización de apuntadores. Referenciar (&): Apuntar a una direccion. Desrefereneciar (Indireccion *): Obtencion del valor al que apunta. Punteros a punteros. Punteros void y NULL. Funciones por referencia.

21 FUNCIONES POR REFERENCIA #include void swap(int *, int *); int main() { int a,b; a=5; b=10; printf("%d %d\n",a,b); swap(&a,&b); printf("%d %d\n",a,b); return 0; } void swap(int *i, int *j) { int t; t = *i; *i = *j; *j = t; }

22 TOME APUNTE PA QUE NO SE DUERMA www.google.com http://computer.howstuffworks.com/c.htm http://www.brackeen.com/vga/index.html http://0pointer.de/ http://publications.gbdirect.co.uk/c_book/chapter5/pointers.html http://home.netcom.com/~tjensen/ptr/ch9x.htm http://www.augustcouncil.com/~tgibson/tutorial/ptr.html http://boredzo.org/pointers/ http://cslibrary.stanford.edu/102/PointersAndMemory.pdf http://cslibrary.stanford.edu/

23


Descargar ppt "APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando."

Presentaciones similares


Anuncios Google