You are on page 1of 15

TRABAJO COLABORATIVO N1

NILSA FERNANDA MUOZ EDWIN FABIAN CASTRO C.C. 1.081.411.028 MARGARITA ROSA FLORIAN LPEZ C. C. 1.085.175.18 JAIRO EMILIO ARRIETA MEJIA C.C. 1.082.066.149

CURSO DE: ESTRUCTURA DE DATOS

GRUPO: 301305_44

TUTOR: HERMES MOSQUERA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA ECBTI

2013

INTRODUCCIN El desarrollo de esta actividad plantea la ejecucin de diferentes programas aplicados en entornos reales, con los cuales se busca implementar o hacer uso del aprendizaje obtenido durante el estudio de la primera unidad del modulo de estructura de datos. El siguiente trabajo est compuesto por los siguientes puntos: Aplicacin de los apuntadores: en este enciso se muestra a travs de la implantacin de un cdigo la manera como se manejan los apuntadores dentro de la estructura del programa. Como segundo punto se presenta el tema de las aplicaciones de las funciones Malloc () y Free () en las estructuras de datos y la gestin dinmica de memoria, para lo cual se observa el desarrollo de un programa para la empresa COMPUPARTES LTDA. Y para finalizar con el desarrollo del trabajo colaborativo se tiene el punto tres en cual se expone el mismo planteamiento del punto anterior pero esta vez utilizando los operadores New y Delete.

DESARROLLO DE ACTIVIDADES 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 a 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.
Lneas 1 Cdigo Fuentes del Programa #include <cstdlib> #include <iostream> #include <stdlib.h> #include <conio.h> Void main() { int a=8, b, c; int *x, **y, ***z; x = &a; *x = 12 + a; y = &x ; **y = **y + *x; z = &y; ***z = ***z + **y + *x; b = *x; c = **y; cout <<''\n El valor de a es:''<<a; cout <<''\n El valor de b es:''<<b; cout <<''\n El valor de c es:''<<c; cout <<''\n El valor de *x es:''<<*x; cout <<''\n El valor de **y es:''<<**y; cout <<''\n El valor de ***z es:''<<***z; getch(); } Documente cada lnea de cdigo e indique los resultados que toma cada variable.

Utilizando las libreras para el programa en c++. Llamando funcin principal Declarando variables de tipo enteras que en este caso son: a=8, b, c; Definicin de variables de tipo apuntador. (x) se le asigna la direccin de (a) En (a) es almacenado el valor de (a+12). (y) toma la direccin de (&x). (y) asume el valor de (y+x). (z) toma valor de (&y). (z) es igual a la suma de (z+y+x). (b) es asignado al valor (*x). (c) se le asigna el valor (**y). El valor que toma a es: 120 El valor que toma b es: 120 El valor que toma c es: 120 El valor que toma *x es: 120 El valor que toma **y es: 120 El valor que toma ***z es: 120 Salir al pulsar cualquier tecla Cierre de la funcin principal

3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0

Como todo cdigo de programa al inicio de mencionar o llamar las libreras respectivas para cada funcin, por lo cual se adicionaron las libreras al cdigo del programa, adems se corrigieron algunos errores de escritura y se adicion la

funcin para terminar el cdigo que es el getch. Compilacin del cdigo utilizando Dev - C++ 4.9.9.2
Cdigo fuente:
#include <cstdlib> #include <iostream> #include <stdlib.h> #include <conio.h> using namespace std; int main() { system ("color 1b"); int a= 8,b,c; int *x, **y, ***z; x= &a; *x = 12+ a; y= &x; **y=**y +*x; z = &y; ***z =***z +**y+ *x; b = *x; c = **y; cout <<"\n El valor de a es:"<<a; cout <<"\n El valor de b es:"<<b; cout <<"\n El valor de c es:"<<c; cout <<"\n El valor de *x es:"<<*x; cout <<"\n El valor de **y es:"<<**y; cout <<"\n El valor de ***z es:"<<***z; getch(); }

