La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tipos de Datos Abstractos (III) Clase #23 Introducción a la Programación.

Presentaciones similares


Presentación del tema: "Tipos de Datos Abstractos (III) Clase #23 Introducción a la Programación."— Transcripción de la presentación:

1 Tipos de Datos Abstractos (III) Clase #23 Introducción a la Programación

2 2 Resumen de la última clase Vimos los beneficios de los TDAs Ocultar complejidad, simplificar programas Permiten a un grupo de personas trabajar sobre el mismo programa Cada TDA tiene constructores y selectores Estamos analizando el ejemplo del sistema manejador de CDs y cassettes TDA Registro: CrearRegistro, TituloRegistro,, InterpreteRegistro, RegistroVacio, ImprimirRegistro TDA Lista: CrearLista, Insertar, Primero, Siguiente, Imprimir, BuscarT, BuscarI, Borrar

3 3 Manejador de CDs y cassettes: Declaración de estructuras de datos typedef struct { char titulo[LARGO_STR]; char interprete[LARGO_STR]; } Registro; typedef struct { Registro registros[MAX_LISTA]; } Lista;

4 4 Programación de CrearLista e Insertar elemento en lista Lista CrearLista() { int id; Lista l; for(id = 0; id < MAX_LISTA; id++) { l.registros[id] = CrearRegistro("",""); } return l; } Lista Insertar(Lista l, Registro r) { Id id=0; while (! RegistroVacio(l.registros[ id])) id++; if (id < MAX_LISTA-1) l.registros[id]=r; return l; }

5 5 Programación de Buscar por Intérprete #define Id int Id BuscarI(Lista l, Id inicio, char* interp) { int id, listo=FALSE; /* Recorre a partir de inicio buscando interprete */ id = inicio; while (!listo && !RegistroVacio(l.registros[id])) { if (strcmp(InterpreteRegistro(l.registros[id]), interp)==0) /* Se encontro el interprete */ listo = TRUE; else id++; } /* Si se encontro interprete retorna indice */ if (listo) return(id); else return(FIN); }

6 6 Ejercicio: Borrar un elemento de la lista L Lista Borrar(Lista l, Id regId) { int id; id = regId; do { l.registros[id] = l.registros[id+1]; id++; } while (! RegistroVacio(l.registros[id])); return l; }

7 7 Ejercicio: dado el siguiente programa, escriba su correspondiente TDA main(){ int respuesta; Complejo c1,c2,c3; c1 = CrearComplejo(3,4); c2 = CrearComplejo(5,6); c3 = CrearComplejo(3,4); printf("\nQue desea hacer con los numeros complejos ingresados?\n"); printf("suma=1 resta=2 multiplicacion=3: "); scanf("%d", &respuesta); if(respuesta==1) { c3 = sumaC(c1,c2); ImprimirComplejo(c3); } if(respuesta==2) { c3 = restaC(c1, c2); ImprimirComplejo(c3); } if(respuesta==3) { c3 = multiplicaC(c1, c2); ImprimirComplejo(c3); } }


Descargar ppt "Tipos de Datos Abstractos (III) Clase #23 Introducción a la Programación."

Presentaciones similares


Anuncios Google