fase 1 evaluacion inicial estructura de datos
Post on 20-Feb-2016
230 Views
Preview:
DESCRIPTION
TRANSCRIPT
FASE 1 EVALUACION INICIAL
Por
Jorge Andrés Ramírez Montoya
CC. 1075228742
Presentado a:
Hermes Mosquera- Tutor
Universidad Nacional Abierta y a Distancia UNADEstructura de Datos
INTRODUCCION
Con el presente trabajo se busca entender de manera puntual el funcionamiento de
punteros, las instrucciones new y delete y la gestión de memoria dinámica.
La correcta documentación del código, la instalación del IDE falcon c++ y su modo
de uso con las librerías adicionales que se instalan.
DESARROLLO DE LA ACTIVIDAD
1. Instalación IDE falcon C++
Procedemos a instalar el paquete, el software lo instalamos en ingles ya que no
está disponible en español.
Comienza el proceso de instalación, damos en next e i agree.
Se instala las opciones que vienen por defecto dando click en next.
Se iniciara el proceso de instalación y terminara el proceso.
Una vez finalizada la instalación se da clic en el botón “Finish” En este momento ya
se encuentra instalado el IDE Falcon C++.
Para que el programa quede totalmente funcional vamos a instalar la librería
CONIO.H.
Vaya por el menú TOOLS y seleccione PACKAGES
En este momento aparecerá el administrador de paquetes de Falcon
De clic en el icono
INSTALL
Le aparecerán la lista de paquetes instalados y los posibles por instalar:
Despliegue la opción CONSOLE y seleccione CONIO
Finalmente de clic en “Install 1
package…” En este momento se
efectuará la descarga del paquete y la instalación. Cuando el proceso finalice en la
parte inferior aparecerá el mensaje “Done Packages Installation”, indicando que fue
exitoso el proceso.
Documentación del código
Código fuente y la explicación a cada línea del código fuente de la figura 1,
/* ----------------------------------------------Este es el primer ejercicio propuesto en la guía de actividadesse trata de un código fuente programa como aplicación aapuntadores, estructuras y gestión dinámica de memoria através de los operadores new y delete.datos del autor: JORGE ANDRES RAMIREZ MONTOYAFecha 21/08/2015---------------------------------------------------*/#include<iostream> // comando que se utiliza para operaciones de entrada y salida : cout cin#include<cstdlib> // libreria que me permite utilizar funciones como int-char para gestion de memoria dinamica
using namespace std; // me permite utilizar nombres parecidos a las librerías estándar sin causar problemas
struct persona // me permite guardar datos de distinto tipos{
char nombre1 [100]; // variable de tipo alfanumerico de maximo 100 digitos
char nombre2 [100]; // variable de tipo alfanumerico de maximo 100 digitos
char apellido1 [100]; // variable de tipo alfanumerico de maximo 100 digitos
char apellido2 [100]; // variable de tipo alfanumerico de maximo 100 digitos
int edad; // variable de tipo numérico enterostruct persona*sing; // agrupa datos de distinto tipo
}*puntero;
int main () // cuerpo del código comienza la ejecución del programa{
puntero = new persona; // crea variable y asignacion a la memoriacout<<"ingresa tu primer nombre:"; // salida en pantalla
cin>>puntero->nombre1; // recoje o recibe informacion, entrada
cout<<"ingresa tu segundo nombre:"; // salida en pantallacin>>puntero->nombre2; // recoje o recibe informacion, entrada
cout<<"ingresa tu primer apellido:"; // salida en pantallacin>>puntero->apellido1; // recoje o recibe informacion, entrada
cout<<"ingresa tu segundo apellido:"; // salida en pantallacin>>puntero->apellido2; // recoje o recibe informacion, entrada
cout<<"ingresa tu edad:"; // salida en pantallacin>>puntero->edad; // recoje o recibe informacion, entrada
puntero->sing = NULL; // puntero con valor 0 y puede ser igual a la constante NULL
cout<<"\t\t Datos ingresados"<<endl; // salida en pantallacout<<"Bienvenido "<<puntero->nombre1<< " " <<puntero->nombre2<< "
" <<puntero->apellido1 // se llama al puntero con los valores asignados en la memoria
<< " " <<puntero->apellido2;cout<<" Su edad es "<<puntero->edad<<" años "; // salida en pantalladelete puntero; // borra información, descarga la memoria
system ("pause");
return 0;}
Ejecución del programa
Programa basado en la consulta WEB
Instrucciones new y delete para la asignación y eliminación de datos en forma dinámica
La forma moderna de manejo de memoria dinámica es a través de las instrucciones new y delete que nos permite tanto la asignación como el borrado de memoria. Veamos un ejemplo sencillo y práctico:
#include <iostream>
#include<conio.h>
using namespace std;
main()
{
/*Esta primera parte se muestra el uso de la instrucción new y delete con
enteros*/
int *a;
a=new(int); //se inicializa la variable tipo entera
cout<<"Ingrese un valor entero ";
cin>>*a;
cout<<endl<<"El valor ingresado es: "<<*a;
delete(a); //desaparece de la memoria la variable
getch();
//Esta segunda parte se repite el ejercicio pero con float
float *b;
b=new(float); //se inicializa la variable tipo float
cout<<endl<<endl<<"Ingrese un valor real ";
cin>>*b;
cout<<endl<<"El valor ingresado es: "<<*b;
delete(b); //desaparece de la memoria la variable
getch();
/*en esta tercera parte se utilizará un identificador compuesto, es decir
una estructura y veremos como inicializar el identidficador estructurado*/
struct VarEstr { //definición de la estructura y nuevo tipo de variable
int c;
float d;
char e;
};
VarEstr *g;
g=new(VarEstr); //Igualmente que antes en concepto se inicializa el identificador
cout<<endl<<"Ingreso de datos en la estructura";
cout<<endl<<"Ingrese un valor entero ";
cin>>g->c; //esta es una forma de utilizar la estructura con punteros sin *
cout<<endl<<"Ingrese un valor real ";
cin>>(*g).d; //esta es la otra forma de utilizar la estructura con punteros con *
cout<<endl<<"Ingrese un valor char ";
cin>>(*g).e;
cout<<endl<<endl<<"Los valores ingresados son: VALOR ENTERO= "<<(*g).c<<"
VALOR FLOAT= "
<<g->d<<" VALOR CHAR= "<<g->e;
delete(g); //desaparece de la memoria la variable
getch();
}
Ejecución del programa
CONCLUSIONES
Al principio hubo confusión de como reconocer un puntero, pero en la
documentación de apoyo encontré de manera simple; un puntero es una dirección. Al contrario que una variable normal, un puntero es una variable
almacenada en alguna parte del espacio del programa
Al momento de utilizar los punteros tuve muchos inconvenientes al utilizar
los signos amperson y estrella. Investigando encontré unas reglas sencillas:
1. Un nombre de variable, precedido por un signo de amperson define la dirección de la variable, y ocasionalmente “la apunta”. Puede leerse la línea 6 del programa como “pt1 es asignado al valor de la dirección de index”.
2. Un puntero con una estrella precediéndole se refiere al valor de la variable apuntada por el puntero. La línea 9 del programa puede leerse como: “al puntero pt1 le es asignado el valor 13″.
BIBLIOGRAFIA
Punteros en C++, tomado de http://www.programacion.com.py/escritorio/c/punteros-en-c
Bustamante, P., Aguinaga, I., Aybar, M., Olaizola, L., Lazcano, I. (2004). Aprenda C++ Básico como si estuviera en primero. TECNUN. Campus Tecnológico de la Universidad de Navarra. Pag. (35 – 64). Recuperado de http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/cpp/basico/cppbasico.pdf
Garrido, A. (2005). Fundamentos de programación en C++. Delta publicaciones. Recuperado de: http://books.google.com.co/books?id=OC17arE5xukC&printsec=frontcover&dq=estructura+de+datos+en+C%2B%2B&hl=es&sa=X&ei=YZcXU5b1NoaSkQeTvoCIDA&ved=0CGcQ6AEwCQ#v=onepage&q=estructura%20de%20datos%20en%20C%2B%2B&f=false
top related