La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Tipos de Datos Básicos y Estructurados.

Presentaciones similares


Presentación del tema: "Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Tipos de Datos Básicos y Estructurados."— Transcripción de la presentación:

1 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Tipos de Datos Básicos y Estructurados Datos Básicos Numéricos Enteros Reales Caracteres Datos Derivados Puntero Datos Estructurados Internos Externos EstáticosArreglos Dinámicos Listas, Pila, Cola Árbol. Ficheros Primer cuatrimestre de 2011 Pablo A. García

2 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Tipos de Datos Básicos y Estructurados Datos Básicos Numéricos Enteros Reales Caracteres Datos Derivados Puntero Datos Estructurados Internos Externos EstáticosArreglos Dinámicos Listas, Pila, Cola Árbol. Ficheros Primer cuatrimestre de 2011 Pablo A. García

3 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Punteros Introducción: el puntero es una de las características más poderosas del lenguaje de programación C y también una de las capacidades más difíciles de dominar. Los punteros nos permiten simular llamadas por referencia, crear y manipular estructuras de datos. Definición: (según Deitel y Deitel) Los punteros son variables que contienen direcciones de memoria como sus valores. Por lo general una variable contiene directamente un valor específico. Un puntero contiene la dirección de una variable que contiene un valor específico. En este sentido, un nombre de variable se refiere directamente a un valor y un puntero se refiere indirectamente a un valor. Primer cuatrimestre de 2011 Pablo A. García

4 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Primer cuatrimestre de 2011 Pablo A. García Declaración: int * ptr; & es un operador que regresa int a; la dirección de su operando. a=7; ptr=&a; Un puntero puede ser inicializado a 0, NULL o a una dirección. Un apuntador con valor NULL no apunta a nada. Ponerlo a 0 es igual a NULL, pero se prefiere NULL. La representación del puntero en memoria sería: El operador * se conoce como el operador de indirección o de desreferencia, y nos retorna El valor del objeto hacia el cual su operando apunta. Por ejemplo: printf(%d, *ptr); /* Imprime el valor de la variable a, es decir, 7 */ 7 ptra 0xFF0A 7 ptr a 0xFF8C

5 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. El especificador de formato %p dentro del printf extrae la dirección de memoria en formato Hexadecimal. Ejercicio ejemplificador (Problema 1 práctica 4): #include int j, k; int *ptr; int main(void) { j = 1; k = 2; ptr = &k; printf("\n"); printf("j tiene el valor %d y está almacenado en %p\n",j,&j); printf("k tiene el valor %d y está almacenado en %p\n",k,&k); printf("ptr tiene el valor %p y está almacenado en %p\n",ptr,&ptr); printf("El valor del entero al que apunta ptr es %d\n", *ptr); return 0; } Primer cuatrimestre de 2011 Pablo A. García 1 2 0x40A0 0x4080 0x40C0 j k ptr

6 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Introducción: Los arreglos sirven como una introducción al tema de las estructuras de datos. Los arreglos o arrays son estructuras de datos formadas por elementos del mismo tipo. Una estructura de datos está formada por elementos relacionados por el mismo nombre pero de distintos tipos. Los arreglos y las estructuras son entidades estáticas debido a que conservan su tamaño durante la ejecución del programa. También existen las estructuras dinámicas de datos como son las listas, colas o pilas, que pueden crecer o encogerse durante la ejecución del programa [Deitel y Deitel]. Primer cuatrimestre de 2011 Pablo A. García Arreglos ARREGLOS UNIDIMENSIONALES Definición: Colección de datos del mismo tipo que se referencian por un mismo nombre y que son almacenados en posiciones de memoria contiguas, donde la posición de memoria más baja corresponde al primer elemento o componente del arreglo. Los tipos de elementos almacenados en el arreglo pueden ser cualquier tipo de dato de C. Ejemplos de arreglos: Un listado telefónico. la edad de los alumnos de una clase las temperaturas de cada día de un mes de una ciudad, etc.

7 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Como declarar los arreglos: Los arreglos ocupan espacio en memoria. El programador especifica el tipo de cada elemento y el número de elementos para cada arreglo para que la PC pueda reservar la memoria necesaria. Para indicarle a la PC que reserve 6 elementos para el arreglo entero C hacemos: int c[6]; Otros arreglos pueden ser: char b[10]; o float a[1000]; Primer cuatrimestre de 2011 Pablo A. García C[0] C[1] C[2] C[3] C[4] C[5] Posición numérica del elemento dentro del arreglo C: Nombre del arreglo. El número de posición que aparece dentro de los corchetes Se conoce como subíndice del arreglo. El subíndice puede ser un entero o una expresión entera: C[0]=-45; C[2]=0; C[a+b]+=2; /* C[4]= C[4]+2; C[4]=1545; */ Por ejemplo: para imprimir la suma de los 3 primeros elementos del arreglo hacemos: printf( %d, C[0]+C[1]+C[2] );

8 Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Ejemplo integrador usando un arreglo: en el siguiente programa usamos una estructura de repetición for para inicializar un arreglo de enteros con los primeros 10 números impares, e imprimimos el arreglo en forma tabular. /*Inicializamos el arreglo*/ #include main() { int arreglo[10],i; for(i=0;i<=9;i++) arreglo[i]=2*i+1; printf("%s%10s\n","Subindice","Valor"); for(i=0;i<=9;i++) printf("%9d%10d\n",i,arreglo[i]); getchar(); return 0; } Primer cuatrimestre de 2011 Pablo A. García


Descargar ppt "Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Tipos de Datos Básicos y Estructurados."

Presentaciones similares


Anuncios Google