Compilacin utilizando Borland C++


Cdigo fuente:
#include<stdio.h> #include<iostream.h> #include<conio.h> #include<math.h> #include<stdlib.h> int main() { system ("color 5f"); int a= 8,b,c; int *x, **y, ***z; x= &a; *x = 12+ a; y= &x; **y=**y +*x; z = &y; ***z =***z +**y+ *x; b = *x; c = **y; cout <<"\n El valor de a es:"<<a; cout <<"\n El valor de b es:"<<b; cout <<"\n El valor de c es:"<<c; cout <<"\n El valor de *x es:"<<*x; cout <<"\n El valor de **y es:"<<**y; cout <<"\n El valor de ***z es:"<<***z; getch(); }

Compilacin utilizando Code::Blocks 12.11


Cdigo fuente:
#include <cstdlib> #include <iostream> #include <stdlib.h> #include <conio.h> using namespace std; int main() { system ("color 4a"); int a= 8,b,c; int *x, **y, ***z; x= &a; *x = 12+ a; y= &x; **y=**y +*x; z = &y; ***z =***z +**y+ *x; b = *x; c = **y; cout <<"\n El valor de a es:"<<a; cout <<"\n El valor de b es:"<<b; cout <<"\n El valor de c es:"<<c; cout <<"\n El valor de *x es:"<<*x; cout <<"\n El valor de **y es:"<<**y; cout <<"\n El valor de ***z es:"<<***z; getch(); }

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. 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. Codificacin del programa en Dev-C++
#include<iostream.h> #include<stdlib.h> #include<conio.h> #include<stdio.h>

