Sugerencias

Iniciado por Gerik, 1 Septiembre 2010, 19:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Gerik

Código (cpp) [Seleccionar]
#include <conio>
#include <iostream>
#include <stdlib>
#include <math>

class C
{public:
  int *c;
  int r;
  C(){c=new int [10];}
  Union(int q[10],int p[10],int a,int b);
  int suma(int q[10],int a);
  double promedio(int a,int b);
  double varianza(int a,int b);
  double desviacion(int a);
};
main ()
   {int a,z;
    int *conjuntoA;
    int *conjuntoB;
    conjuntoA=new int [10];
    conjuntoB=new int [10];
    cout<<"Digite El Numero De Elementos Del Conjunto A: ";
    cin>>a;
    cout<<"Digite El Numero De Elementos Del Conjunto B: ";
    cin>>z;
    randomize();
    cout<<"\nEl Conjunto A es : ";
    for(int i=0;i<a;i++)
       {conjuntoA[i]=random(100);
        cout<<conjuntoA[i]<<" ";}
    cout<<"\nEl Conjunto B es : ";
    for(int j=0;j<z;j++)
       {conjuntoB[j]=random(100);
        cout<<conjuntoB[j]<<" ";}
    C obj;
    obj.Union(conjuntoA,conjuntoB,a,z);
    cout<<"\nLa Suma De A es :"<<obj.suma(conjuntoA,a);
    cout<<"\nLa Suma De B es :"<<obj.suma(conjuntoB,z);
    cout<<"\nEl Promedio De A Es :"<<obj.promedio(obj.suma(conjuntoA,a),a);
    cout<<"\nEl Promedio De B Es :"<<obj.promedio(obj.suma(conjuntoB,z),z);
    cout<<"\nLa Varianza De A Es :"<<obj.varianza(obj.promedio(obj.suma(conjuntoA,a),a),a);
    cout<<"\nLa Varianza De B Es :"<<obj.varianza(obj.promedio(obj.suma(conjuntoB,z),z),z);
    cout<<"\nLa Varianza De A Es :"<<obj.desviacion(obj.varianza(obj.promedio(obj.suma(conjuntoA,a),a),a));
    cout<<"\nLa Varianza De B Es :"<<obj.desviacion(obj.varianza(obj.promedio(obj.suma(conjuntoB,z),z),z));
    getch();
    }
C::Union(int q[10],int p[10],int a,int b)
   {for(int i=0;i<a;i++)
       c[i]=q[i];
    for(int i=0;i<b;i++)
       {c[a+i]=p[i];}
    cout<<"\nEl Conjunto Union De A y B Es : ";
    for(int i=0;i<(a+b);i++)
        {cout<<c[i]<<" ";}
   return 0;}//Cierro Union
int C::suma(int q[10],int a)
    {r=0;
     for(int i=0;i<a;i++)
         {r+=q[i];}
     return r;}//Cierro Suma
double C::promedio(int a,int b)
     {return a/b;}//Cierro Promedio
double C::varianza(int a,int b)
       {return a/(b-1);}
double C::desviacion(int a)
       {return sqrt(a);}


lo que quiero es ver si hay otra forma de eliminar la info de r cada vez que llamo la funcion suma, ademas si hay sugerencias en otra parte del codigo se aceptan 

carlitos_jajajajaja

Veo unas cuantas fugas de memoria por ahi... Deberias buscar un poco acerca del operador new y el operador delete.


Podrias hacer que el metodo promedio realice la suma, y que no necesites usar directamente el metodo suma desde main, eso le daria a tu programa un sabor mas orientado a objetos :p

Lo mismo para varianza y desviacion estandar.


Y al menos que tu profesor(a) explicitamente te lo pida, no es recomendable usar las extensiones (no estandar) de Borland c en tus programas, es decir getch()/conio, usar main y procedimientos sin tipo de retorno


Se nota que entiendes bien la idea :D el codigo esta bien, funciona


Un ultimo consejo:  Declara los arreglos un poco mas grandes porque estan muy pequenos, es muy facil hacer que la memoria se corrompa en ese programa
Merodeo los foros, esperando el momento de decir algo inteligente...

Se necesita paciencia