Fase 1 Evaluacion Inicial estructura de datos

18
FASE 1 EVALUACION INICIAL Por Jorge Andrés Ramírez Montoya CC. 1075228742 Presentado a: Hermes Mosquera- Tutor Universidad Nacional Abierta y a Distancia UNAD Estructura de Datos

description

estructura de datos

Transcript of Fase 1 Evaluacion Inicial estructura de datos

Page 1: Fase 1 Evaluacion Inicial estructura de datos

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

Page 2: Fase 1 Evaluacion Inicial estructura 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.

Page 3: Fase 1 Evaluacion Inicial estructura de datos

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.

Page 4: Fase 1 Evaluacion Inicial estructura de datos

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

Page 5: Fase 1 Evaluacion Inicial estructura de datos

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

Page 6: Fase 1 Evaluacion Inicial estructura de datos

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

Page 7: Fase 1 Evaluacion Inicial estructura de datos

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;}

Page 8: Fase 1 Evaluacion Inicial estructura de datos

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;

Page 9: Fase 1 Evaluacion Inicial estructura de datos

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();

Page 10: Fase 1 Evaluacion Inicial estructura de datos

//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;

Page 11: Fase 1 Evaluacion Inicial estructura de datos

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 ";

Page 12: Fase 1 Evaluacion Inicial estructura de datos

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();

}

Page 13: Fase 1 Evaluacion Inicial estructura de datos

Ejecución del programa

Page 14: Fase 1 Evaluacion Inicial estructura de datos

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″.

Page 15: Fase 1 Evaluacion Inicial estructura de datos

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