using namespace std; struct computador { char Marca_Procesador[20]; char CapM_Ram[20]; char CapD_Duro[20];

}*cred=NULL; struct computador *mod=NULL; void insertar(); void visualizar(); int main() { system ("color 4f"); int opcion; do{ system ("cls"); cout<<"\n\t\t\tFICHA TECNICA DE COMPUTADORES\n\n"<<endl; cout<<"\n1. INGRESA DATOS COMPUTADOR "<<endl; cout<<"\n4. LISTA DATOS COMPUTADOR "<<endl; cout<<"\n3. SALIR\n"<<endl; cout<<"\n\nIngrese la opcion:"; cin>>opcion; switch (opcion) { case 1: insertar(); break; case 4: visualizar(); break; case 3: free(cred); break; default: cout<<"Opcion incorrecta"; break; } }while (opcion != 3); system("PAUSE"); return EXIT_SUCCESS; } void insertar() { int i=0,n=3; cred=(computador *)malloc(n*sizeof(computador)); while (i<n){ cout<<"\nREGISTRAR COMPUTADOR "<<i+1<<endl; cout<<"\n Marca_Procesador:"; cin>> cred[i].Marca_Procesador; cout<<"\n CapM_Ram: "; cin>> cred[i].CapM_Ram; cout<<"\n CapD_Duro: "; cin>>cred[i].CapD_Duro; i++; } } void visualizar() { int i=0,n=3; cout<<"\nLISTADO DE COMPUTADORES REGISTRADOS\n "; while (i<n){ cout<<"\nDATOS COMPUTADOR : " <<i+1; cout<<"\nMarca_Procesador : " << cred[i].Marca_Procesador; cout<<"\nCapM_Ram:"<< cred[i].CapM_Ram; cout<<"\nCapD_Duro : "<<cred[i].CapD_Duro; i++; cout<<endl; } 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. Codificacin del programa:
#include "conio.h" #include "iostream.h" #include <stdio.h> #include <string.h> cuadro() { clrscr(); int i; for (i=4;i<=76;i++) { gotoxy(i,2);cout<<"*"; gotoxy(i,30);cout<<"*"; } for (i=2;i<=30;i++) { gotoxy(3,i);cout<<"*"; gotoxy(76,i);cout<<"*"; } }

menuprincipal() { cuadro(); gotoxy(15,5);cout<<"M E N U P R I N C I P A L C O M P U P A R T E"; gotoxy(25,10);cout<<" 1. INSERTAR CLIENTES "; gotoxy(25,13);cout<<" 2. CONSULTAR CLIENTES "; gotoxy(25,16);cout<<" 3. SALIR "; } int main() { int opcion, cont; char nomp[80], fecha[80], tcom[80], noms[80], apep[80], apes[80]; char *apelp, *apels, *nombp, *nombs, *fechar, *tco; c: cuadro(); menuprincipal(); gotoxy(25,20);cout<<"Opcion: "; cin>>opcion; if (opcion==1) { a: cuadro();

gotoxy(15,6);cout<<" *** Datos Cliente ***"; gotoxy(15,10);cout<<"Primer Nombre : ";cin>>nomp; gotoxy(15,12);cout<<"Segundo Nombre : ";cin>>noms; gotoxy(15,14);cout<<"Primer Apellido : ";cin>>apep; gotoxy(15,16);cout<<"Segundo apellido : ";cin>>apes; gotoxy(15,18);cout<<"Fecha de recibo del Computador : ";cin>>fecha; gotoxy(15,20);cout<<"Tipo de Computador : ";cin>>tcom; nombp = new char; nombs = new char; apelp = new char; apels = new char; fechar = new char; tco = new char; nombp=nomp; nombs=noms; apelp=apep; apels=apes; fechar=fecha; tco = tcom; gotoxy(10,25);cout<<"Presione <ENTER> para regresar al menu principal "; getch(); goto c; } if (opcion==2) { if (nombp==NULL) { cuadro(); gotoxy(20,10);cout<<"******* A T E N C I O N *********"; gotoxy(20,15);cout<<"no se ha Ingresado ningun camputador : "; gotoxy(16,25);cout<<"Presione <ENTER> para regresar al Menu Principal "; getch(); goto c; } else { cuadro(); gotoxy(15,6);cout<<" *** Consulta Datos Cliente ***"; gotoxy(15,10);cout<<"NOMBRES : "<<nombp;cout<<" "<<nombs; gotoxy(15,12);cout<<"APELLIDOS: "<<apelp;cout<<" "<<apels; gotoxy(15,14);cout<<"FECHA DE RECIBO DEL COMPUTADOR : "<<fechar; gotoxy(15,16);cout<<"TIPO DE COMPUTADOR : "<<tco; gotoxy(16,25);cout<<"Presione <ENTER> para regresar al Menu Principal "; getch(); } } return 0; delete nombp; delete nombs; delete apelp; delete apels; delete fechar; delete tco; }

BIBLIOGRAFA

Mosquera, H. (2012). Modulo de estructura de datos. Popayn, Colombia. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD.

DEYTEL Y DEYTEL (1999). Como programar C++. Segunda Edicin. Mxico D. F: Prentice Hall. McGraw-HILL. www.unad.edu.co

Coevaluacin
NOMBRE DEL INTEGRANTE DEL GRUPO Describa en que consisti la participacin e indique claramente los aportes realizados

Nilsa Fernanda Muoz

Edwin Fabin Castro

Margarita Rosa Florian Lpez

Jairo Emilio Arrieta

Su participacin se dio oportunamente, realizo aportes al primer ejercicio de la actividad, sin embargo estos no dieron la solucin completa a lo que quera y la compilacin del cdigo arrojo error por lo tanto no se pudo ejecutar su programa. Realizo sus aportes de forma oportuna, pero se tenan que mejorar porque no estaba aplicando lo que se peda en la gua. Al finalizar corrigi sus errores y realizo aportes significativos al trabajo grupal. Su participacin fue tarda, desarrollo aportes que ayudaron complementar el trabajo. Su participacin se hizo un poco tarde pero desarrollo aportes que contribuyeron a complementar puntos de la actividad.

You might also like