Está en la página 1de 12

ESTRUCTURA DE DATOS

TRABAJO COLABORATIVO 1

JOSE ARMANDO ARIAS PABON


MANUEL ALEJANDRO CHAPARRO GIRALDO
ISAURA NATALI VELASQUEZ MENDOZA

HERMES MOSQUERA
TUTOR

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


OCTUBRE DE 2013

DESARROLLO DE ACTIVIDADES

1. Aplicacin de los apuntadores.

Lnea

Cdigo fuente del programa

voidmain(){

2
3

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;

10

b=*x;

11

c=**y;

12
13
14
15
16
17
20

cout<<\n Elvalor de a es :<<a;


cout<<\n Elvalor de b es:<<b;
cout<<\n El valor de c es:<<c;
cout<<\n El valor de*x es:<<*x;
cout<<\n Elvalor de **y es:<<**y;
cout<<\n El valor de ***z es:<<***z;
}

Documente cada lnea de cdigo e indique


los resultados que toma cada variable.
Declaracin de la funcin principal main
voidmain() /*Indicas que no esperas ningn valor
de retorno*/ (Solo en Borlan Funciona)
intmain() /*Se espera un valor entero de retorno
del tipo entero*/ (Para hacer funcionar en Dev
C++ y Turbo el ms adecuado)
Definicin de las variables enteras a=8 ,b , c
Definicin de la variable tipo puntador x,
apuntador a apuntador y, apuntador a
apuntador a apuntador z
Asignacin de x a la direccin de memoria de
a
Se almacena en a el valor de la operacin
aritmtica a+12(a=8 Resultado 12+8=20)
Asignacin de y a la direccin de memoria de
x (20)
Se almacena en x el valor de la operacin
aritmtica y+x(y=20 x=20 Resultado
20+20=40)
Asignacin de z a la direccin de memoria de
y (40)
Se almacena en z el valor de la operacin
aritmtica z+y+x (y=40 x=40 z=40
Resultado 40+40+40=120)
Asignacin de b a la direccin de memoria de
x(120)
Asignacin de c a la direccin de memoria de
y(120)
Qu valor toma a?120
Qu valor toma b?120
Qu valor toma c?120
Qu valor toma *x? 120
Qu valor toma **y?120
Qu valor toma ***z?120
Terminacin instrucciones de la funcin principal

Compilacin y ejecucin del programa.

Antes que todo se debe declarar las libreras para poder ejecutar las funciones del
programa.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>

Para permitir el fin de ejecucin luego de que se pulse una tecla


getch();

En las lneas 13 y 14, debe corregirse la funcin cout puesto que la misma se encuentra
con su inicial en mayscula y el compilador no reconoce dicha orden.

Compilacin de Pantallazos

A. DevC++

B. Zinjal

C. Visual C++

Nota: con este entorno de desarrollo fue necesario agregar al cuerpo del programa las siguientes
lneas:
system ("PAUSE");
return 0;

Ya que sin ellas el programa se cerraba inmediatamente se ejecutaba.

D. Borland C++

E. Turbo C++

F. CodeBlocks

2. Aplicacin de las estructuras de datos y gestin dinmica de memoria con las


funciones Malloc() y Free().
#include "stdio.h" //Declaracin de las libreras
#include "stdlib.h"
#include "conio.h"
struct computadores //Declaracin de la Estructura computadores
{
char marcaprocesador [30]; //Declaracin de la variable tipo char marcaprocesador
char cantidadram [10]; //Declaracin de la variable tipo char cantidadram
char cantidaddisco [10]; //Declaracin de la variable tipo char cantidaddisco
}*a=NULL; //Declaracin del apuntador *a que apunta a nulo
void menuprincipal (); //Declaracin de funciones del programador
void menusedundario ();
void ingresardatos ();
void visualizardatos ();
int opcin, n; //Declaracin de variables tipo entero opcin y n
int main () //Declaracin e inicio de la funcin main tipo entero
{
do //Ciclo de la pantalla del men principal
{
system ("cls");
menuprincipal ();
scanf ("%d", &opcion);
if (opcion==1)
ingresardatos ();
if (opcion==2)
visualizardatos ();
}
while (opcion!=3); //Condicin para cerrar el programa
free (a); }//Liberacin de memoria con la funcin free al apuntador a

void menuprincipal () //Funcin menuprincipal creada por el programador


