Está en la página 1de 11

Universidad Industrial de Santander Programacin en c y c++ Taller Final de Programacin Grupo: O1 Presentado por:

Jos Guillermo Carrascal H

Cdigo: 2101995

Luis miguel Hernndez Lizarazo H Cdigo: 2101950

MAESTRO: JAVIER MEDINA CRUZ Fecha de entrega: 17/04/2012 que DIOS LO BENDIGA Y A SU FAMILY

ENUNCIADO :) Realizar un Programa Orientado a objetos que permita crear un Arreglo dinmico con capacidad de procesar Z objetos. Para cada Objeto se deben realizar las siguientes operaciones: Ingresar datos a una Matriz M de F filas y C columnas A partir de la Matriz M crear un vector X que contenga los datos PRIMOS de la matriz. 3. A partir del vector X, crear dos vectores Y y Z con los datos que estn en posiciones PARES y con los que estn en posiciones IMPARES de X, respectivamente. 4. Almacenar los arreglos en archivos en el disco duro (memoria secundaria) Para el conjunto de Objetos:
1. 2.

Calcular e imprimir el promedio de todos los datos de los vectores Y y Z Calcular e imprimir la cantidad de datos que contiene el vector X 3. Calcular e imprimir el promedio de los datos que estn por debajo del promedio de los datos de vector Y y Z.
1. 2.

CODIGO EN C++

#include<iomanip> #include<iostream> #include<conio.h> #include<fstream> using namespace std; using namespace System; class matrix { int mat_arreglo[20][20]; int mat_x[40],mat_y[40],mat_z[40]; double mat_prom_x,mat_bajo_prom_x; int mat_col,mat_fil; int mat_par,mat_imp; public: void crearmatrix(); int crearvectores(); double promedio(int dat_x); double debajo_promedio(int dat_x,double prom_x); }; void main() { Console::Title::set("programadores _CARRASCAL & HERNANDEZ"); Console::BackgroundColor::set(ConsoleColor::Blue); Console::ForegroundColor::set(ConsoleColor::White); Console::Clear();

cout<<"\nCuantos objetos desea trabajar: "; int n; cin>>n; matrix *mat; mat= new matrix[n]; int dat_x,sum_dat_x=0; double prom_x,bajo_prom_x,sum_prom_x=0,sum_bajo_prom_x=0,mat_prom_x,mat_bajo_ prom_x; for(int h=0;h<=n-1;h++) { mat[h].crearmatrix(); dat_x=mat[h].crearvectores(); prom_x=mat[h].promedio(dat_x); bajo_prom_x=mat[h].debajo_promedio(dat_x,prom_x); sum_dat_x+=dat_x; sum_prom_x+=prom_x; sum_bajo_prom_x+=bajo_prom_x; } mat_prom_x=(sum_prom_x/n); mat_bajo_prom_x=(sum_bajo_prom_x/n); cout<<"\nEl promedio de todos los datos de los vectores y e z es: "<<mat_prom_x; cout<<"\nLa cantidad de todos los datos de los vectores y e z es: "<<sum_dat_x; cout<<"\nEl promedio de todos los datos que estan por debajo del \npromedio en y e z es: "<<mat_bajo_prom_x; delete []mat; getch(); } void matrix::crearmatrix() { int f,c; cout<<"\n Cuantos filas y columnas desea trabajar, respectivamente: "; cin>>f; cin>>c; mat_col=c; mat_fil=f; f=mat_fil;c=mat_col; for(int h=0;h<=f-1;h++) { for(int w=0;w<=c-1;w++) { cout<<"\n M["<<h+1<<"]["<<w+1<<"]: "; cin>>mat_arreglo[h][w]; } } } int matrix::crearvectores() { int f,c; f=mat_fil;c=mat_col; int prim=0,cont=0; for(int h=0;h<=f-1;h++) { for(int w=0;w<=c-1;w++) {

int cont=0; for(int p=0;p<=(mat_arreglo[h][w]-1);p++) { if ((mat_arreglo[h][w]%(p+1))==0) { cont++; } } if(cont<=2) { mat_x[prim]=mat_arreglo[h][w]; prim++; } } } int contpar=0,contimp=0; for(int q=0;q<=prim-1;q++) { if(((q+1)%2)==0) { mat_y[contpar]=mat_x[q]; contpar++; } else { mat_z[contimp]=mat_x[q]; contimp++; } } mat_par=contpar;mat_imp=contimp; return prim; } double matrix::promedio(int dat_x) { ofstream salida("D:\\Documentos\\arreglos.RES"); cout<<"\n MATRIZ M \n"; salida<<" Archivo creado por el programa \n "; salida<<" MATRIZ M \n"; int f,c; f=mat_fil;c=mat_col; for (int i=0; i<=(f-1); i++) { for (int j=0; j<=(c-1); j++) { cout<<setw(5)<<mat_arreglo[i][j];salida<<setw(5)<<mat_arreglo[i] [j]; } cout<<"\n"; salida<<"\n"; } cout<<"\n VECTOR X \n"; salida<<" VECTOR X \n"; for (int l=0; l<=(dat_x-1); l++) { cout<<setw(5)<<mat_x[l];cout<<"\n"; salida<<setw(5)<<mat_x[l]; salida<<"\n"; }

cout<<"\n VECTOR Y \n"; salida<<" VECTOR Y \n"; for (int t=0; t<=(mat_par-1); t++) { cout<<setw(5)<<mat_y[t];cout<<"\n"; salida<<setw(5)<<mat_y[t];salida<<"\n"; } cout<<"\n VECTOR Z \n"; salida<<" VECTOR Z \n"; for (int k=0; k<=(mat_imp-1); k++) { cout<<setw(5)<<mat_z[k];cout<<"\n"; salida<<setw(5)<<mat_z[k];salida<<"\n"; } double prom_x,suma_x=0;

for(int h=0;h<=dat_x-1;h++) { suma_x+=mat_x[h]; } prom_x=(suma_x/dat_x); cout<<"\nEl promedio de los datos de y e z es: "<<prom_x; return prom_x; } double matrix::debajo_promedio(int dat_x,double prom_x) { double bajo_prom,bajo_suma_x=0; int cont_bajo=0; for(int h=0;h<=dat_x-1;h++) { if(mat_x[h]<prom_x) { bajo_suma_x+=mat_x[h]; cont_bajo++; } } bajo_prom=(bajo_suma_x/cont_bajo); cout<<"\nEl promedio de los datos que estan por debajo del promedio en y e z es: "<<bajo_prom; return bajo_prom; }

También podría gustarte