Tipos de Datos Básicos y Estructurados

8
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áticos Arreglos Dinámicos Listas, Pila, Cola Árbol. Ficheros Primer cuatrimestre de 2011 Pablo A. García

description

Programación, Algoritmos y Estructuras de Datos. Introducción teórica al Trabajo Práctico 4. Tema: Punteros y Arreglos. Enteros Reales Caracteres. Numéricos. Datos Básicos. Puntero. Datos Derivados. Tipos de Datos Básicos y Estructurados. Estáticos. Arreglos. Internos. - PowerPoint PPT Presentation

Transcript of Tipos de Datos Básicos y Estructurados

Page 1: Tipos de Datos Básicos y Estructurados

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ásicosNuméricos

EnterosRealesCaracteres

Datos Derivados Puntero

Datos Estructurados

Internos

Externos

Estáticos Arreglos

DinámicosListas, Pila, Cola

Árbol.

Ficheros

Primer cuatrimestre de 2011 Pablo A. García

Page 2: Tipos de Datos Básicos y Estructurados

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ásicosNuméricos

EnterosRealesCaracteres

Datos Derivados Puntero

Datos Estructurados

Internos

Externos

Estáticos Arreglos

DinámicosListas, Pila, Cola

Árbol.

Ficheros

Primer cuatrimestre de 2011 Pablo A. García

Page 3: Tipos de Datos Básicos y Estructurados

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 punterosnos 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 logeneral una variable contiene directamente un valor específico. Un puntero contiene ladirección de una variable que contiene un valor específico. En este sentido, un nombre devariable se refiere “directamente” a un valor y un puntero se refiere “indirectamente” aun valor.

Primer cuatrimestre de 2011 Pablo A. García

Page 4: Tipos de Datos Básicos y Estructurados

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 NULLno 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 retornaEl 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

ptr a

0xFF0A 70xFF0Aptr a

0xFF8C

Page 5: Tipos de Datos Básicos y Estructurados

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 formatoHexadecimal.Ejercicio ejemplificador (Problema 1 práctica 4):

#include <stdio.h>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

0x40A0

0x4080

0x40C0

j

k

ptr

Page 6: Tipos de Datos Básicos y Estructurados

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. Unaestructura 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 conservansu tamaño durante la ejecución del programa. También existen las estructuras dinámicas dedatos 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.

Page 7: Tipos de Datos Básicos y Estructurados

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 programadorespecifica 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 elementospara 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

-45

6

0

72

1543

-89

C[0]

C[1]

C[2]

C[3]

C[4]C[5]

Posición numérica delelemento dentro del arreglo

C: Nombre del arreglo.El número de posición que aparece dentro de los corchetesSe 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] );

Page 8: Tipos de Datos Básicos y Estructurados

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 derepetició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<stdio.h>

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