Documentos de Académico
Documentos de Profesional
Documentos de Cultura
H O JA
IN G E N IE R O E N
C O M P U TA C I N
ESIME CULHUACAN
N O M BR E D EL ALU M NO
A p e l lid o p a te r n o
N o m b re (s )
A p e l l id o m a t e r n o
G R UPO
N o. B O LE TA
FECH A
D IA
M ES
A O
A S IG N A T U R A
PROGRAMACION ORIENTADA A
OBJETOS
PRO FESO R
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
EQUIPO DE CMPUTO
CPU
Marca_____________ Mod. _________________ N. ______________
Monitor
Marca_____________ Mod. _________________ N ______________
Teclado
Marca_____________ Mod. _________________ N. ______________
DISKETE DE 3.5
PRACTICA 13
PAGINA
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 su
tipo, 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;
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.
PRACTICA 13
PAGINA
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
ROS
PRACTICA 14
PAGINA
#include <iostream.h>
#include <stdlib.h>
// Definicin de la clase Calificaciones
class Calificaciones
{
private:
int numcalif,i;
public:
Calificaciones( int numcalif= 1, int i=1);
~Calificaciones();
void menu();
void Pedir();
};
// Constructor
Calificaciones::Calificaciones(int z, int w){
numcalif = z;
i = w;
}
// Destructor
Calificaciones::~Calificaciones(){
cout << "Objeto destruido\n";
}
// Establecer menu
void Calificaciones::menu(){
cout << "\nPROGRAMA QUE PIDE LA CANTIDAD DE CALFICACIONES QUE SE PROMEDIARAN";
cout << "\n EL RANGO DE LA CALIFICACION ES ENTRE O Y 10 (enteros)\n\n";
}
void Calificaciones::Pedir(){
cout<<" Introduce el numero de calificaciones a procesar: "; cin>>numcalif;
int *calif = new int[numcalif];
//se crea el arreglo
for(i=0; i<numcalif; i++){
cout<<" Introduzca una calificacion: ";
cin>>calif[i];
}
cout<<"\nSe creo un arreglo para "<<numcalif<<" numeros enteros\n";
cout<<" Los valores almacenados en el arreglo son: ";
for(i=0; i<numcalif; i++)
cout<<"\n "<<calif[i];
cout<< "\n" << endl;
delete calif;
}
void main()
{
Calificaciones semestre1 ;
semestre1.menu();
semestre1.Pedir();
system ("pause");
}
ROS
PRACTICA 14
PAGINA