{
system ("cls");
printf ("\t\t MENU PRINCIPAL \n1. Ingresar Datos \n2. Visualizar Datos \n3. Salir
\nElija una opcion del 1 al 3 \n");
}
void menusecundario () //Funcin menusecundario creada por el programador
{
system ("cls");
printf ("\t\t MENU SECUNDARIO \n1. continuar \n2. salir\nElija una opcion de 1
al 2 \n");
}
void ingresardatos () //Funcin ingresar datos creada por el programador
{
do
{
system ("cls");
menusecundario (); //Llamado de la funcin menusecundario
scanf ("%d", &n);
if (n==1) //Condicin para ingresar la cantidad de datos que se desee
{
a=(computadores *)malloc(sizeof(computadores));
printf ("\t\tFICHA TECNICA DE LOS COMPUTADORES \nMarca del Procesador ");
scanf ("%s", a->marcaprocesador);
printf ("\nCantidad de Memoria RAM (MB) ");
scanf ("%s", a->cantidadram);
printf ("\nCantidad de Almacenamiento en Disco Duro (GB) ");
scanf ("%s", a->cantidaddisco);}
}
while (n!=2); //Ciclo de cierre de la funcion
}
void visualizardatos ()//Funcin visualizardatos creada por el programador
{
printf ("\nFICHA TECNICA DE LOS COMPUTADORES");
printf ("\nMarca del Procesador: %s", a->marcaprocesador);
printf ("\nCantidad de Memoria RAM (MB): %s", a->cantidadram);
printf ("\nCantidad de Almacenamiento en Disco Duro (GB): %s", a>cantidaddisco);
printf ("\nPresiona enter para continuar \n");
getch ();
}

3. Aplicacin de las estructuras y gestin dinmica de memoria con los operadores New
y Delete.
#include <iostream>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>

//Llamado de Libreras implicadas

using namespace std; //Se declara espacios de nombre estndar


int n; //Declaracin de la variable entera n
struct cliente{ //Declaracin de la estructura cliente y sus componentes
char nombre[20];
char apellido[20];
char fecha[15];
char tipo[15];
}*clien=NULL; //Apuntador clien creado vacio
struct cliente *mod=NULL;
//Establecimiento de las funciones a realizar con la estructura cliente

void ingresar(); //Declaracin de funcin


void lista(); //Declaracin de funcin
int main(){ //Inicio del cuerpo funcional
int opcion;
do{
//Inicio de bucle
system ("cls");
cout<<"Ingrese la opcion:";
cout<<"\n\n1. REGISTRAR CLIENTES ";
cout<< "\n2. LISTA DE CLIENTES ";
cout<< "\n3. SALIR\n\n";
cin>>opcion;
switch (opcion){ //Selector de opciones
case 1: //Se convoca la funcin ingresar
ingresar();
break;
case 2: //Se convoca la funcin lista
lista();
break;
case 3:
delete(clien); //Se limpia la memoria del apuntador que contiene la
direccin de la estructura.
default: //Error en la eleccin de las funciones dadas.
cout<<"Opcin invalida!!!!!!!";
break;
}
}while (opcion !=3); //Condicional del bucle
system("PAUSE");
return EXIT_SUCCESS;
}
void ingresar(){ //Programacin de las acciones para la funcin ingresar
int i=0;
system ("cls");
cout<<"\nCuantos clientes son?\n";

cin>>n;
clien=new cliente[sizeof(cliente)];

//Se reserva la recepcin de los


datos del apuntador que contiene la
direccin de la estructura cliente

while (i<n){ //Bucle de acciones


system ("cls");
cout<<"\nINGRESE LOS DATOS DEL CLIENTE "<<i+1;
cout<<"\n\nNombre del Cliente? : ";
cin>>clien[i].nombre;
cout<<"Apellido del Cliente? : ";
cin>>clien[i].apellido;
cout<<"Fecha de recibido el computador (AAAA/MM/DD)?: ";
cin>>clien[i].fecha;
cout<<"Que tipo de equipo es?: ";
cin>>clien[i].tipo;
i++;
}
}
void lista() //Programacin para las acciones de la funcin lista
{
int i=0;
system ("cls");
cout<<"\nLISTA DE CLIENTES\n ";
while (i<n){ //Bucle de acciones
cout<<"\n\n\nCLIENTE PARA EL EQUIPO #" <<i+1;
cout<<"\n\nNombre Completo del Cliente : "<< clien[i].nombre;
cout<<" "<<clien[i].apellido;
cout<<"\nFecha de Recibido el equipo : "<< clien[i].fecha;
cout<<"\nTipo de Equipo : "<<clien[i].tipo;
cout<<endl;
i++;
}
cout<<"\n......................................................\n\n\n";
system("pause");
} //Se cierra el cuerpo del programa

REFERENCIAS

OPERADORES DE MANEJO DE MEMORIA NEW Y DELETE


Curso de C++, C++ con clase - Capitulo 13
http://c.conclase.net/curso/?cap=013b

OPERADORES NEW Y DELETE


Introduccin a Patrones de Diseo en C++ con Qt4/1.16.2
Wikilibros
http://es.wikibooks.org/wiki/Introducci%C3%B3n_a_Patrones_de_Dise%C3%B
1o_en_C%2B%2B_con_Qt4/1.16.2_Operadores_new_y_delete

MEMORIA DINAMICA: MALLOC Y FREE


Universidad de las Palmas de Gran Canaria
http://sopa.dis.ulpgc.es/so/cpp/intro_c/introc75.htm

FUNCIN MALLOC ANSI C


Curso de C++, C++ con clase - Capitulo 13
http://c.conclase.net/librerias/?ansifun=malloc

MODULO ESTRUCTURAS DE DATOS - 301305


Hermes Mosquera Angulo
Escuela de Ciencias Basicas, Tecnologia e Ingenieria
Universidad Nacional Abierta y a Distancia

COEVALUACION Y AUTOEVALUACION DE LA ACTIVIDAD

Nombre del Estudiante


Jos Armando Arias Pabn
Manuel Alejandro Chaparro Giraldo
Isaura Natal Velsquez Mendoza

Participacin y Desarrollo
Desarrollo de las actividades, aporte a los puntos 1, 2 y 3.
Desarrollo de las actividades, aporte a los puntos 1, 2 y 3.
Desarrollo de las actividades, aporte a los puntos 1,2 y 3,
consolidacin del trabajo final.

También podría gustarte