La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM.

Presentaciones similares


Presentación del tema: "Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM."— Transcripción de la presentación:

1 Programación Técnica1UVM Tipos de Datos

2 Programación Técnica2UVM

3 Programación Técnica3UVM 1.1 Objetivos El estudiante reconocerá los tipos definidos de datos e identificará qué es la abstracción de datos.

4 Programación Técnica4UVM 1.2 Temas a Cubrir Tipos de datos y tamaños Constantes Declaraciones Arreglos Estructuras Apuntadores

5 Programación Técnica5UVM 1.3 Tipos de datos y tamaños char int float double Calificadores: short long

6 Programación Técnica6UVM 1.4 Constantes 1234 (int) 123456789L (long) 1234U (unsigned int) 1234UL (unsigned long) F (float)

7 Programación Técnica7UVM 1.4.1 Constantes Simbólicas #define nombre texto_dereemplazo #include #define LOWER 0 /* lower limit of table */ #define UPPER 300 /* upper limit */ #define STEP 20 /* step size */ /* print Fahrenheit-Celsius table */ main() { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr- 32)); }

8 Programación Técnica8UVM 1.5 Declaraciones int lower, upper, spep; char c; char line[100]; int i=0; int limit=MAXLINE+1; float eps=1.0e-5;

9 Programación Técnica9UVM Ejercicio: Escriba un programa en C que despliegue el tamaño en bytes de los siguientes tipos de datos

10 Programación Técnica10UVM 1.6 Arreglos Conjunto ordenado que contiene un número fijo de elementos (su dimensión) de cualquier tipo válido definido con la condición de que todos deben ser del mismo tipo.

11 Programación Técnica11UVM #include float data[5]; /* data to average and total */ float total; /* the total of the data items */ float average; /* average of the items */ int main() { data[0] = 34.0; data[1] = 27.0; data[2] = 45.0; data[3] = 82.0; data[4] = 22.0; total = data[0] + data[1] + data[2] + data[3] + data[4]; average = total / 5.0; printf("Total %f Average %f\n", total, average); return (0); }

12 Programación Técnica12UVM 1.6.1 Arreglos Multidimensionales static char daytab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; daytab es un arreglo de 2 dimensiones. En C, un arreglo de 2 dimensiones es en realidad un arreglo de 1 dimensión, donde cada uno de sus elementos es un arreglo. Por lo tanto los subíndices se escribe; daytab[i][j] /* [row][col] */ En vez de daytab[i,j] /* EQUIVOCADO */

13 Programación Técnica13UVM static char daytab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; int day_of_year(int year, int month, int day) { int i, leap; leap = year%4 == 0 && year%100 != 0 || year%400 == 0; for (i = 1; i < month; i++) day += daytab[leap][i]; return day; }

14 Programación Técnica14UVM 1.7 Estructuras Una estructura es una colección de una o más variables, posiblemente de tipos diferentes, agrupadas bajo un mismo nombre para un manejo más conveniente

15 Programación Técnica15UVM struct point { int x; int y; }; struct point pt;

16 Programación Técnica16UVM structure-name.member printf("%d,%d", pt.x, pt.y); struct rect { struct point pt1; struct point pt2; }; struct rect screen; screen.pt1.x

17 Programación Técnica17UVM Ejemplo: struct Inventario { char Descripcion[15]; char PartNo[6]; int Cantidad; float Costo; float Precio; };

18 Programación Técnica18UVM struct Coleccion { char titulo [25]; char artista [20]; int numCanciones; Float precio; char FechaDeCompra[9]; } struct Colección cd1={"Yesterday","The Beatles",12,11.95,"08/13/93"};

19 Programación Técnica19UVM 1.7 Apuntadores Un apuntador es una variable que contiene la dirección de una variable p = &c; Se le asigna a c la dirección de la variable c. “p apunta a c”

20 Programación Técnica20UVM int x = 1, y = 2, z[10]; int *ip; /* ip es un apuntador a int */ ip = &x; /* ip apunta a x */ y = *ip; /* y es 1 */ *ip = 0; /* x es 0 */ ip = &z[0]; /* ip apunta a z[0] */

21 Programación Técnica21UVM Si ip apunta al entero x, entonces *ip puede aparecer en cuanquier contexto donde x pueda, por lo tanto: *ip = *ip + 10; incrementa *ip en 10 y = *ip + 1; toma a lo que ip apunta, le suma 1 y le asigna el resultado a y *ip += 1; Incrementa a lo que ip apunta al igual que: ++*ip; y (*ip)++;

22 Programación Técnica22UVM 1.7.1 Apuntadores y argumentos de funciones void swap(int x, int y) { int temp; temp = x; x = y; y = temp; }

23 Programación Técnica23UVM void swap(int *px, int *py) { int temp; temp = *px; *px = *py; *py = temp; }

24 Programación Técnica24UVM Ejercicio: Escriba una función incrementa que reciba una variable entera (paso de parámetros por referencia) y la incremente en 1. Pruébela en un programa que mande llamar a incrementa 10 veces y despliegue el resultado.

25 Programación Técnica25UVM #include void incrementa(int *count_ptr) { (*count_ptr)++; } int main() { int count = 0; while (count < 10) incrementa(&count); return (0); }

26 Programación Técnica26UVM 1.7.2 Apuntadores y arreglos int a[10];

27 Programación Técnica27UVM int *pa; pa = &a[0]; pa apunta al elemento 0 de a ; esto es, pa contiene la dirección de a[0].

28 Programación Técnica28UVM x = *pa; Copia el contenido de a[0] a x. Si pa apunta a un elemento particular de un arreglo, por definición pa+1 apunta al siguiente elemento, pa+i apunta i elementos después de pa, y pa-i apunta i elementos antes. Por lo tanto, si pa apunta a a[0], *(pa+1) se refiere al contenido de a[1], pa+i es la dirección de a[i], y *(pa+i) es el contenido de a[i].

29 Programación Técnica29UVM Tarea # 1 (entrega 24 Feb 2009) Hacer un programa en C que solicite la información de varios libros (título, autor, ISBN), lo guarde en un arreglo de estructuras y al final despliegue la información de los libros capturados.


Descargar ppt "Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM."

Presentaciones similares


Anuncios Google