Sie sind auf Seite 1von 14

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

TRABAJO COLABORATIVIO N1

GRUPO 301305_60

ESTRUCTURA DE DATOS

PRESENTADO POR: CARLOS ARTURO MUOZ CC. 87027651

TUTOR DE CURSO: HERMES MOSQUERA

INGENIERIA DE SISTEMAS 20 SEPTIEMBRE 29 2013 CEAD PASTO

INTRODUCCION

En este tema se estudiarn las posibilidades que ofrece el Lenguaje C a la hora de trabajar dinmicamente con la memoria dentro de los programas, esto es, reservar y liberar bloques de memoria al momento de ejecutar un programa . La intencin principal de este trabajo es colocar en prctica todos los conceptos y conocimientos que durante este curso estamos obteniendo, similar a que todas las instrucciones que logremos efectuar en la gua de las estructuras de datos. Adems en este trabajo se introducir el concepto de tipo indeterminado de variables estticas y dinmicas y el uso de los operadores new y delete frente a al manejo de las funciones malloc y free

DESARROLLO DEL TRABAJO 1. Aplicacin de los apuntadores. Cada integrante del grupo va realizar el anlisis del siguiente cdigo en el tema creado dentro del foro del trabajo colaborativo 1 y va ha utilizar tres compiladores diferentes para compilar y ejecutar el siguiente cdigo, que es solo una parte de un programa como aplicacin de apuntadores, complete las lneas de cdigo que faltan para que el programa pueda compilarse y ejecutarse sin problemas, indique que instrucciones debe adicionar al cdigo, indicar los compiladores que se utilizaron e incluir la imagen del editor donde se evidencien los tres compiladores y por su puesto una imagen de la salida en pantalla, de esta forma confirma el resultado de la salida en pantalla, documente cada una de las lneas de cdigo y exprese el resultado que arrojan las variables: a,b,c *x, **y, ***z, tal como se pide en las lneas de la 12 a la 17 para lo cual se debe realizar y anexar a este punto la prueba de escritorio. Lnea Cdigo fuente del programa Documente cada lnea de cdigo e indique los resultados que toma cada variable. Se crearon libreras para ejecutar algunas fubciones

#include<stdio.h> #include<iostream.h> #include<conio.h> #include<math.h> #include<stdlib.h> 1 2


3 void main(){ int a=8,b,c; int *x, **y, ***z ;

Funcin principal Se define variables enteras a=8 ,b , c


Se define variable tipo puntador x, apuntador a apuntador y, apuntador a apuntador a apuntador z Se le asigna a x la direccion de a Se almacena en a el valor de a+12 Se le asigna a y la direccin de &x Y se asigna el valor de y + x Z se le da el valor de &y Z igual a la suma de z +y +x b se le da el valor *x C se da el valor de **y

4 5 6 7 8 9 10 11

x = &a; *x = 12 + a; y = &x ; **y = **y + *x; z = &y; ***z = ***z + **y + *x; b = *x; c = **y; cout <<\nEl valor de a es:<<a;

12

Visualiza el valor toma a =120

13 14 15 16 17 18 19

cout cout cout cout cout

<<\nEl <<\nEl <<\nEl <<\nEl <<\nEl

valor valor valor valor valor

de de de de de

b es : <<b; c es : <<c; *x es:<<*x; **y es:<<**y; ***z es:<<***z;

getch(); }

Visualiza el valor toma b= 120 Visualiza el valor toma c= 120 Visualiza el valor toma *x= 120 Visualiza el valor toma **y= 120 Visualiza el valor toma a***z= 120 La ejecucin ternina cuando se pulsa una tecla Termina instrucciones de la funcin principal

Se le agrego las libreras, se escribi con minscula la C de la palabra cout, se coloco las comilla correctas, se agreg la funcin getch. Compilador Turbo c++

Compilador Borland C++

Compilador Dev C++ 4,9,9,2

2. Aplicacin de las estructuras de datos y gestin dinmica de memoria con las funciones Malloc() y Free(). Sabiendo que las estructuras son colecciones de elementos, los cuales pueden ser de diferente tipo. Una estructura es un tipo de dato compuesto que permite almacenar un conjunto de datos que pueden ser de diferente tipo. Los datos que contiene una estructura pueden ser de tipo simple (caracteres, nmeros enteros o de coma flotante etc.) o a su vez de tipo compuesto (vectores, estructuras, listas, etc.). A cada uno de los datos o elementos almacenados dentro de una estructura se les denomina miembros de esa estructura y stos pertenecern a un tipo de dato determinado. Como aplicacin al tema, la empresa COMPUPARTES LTDA, requiere implementar un programa codificado en cualquier compilador de C++ que haga uso de la gestin dinmica de memoria con las funciones malloc() y free(), que por medio de un men de opciones permita insertar y visualizar la informacin de la ficha tcnica de los computadores que se recibieron para realizar mantenimiento, la informacin debe registrarse en una estructura llamada Computador en la que se almacenar (La marca del procesador, cantidad de memoria RAM y capacidad de almacenamiento en disco duro). Como resultado se espera el cdigo fuente debidamente documentado y la captura de pantalla de las imgenes de la salida en pantalla de la ejecucin del programa para cada opcin.

/* Programa de base como ayuda para desarrollar el punto 2 del trabajo colaborativo No.1 Tema: Gestin dinamica de memoria Curso: 301305 Estructura de datos Compilador: DevC++ Autor: Hermes Mosquera Septiembre de 2013 */ #include<iostream.h> #include<stdlib.h> #include<conio.h> #include<stdio.h>

