practica 14 poo

4
N O M B R E D E L A L U M N O N o . B O L E T A G R U P O A pe l l i d o p a t e r n o A pe l li d o m a t e r n o N o m b r e ( s) A S G N A T U R A P R O ! E S O R " O # A D E !E $ " A D A M ES A % O I N G E N I E R O E N C O M P U T A C I PRÁCTICA No. 14 OPERADOR NEW PARTE II I.- OBJETIVO : Al término de la practica el alumno podrá: - Hacer programas con el operador new y delete II.- MATERIAL Y EQUIPO: 1 EQUIPO E !"#PU$O 1 CPU #arca%%%%%%%%%%%%% #od& %%%%%%%%%%%%%%%%% '(& %%%% 1 Monitor #arca%%%%%%%%%%%%% #od& %%%%%%%%%%%%%%%%% '( %%%%% 1 T!"#$o #arca%%%%%%%%%%%%% #od& %%%%%%%%%%%%%%%%% '(& %%%%% 1 I)*E$E E +&, III&- I'$.OU!!I"' $E".I!A& Para lle/ar a ca0o la asignaci n dinámica de la memoria li0re2 !3 n% & $"t. 4os operadores n% & $"t son parte de !335 esto es2 no están dispo en donde la asignaci n dinámica de memoria por lo general se lle/a a '#""o! & (r de la 0i0lioteca de !& 4a sinta8is para utili9ar estos operadores es: puntero = n% tipo-del-objeto puntero n% (tipo-del-objeto) $"t puntero $"t ;< puntero LABORATORO DE PROGRAMA$ON ORENTADA A OB#ETOS PRA$T$A &' PAGNA & = 1 PRO)RAMACION ORIENTADA A OBJETO* E)I#E !U4HUA!A'

Upload: raul-morales

Post on 07-Oct-2015

10 views

Category:

Documents


0 download

DESCRIPTION

Practica 14 de programacion orientada a objetos, polimorfismo y herenencia

TRANSCRIPT

PRCTICA No. 14

OPERADOR NEW

PARTE II

I.- OBJETIVO:

Al trmino de la practica el alumno podr:

- Hacer programas con el operador new y delete

II.- MATERIAL Y EQUIPO:

1EQUIPO DE CMPUTO

1CPU Marca_____________ Mod. _________________ N. ______________

1Monitor Marca_____________ Mod. _________________ N ______________ 1Teclado Marca_____________ Mod. _________________ N. ______________

1 DISKETE DE 3.5

III.- INTRODUCCIN TERICA.

Para llevar a cabo la asignacin dinmica de la memoria libre, C++ dispone de los operadores new y delete. Los operadores new y delete son parte de C++; esto es, no estn disponibles en ANS C, en donde la asignacin dinmica de memoria por lo general se lleva a cabo con las funciones malloc y free de la biblioteca de C.

La sintaxis para utilizar estos operadores es:

puntero = new tipo-del-objeto puntero = new (tipo-del-objeto) delete puntero delete [] puntero

El operador new permite asignar memoria para un objeto o para un array de objetos. El operador new asigna memoria desde el rea de memoria de almacenamiento libre (free store). En C, el rea de memoria de almacenamiento libre se denomina "montn o pila" (heap). En el caso de un objeto, el tamao viene definido por su tipo. En el caso de arrays, el tamao de un elemento viene dado por sutipo, pero el tamao del array hay que especificarlo explcitamente. El tipo puede ser un tipo predefinido o un tipo definido por el usuario. El operador new devuelve un puntero a un objeto del tipo especificado, que referencia el espacio reservado. Si no hay espacio suficiente para crear un objeto del tipo especificado, el operador new devuelve un puntero nulo (O o NULL). Por ejemplo,

1ong *p1 = new long; // asignacin para un long

/ / notacin sin parntesis

f1oat *pf = new (float); // asignacin para un flotaCuando el tipo especificado corresponde a un array, el operador new devuelve un puntero al primer elemento de dicho array. En el ejemplo anterior, el arrayqueda referenciado por a y los elementos del array son a[0], a[l], a[2],...A la hora de especificar la dimensin de un array, no slo podemos utilizar constantes o variables, sino tambin expresiones. Por ejemplo, el siguiente cdigo crea un array a de dos dimensiones. Para acceder a sus elementos podemos utilizar la notacin a[0][0], a[0][l], a[0][2], ...

int di = 5;

int d2- 10;

double **a = new double *[dl * 2]; // array de punteros a for (int i = 0; i < di * 2; 1++) a[i] = new doub1e[d2]; // array a[i]

Cuando new se utiliza para asignar memoria para un nico objeto, devuelve un puntero a ese objeto:

double *a = new double; // devuelve el tipo (*)

Si se utiliza para asignar memoria para un array de objetos unidimensional, devuelve un puntero al elemento primero del array:

double *a = new doub1e[d]: // devuelve el tipo (*)Y si se utiliza para asignar memoria para un array de objetos multidimensional, devuelve un puntero al elemento primero del array que a su vez es un array; por ejemplo, un array de dos dimensiones, es un array de una dimensin donde cada elemento es a su vez un array. El tipo resultante conserva el tamao de todo menos de la dimensin primera del array. Esto implica que todas las dimensiones menos la primera tienen que ser constantes.

IV. DESARROLLO

EL ALUMNO SEGUIR LA SECUENCIA INDICADA, DESCRIBIENDO EN CADA INCISO LOS PASOS QUE SIGA:

4.1. Realice un programa con Programacin orientada a objetos en C++ con Class: "PROGRAMA QUE tenga datos miembros privados , una funcion publica donde:a) Pida cuantas calificaciones (n) flotantes va a promediar por semestre (8 semestres solo voy a pedir el promedio de un semestre)

b) por medio del operador new crear una asignacin de memoria de numeros (n) flotantes y pida el valor para almacenarlo

c) Calcule el promedio

d) Imprima los datos y el promedio con 2 decimales

e) Eliminar la asignacion dinamica

#include

#include

// Definicin de la clase Calificaciones

class Calificaciones

{

// Datos miembro de la clase Calificaciones

private:

int numcalif,i;

public:

// Funciones miembro de la clase

Calificaciones( int numcalif= 1, int i=1);

// constructor

~Calificaciones();

// destructor

void menu();

void Pedir();

};

// Constructor

Calificaciones::Calificaciones(int z, int w){

numcalif = z;

i = w;

}

// Destructor

Calificaciones::~Calificaciones(){

cout