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

Slides:



Advertisements
Presentaciones similares
Métodos y parámetros.
Advertisements

Prototipo de compilador didáctico del lenguaje LC99
Funciones y recursividad
El lenguaje C Introducción.
Repaso para la construcción del intérprete 2012
Procedimientos y Funciones
Programación I Teoría III
Programación I Teoría IV
Direcciones, Arreglos y Argumentos de Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
FUNCIONES EN C.
INFORMATICA I Arreglos 1 CLASE 17.
INFORMATICA I Arreglos 2 CLASE 18.
Tema 1. Introducción a la programación (Lenguaje java).
Funcionamiento, programación
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Unidad 3 Punteros.
17/09/2014Catedra de Programacion I1 Programación I Funciones.
Herramientas para el acceso directo a memoria en C++
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
Funciones y procedimientos
FUNCIONES EN C.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Programación I Teoría VI: Recursividad

Creación de Aplicaciones
Diseño de algoritmos “Punteros”
SCJP Sun Certified Programmer for Java 6
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
FUNCIONES EN C. SOBRE FUNCIONES... 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.
Introducción a los punteros
FUNCIONES EN C.
Capítulo 5. Punteros y Cadenas de Caracteres
Programación III Clase 06 Funciones.
Funciones1 PROGRAMACIÓN ESTRUCTURADA EN PSEUDÓCODIGO Profr. Miguel Rodríguez Hernández PROGRAMACIÓN MODULAR O FUNCIONAL.
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Índice. Revisando conceptos acerca de la memoria.
Descomposición Modular. Funciones
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Clase 10 Apuntadores & Memoria Dinámica
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Punteros.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
APUNTADORES.
Programación III Clase 09 Apuntadores. Declaración de Punteros Declaración: type* id; Ejemplo: int* ptr; ptr contendrá entonces una dirección a un entero.
Definición de subprogramas en C
1 Definición y Conversión de datos Agustín J. González ELO-329.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INTRODUCCION A LA PROGRAMACION
LENGUAJE “C” Programación.
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
TIPOS DE DATOS PARCIAL III FUNCIONES. Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman ciertos valores.
MEMORIA DINÁMICA.
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Transcripción de la presentación:

APUNTADORES EN C

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.

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.

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; }

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

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

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; }

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) líneas. 80 car/linea caracteres. Que el documento tenga mas de 1000 líneas. Que el numero de caracteres de una línea sea mayor de 80. PROBLEMAS

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

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

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

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.

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

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; } 0x x00404A90 0x00404A9B 0x00504A90 a b c d e H 0 6 xxxx 1.0

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; } 0x x00404A90 0x00404A9B 0x00504A90 a b c d e H 0 6 xxxx 1.0

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

¿ENTONCES QUE ES UN APUNTADOR? Apuntador: Un apuntador no es mas que una variable que almacena una dirección de memoria

¿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.

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

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.

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; }

TOME APUNTE PA QUE NO SE DUERMA