Autor Tema: Módulos

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

19 Diciembre, 2008, 03:04 am
Leído 2007 veces

dell

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 5
  • Karma: +0/-0
  • Sexo: Masculino
Hola.

Estoy haciendo un ejercicio.
El ejercicio dice asi:
 
    Cree una clase Rectangulo. Ésta clase solo almacena las cordenadas cartesianas de las
      4 esquinas del rectángulo. El constructor llama a una función set/establecer que acepta
      cuatro coordenadas y verifica que cada una de estas se encuentre en el primer cuadrante y
      que ninguna coordena x  o y sea mayor que 20. La función set/establecer
      verifica que las coordenadas formen, en realidad, un rectángulo. Proporcione funciones
      miembro que calculen longitud, ancho, el perímetro y el área. La
      longitud es la mayor de las 2 dimensiones.


Ésto es lo que he hecho:

Código: [Seleccionar]
class Rectangulo
{
  private:
         double cc1[2]; //coordenadas cartesianas del punto 1
         double cc2[2];
         double cc3[2];
         double cc4[2];
  public:
         Rectangulo();
         Rectangulo(double, double, double, double, double, double, double, double);
         void establecerCCxy(double* , double* , double* , double*);
};

Y ésta es la implementación de las funciones:


Código: [Seleccionar]
Rectangulo :: Rectangulo()
{
   for(int i=0; i<3; i++)
       {
        cc1[i]=0;
        cc2[i]=0; 
        cc3[i]=0;
        cc4[i]=0; 
       }
}


void establecerCCxy(double* p1, double* p2, double* p3, double *p4)
{
   const int x=0, y=1;
   
   cc1[x]=(p1[x] > 20.0 || p1[x] < 0.0)? 0.0 : p1[x];
   
   cc1[y]=(p1[y] > 20.0 || p1[y] < 0.0)? 0.0 : p1[y];
   
   cc2[x]=(p2[x] > 20.0 || p2[x] < 0.0)? 0.0 : p2[x];
   
   cc2[y]=(p2[y] > 20.0 || p2[y] < 0.0)? 0.0 : p2[y]; 
   
   cc3[x]=(p3[x] > 20.0 || p3[x] < 0.0)? 0.0 : p3[x];
   
   cc3[y]=(p3[y] > 20.0 || p3[y] < 0.0)? 0.0 : p3[y];
   
   cc4[x]=(p4[x] > 20.0 || p4[x] < 0.0)? 0.0 : p4[x];
   
   cc4[y]=(p4[y] > 20.0 || p4[y] < 0.0)? 0.0 : p4[y];
 
 
  if(p1[y]==p2[y] && p1[x]==p4[x] && p2[x]==p3[x] && p4[y]==p3[y])
     cout<<"Las coordenadas si forman un rectangulo"<<endl;
  else
     cout<<"Las coordenadas no forman un rectangulo"<<endl;
 
}


Mi problema es:


Cuando creo la función "void establecerCCxy(double* p1, double* p2, double* p3, double *p4)"
el compilador me dice que tengo el siguiente error:

Código: [Seleccionar]
C:\Dev-Cpp\...\Rectangulo.cpp In function `void establecerCCxy(double*, double*, double*, double*)':
30 C:\Dev-Cpp\..\Rectangulo.cpp `cc1' undeclared (first use this function)
  (Each undeclared identifier is reported only once for each function it appears in.)

32 C:\Dev-Cpp\...\Rectangulo.cpp `cc2' undeclared (first use this function)
34 C:\Dev-Cpp\...\Rectangulo.cpp `cc3' undeclared (first use this function)
36 C:\Dev-Cpp\...\Rectangulo.cpp `cc4' undeclared (first use this function)
    C:\Dev-Cpp\...\Makefile.win [Build Error]  [Rectangulo.o] Error 1


He tratado de encontrar cómo puedo reparar ese error, pero definitivamente,  no sé que es lo que tengo malo, y les pido ayuda.

Les agradezco.


19 Diciembre, 2008, 05:44 am
Respuesta #1

Gerardo Exequiel Pozzi

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 120
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Hola,

te falta poner a quien pertenece la función establecerCCxy al igual que hiciste con la función constructora.

¡Salut!