1. tipos de datos ej

18
TIPOS DE DATOS: EJERCICIOS ESTRUCTURAS DE DATOS

Upload: jorge-centeno-borge

Post on 17-Dec-2015

6 views

Category:

Documents


0 download

DESCRIPTION

Tipos de Datos

TRANSCRIPT

  • TIPOS DE DATOS: EJERCICIOS ESTRUCTURAS DE DATOS

  • RECUERDE * Y &Si tengo una variable yDeseo obtener su direccin de memoria antepongo &Si tengo un puntero y Deseo conocer que almacena, antepongo *Son operadores que permiten conversin de datosint *pta, a=5, b;pta = &a; //a es de tipo int, y con el & se obtiene un valor int *b = *pta; // pta es de tipo int *, y con el * se obtiene un valor int

  • ERRORESEncuentre los errores en cada lnea:pta = *a;ptb = &pta;pta = 8;ptb = ptb + 3;ptb = &NULL;b = 8;*ptb = b;ptb = a + 10;printf(%d, pta + ptb);int *pta, *ptb, a, b;Que pta apunte a aQue ptb apunte al mismo sitio que ptaQue pta cambie de contenido a 8Que ptb cambie de contenido aumentando 3 unidadesQue ptb apunte a NULLQue b almacene 8Que ptb apunte a bQue ptb cambie de contenido a a + 10Imprima la suma de los contenidos de pta y ptb

  • EL DESTINO DE UN PUNTEROUn puntero puede tener dos posibles caminos durante su existenciaPuede apuntar a un espacio de memoria de otra variable.int *a, b = 10;a = &b; //a no tiene memoria propia, es un ESPEJO de bPuede apuntar a un espacio de memoria propio. Ejemploint *a, b = 10;a = malloc (sizeof (int));a = b; //a almacena en su propio cajn de memoria el mismo valor que b

  • RESULTADOS Y ERRORESDescubra los errores

    char *pta, car1;*pta = car1;Determine el resultado que almacenan las variables al final

    int *ptc, b;b = malloc ( sizeof ( int ) );*b = 8;ptc = malloc(sizeof(int));ptc = b+5;free(*ptc);b = *ptc + 10;int *ptc, *ptn, b=20;ptc = &b;ptn = malloc ( sizeof (int));*ptn = b + 15;*ptc = *ptc -1;ptc = ptn;*ptc = 2;

  • ARREGLOS Y PUNTEROS: RESULTADOSint AE[4] = {4,1,5,2}, *p;int i;p = AE;for(i = 0; i < 4; i++){p[i] = p[i] + 3;}p = malloc(sizeof(int)*9);for(i = 0; i < 9; i++){p[i] = 5;}

  • ARITMETICA DE PUNTEROS: CAMBIAR PROGRAMACambie el cdigo anterior para usar matemtica de punterosint AE[4] = {4,1,5,2}, *p;int i;p = AE;for(i = 0; i < 4; i++){p[i] = p[i] + 3;}p = malloc(sizeof(int)*9);for(i = 0; i < 9; i++){p[i] = 5;}

  • ARITMETICA DE PUNTEROS: RESUELVADeclare un puntero a char llamado B y otro llamado CAsgnele memoria a B para 30 caracteresCopie en B una palabra cualquieraUsando aritmtica de punteros, modifique todos los caracteres de la cadena para que pase de minus. a mayus.Usando aritmtica de punteros C debe apuntar al carcter de la mitad de la cadena BImprima C, que sale en pantalla?

  • ARITMETICA DE PUNTEROS: RESULTADOSint B[] = {3,4,1,2,7,12,-4}; float f = 4.234, *ptf;*(B+3) = *B + 15;ptf = &f;*B = (int)(*ptf);f = *ptf + 20;*(B + 5) = (int)(*ptf);

  • ARREGLOS DE PUNTEROSUn arreglo puede ser de entero, de real, o de puntero a enteros, o puntero a real, etc.Ejemplo: int *A[4];A es un conjunto de punteros, cada uno puede apuntar a donde desee, A otras variables o, Comprar uno o varios cajoncitos propiosfor(i = 0; i < 3; i++){A[i] = malloc (sizeof (int) * 3);}A[i] = NULL;

  • ARREGLOS DINAMICOS DE PUNTEROSAl declarar por ejemplo:int **A;Es un puntero a puntero a entero.Como podramos usar esta variable?Que formas habra para manipularla y utilizarla?

  • EJEMPLOint **A;A = malloc(sizeof(int *) * 10);for(i = 0; i
  • EJERCICIOS DE REPASOEscriba una funcin que dado un numero, lo modifique invirtiendo sus dgitosEscriba una funcin que dada una matriz de NxN, permita conocer si la diagonal esta llena de valores diferentes de 0 y si ese es el caso, calcule la suma de los mismos.Escriba una funcin que dado un arreglo, retorne otro nuevo solo con los elementos pares

  • EJERCICIOS DE REPASOEscriba una funcin recursiva que dada dos cadenas, permita conocer si ambas son iguales.Escriba una funcin recursiva que busque un elemento en un arregloEscriba una funcin recursiva que determine si una palabra es o no un palndromo, sin usar string y usando aritmtica de punteros

  • EJERCICIOS DE REPASODefina una estructura para representar un termino en un polinomio. Ejemplo: 3x5.Cree una funcin MultiplicarEscalar que dado un trmino lo modifica multiplicndolo por un valor entero.Defina una estructura para representar a un polinomioConjunto de n trminosEscriba una funcin Evaluar para que dado un polinomio de n trminos y un valor entero, retorne el valor entero resultante de la evaluacin del polinomio.

  • VOID *Void significa el vaco, la nadaEn lenguaje C puede tener dos usosIndica que una funcin no retorna NADA, cuando void es utilizado como tipo de dato de retornovoid ImprimirEstudiante(Estudiante e);Como un puntero genrico, cuando es utilizado como puntero (void *)Un puntero genrico es aquel que puede apuntar a cualquier tipo de dato, sin ningn problema

  • EJEMPLOS DE VOID *char car1=B, car2;void *ptg;ptg = &car1;car2 = *((char *)ptg) + 3;

    char cad[20], car3;void *ptg;ptg = cad;strcpy(cad, Ejemplo);car3 = *((char *)(ptg) + 3) + 5;

  • PARA PENSARSe podra declarar un arreglo de void *?Que utilidad tendra?