//using namespace std; // usa espacios de nombre estandar // estructura curso struct curso { char marcaprocesador[20]; char capmemoriaram[6]; char capdiscoduro; }*cred=NULL; // apuntador de tipo curso inicializado a vacio struct curso *mod=NULL; // prototipo de la funcin insertar de tipo curso

void insertar(); //funcin a un puntero void visualizar(); // funcin visualizar int main() { int opcion; do{ clrscr();//system ("cls"); cout<<"FICHA TECNICA DE COMPUTADORES\n\n"; cout<<"\n1. INGRESA DATOS COMPUTADOR "; cout<< "\n2.LISTA DATOS COMPUTADOR "; cout<< "\n3. SALIR"; cout<<"\n\nIngrese la opcion:"; cin>>opcion; switch (opcion) { case 1: insertar(); break; case 2: visualizar(); // llamado de la funcin visualizar break; case 3: free(cred); // liberacin de memoria break; default: cout<<"Opcion incorrecta"; break; }

}while (opcion != 3); getch();//system("PAUSE"); return EXIT_SUCCESS; } // definicion de la funcin que inserta los datos void insertar() { int i=0,n=3; cred=(curso *)malloc(n*sizeof(curso)); while (i<n){ cout<<"\nREGISTRAR COMPUTADOR "<<i+1; cout<<"\n marcaprocesador : "; cin>> cred[i].marcaprocesador; cout<<"capmemoriaram : "; cin>> cred[i].capmemoriaram; cout<<" capdiscoduro : ";

cin>>cred[i].capdiscoduro; i++; } }

//definicin de la funcin visualizar void visualizar() {

int i=0,n=3; cout<<"\nLISTADO DE COMPUTADORES REGISTRADOS\n "; while (i<n){ cout<<"\nDATOS COMPUTADOR : " <<i+1; cout<<"\nmarcaprocesador : " << cred[i].marcaprocesador; cout<<"\ncapmemoriaram : "<< cred[i].capmemoriaram; cout<<" \ncapdiscoduro : "<<cred[i].capdiscoduro; i++; cout<<endl; } getch();//system("pause"); }

3. Aplicacin de las estructuras y gestin dinmica de memoria con los operadores New y Delete. Implemente el mismo programa del punto 2 que haga uso de la gestin dinmica de memoria pero esta vez con los operadores New y Delete. Y los datos a almacenar son: nombre del cliente, la fecha de recibo del equipo y el tipo de computador (de escritorio o porttil). Como resultado de este punto se espera el cdigo fuente y la captura de pantalla de las imgenes de la salida en pantalla de cada opcin. /* Programa de base como ayuda para desarrollar el punto 2 del trabajo colaborativo No.1 Tema: Gestin dinamica de memoria Curso: 301305 Estructura de datos Compilador: DevC++ Autor: Hermes Mosquera Septiembre de 2013 */ #include<iostream.h> #include<stdlib.h> #include<conio.h> #include<stdio.h> //using namespace std; // usa espacios de nombre estandar // estructura curso struct computador { char nombrecliente[20]; char fecharecibo[6]; char tipocomputador[9]; }*cred=NULL; // apuntador de tipo curso inicializado a vacio struct curso *mod=NULL; // prototipo de la funcin insertar de tipo curso void insertar(); //funcin a un puntero void visualizar(); // funcin visualizar int main() { int opcion; do{

clrscr();//system ("cls"); cout<<"FICHA TECNICA DE COMPUTADORES\n\n"; cout<<"\n1. INGRESA DATOS CLIENTE "; cout<< "\n2.LISTA DATOS CLIENTE "; cout<< "\n3. SALIR"; cout<<"\n\nIngrese la opcion:"; cin>>opcion; switch (opcion) { case 1: insertar(); break; case 2: visualizar(); // llamado de la funcin visualizar break; case 3: delete(cred); // liberacin de memoria break; default: cout<<"Opcion incorrecta"; break; } }while (opcion != 3); getch();//system("PAUSE"); return EXIT_SUCCESS; } // definicion de la funcin que inserta los datos void insertar() { int i=0,n=3; cred=new computador [sizeof(computador)]; while (i<n){ cout<<"\nREGISTRAR CLIENTE "<<1+i; cout<<"\nnombrecliente : "; cin>> cred[i].nombrecliente; cout<<"fecharecibo : "; cin>> cred[i].fecharecibo; cout<<"tipocomputador : "; cin>>cred[i].tipocomputador; i++; } }

//definicin de la funcin visualizar void visualizar() { int i=0,n=3; cout<<"\nLISTADO DE CLIENTES REGISTRADOS\n "; while (i<n){ cout<<"\nDATOS CLIENTE : " <<i+1; cout<<"\nnombrecliente : " << cred[i].nombrecliente; cout<<"\nfecharecibo : "<< cred[i].fecharecibo; cout<<" \ntipocomputador : "<<cred[i].tipocomputador ; i++; cout<<endl; } getch();//system("pause"); }

BIBLIOGRAFIA

Modulo estructura de datos Universidad Nacional Abierta y a Distancia ISBN Director: Hermes Mosquera Popayan Enero de 2012 AGUILAR Luis, ZAHONERO Martnez (2004). Algoritmos y Estructuras de Datos. Una perspectiva en C. Madrid-Espaa: McGraw-Hill. BROOKSHEAR, J. Glenn (1995). Introduccin a las ciencias de la Computacin (Cuarta Edicin). Edicin Espaola: Addison-Wesley Iberoamericana. DEYTEL Y DEYTEL(1999). Como programa C++. Segunda Edicin. Mxico D.F: Prentice Hall. McGRAW-HILL.

Das könnte Ihnen auch gefallen