• Miércoles 8 de Mayo de 2024, 01:23

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - -.-JP

Páginas: [1]
1
C/C++ / Memoria Dinamica en MATRIZ
« en: Domingo 5 de Junio de 2011, 08:32 »
Buenas !!

Para un proyecto desarrolle un template de matriz, la matriz se debe llenar alrevez:
---> (9,1)(9,2)(9,3)....
      (8,1)(8,2)(8,3)....
        :
        :
       (1,1)(1,2)(1,3)....

no puede utilizarse el 0!
template <class T>
matriz<T>::matriz() {
   _mat = new T**[_n];
   for(int i = _n; i >=1; i--) {
      _mat = new T*[_n];
      for(int j = 1; j< _n; j++) {
         _mat [j] = NULL;
      }
   }
}

template <class T>
const int matriz<T>::_n = 9;

template <class T>
unsigned int matriz<T>::n() const {
   return _n;
}

al establecer 9... la matriz sera cuadrada de 9x9.... pero tengo un error en el constructor que no logro enteder, terminando en un error al ejecutarse donde se cae el programa ( segmentation fault)
Espero sus respuestas, GRACIAS  :D

2
C/C++ / Template de Matriz
« en: Viernes 3 de Junio de 2011, 01:43 »
Buenas!!
He implementado una template de matriz; con el objetivo de usarle en un proyecto, especificamente un juego de dados, con casillas y mas....
aparentemente todo funciona, pero tengo un problema con el toString()!  no me reconoce la funcion que tendria el objeto.

Adjunto el codigo: Espero Puedan ayudarme a Solucionarlo. MUCHAS GRACIAS

#ifndef MATRIZ_H
#define   MATRIZ_H

#include <iostream>
#include <sstream>

using namespace std;


template <class T> class matriz;

template <class T>
class matriz {
public:
    matriz();
    virtual ~matriz();
    matriz(const matriz<T>&);

    virtual unsigned int n() const;

    void agregar(T*, unsigned int, unsigned int);
    virtual T* recuperar(unsigned int, unsigned int) const;


    virtual bool validar(unsigned int, unsigned int);

    virtual string toString()const;
    virtual void eliminar(unsigned int, unsigned int);

private:
    T*** _mat;
    static const int _n;
};

// -----------------------------------------------------------//

template <class T>
matriz<T>::matriz() {
    _mat = new T**[_n];
    for (int i = _n; i >= 1; i--) {
        _mat = new T*[_n];
        for (int j = 0; j < _n; j++) {
            _mat [j] = NULL;
        }
    }
}

template <class T>
const int matriz<T>::_n = 9;

template <class T>
unsigned int matriz<T>::n() const {
    return _n;
}

template <class T>
matriz<T>::~matriz() {
    for (unsigned int i = 0; i < _n; i++) {
        for (unsigned int j = 0; j < _n; j++) {
            if (_mat[j] != NULL) {
                delete _mat[j];
            };
        }
        delete[] _mat;
    }
    delete[] _mat;
}

template <class T>
void matriz<T>::eliminar(unsigned int filas, unsigned int col) {
    _mat[filas][col] = NULL;
}

template <class T>
void matriz<T>::agregar(T* nuevo, unsigned int filas, unsigned int col) {
    if ((filas <= _n) && (col <= _n)) {
        if (!_mat[filas][col]) {
            _mat[filas][col] = nuevo;
        } else {
            _mat[filas][col] = NULL;
        }
    }
}

template <class T>
T* matriz<T>::recuperar(unsigned int filas, unsigned int col) const {
    return (filas < n() && col < n()) ? _mat[filas][col] : NULL;
}

template <class T>
bool matriz<T>::validar(unsigned int filas, unsigned int col) {
    return (filas < n() && col < n());
}

template <class T>
string matriz<T>::toString()const {
    stringstream r;
    unsigned int c = n() + 1;
    r << "n";
    for (unsigned int i = 0; i < n(); i++) {
        r << "  +---+---+---+---+---+---+---+---+---+";
        r << "n";
        c--;
        for (unsigned int j = 0; j < n(); j++) {
            if (j == 0) {
                r << c << " ";
            }
            r << "|" << " ";
     r << ((_mat[j] != NULL) ?  ? _mat[j]->toString() : " ");
            r << " ";
            if (j == n() - 1) {
                r << "| n";
            }
        }
    }

    return r.str();
}

#endif   /* MATRIZ_H */

3
Visual C++ / Re: VALIDAR double
« en: Miércoles 13 de Octubre de 2010, 22:44 »
Mas que todo ocupo que si me ingresan una letra que no se caiga el programa =S e buscado y tratado de varias maneras pero sigue sin funcionar

4
C/C++ / Validar Numeros
« en: Miércoles 13 de Octubre de 2010, 10:49 »
buenas =)
podrai alguien ayduarme, tengo un programa que realiza calculos, y ocupo que el usuario solo digite numeros, letras se me cae el programa -.-. Como valido que solo digite numeros de tipo double??? les dejo parte del codigo:

:hitcomp: case '1':
{
system("cls");
system("color f5");
double xp;
double yp;
cout<<endl<<endl;
cout<<" PUNTO"<<endl;
cout<<" _____"<<endl;
cout<<endl<<endl<<endl;
cout<<"Digite (x,y) para crear Punto: "<<endl;
cout<<endl;
cout<<"X: ";
cin>>xp;
cout<<endl;
cout<<"Y: ";
cin>>yp;
menuPunto(xp,yp);
break;

}

5
Visual C++ / VALIDAR double
« en: Miércoles 13 de Octubre de 2010, 10:44 »
buenas =)
podrai alguien ayduarme, tengo un programa que realiza calculos, y ocupo que el usuario solo digite numeros, letras se me cae el programa -.-. Como valido que solo digite numeros de tipo double??? les dejo parte del codigo:

 :hitcomp:  case '1':
        {
            system("cls");
            system("color f5");
            double xp;
            double yp;
            cout<<endl<<endl;
            cout<<"                                       PUNTO"<<endl;
            cout<<"                                       _____"<<endl;
            cout<<endl<<endl<<endl;
            cout<<"Digite (x,y) para crear Punto: "<<endl;
            cout<<endl;
            cout<<"X: ";
            cin>>xp;
            cout<<endl;
            cout<<"Y: ";
            cin>>yp;
            menuPunto(xp,yp);
            break;

        }

6
C/C++ / Re: metodo de puntos en un plano"help
« en: Lunes 11 de Octubre de 2010, 07:23 »
wow gracias eso era lo que necesitaba!
ahora tengo otra pequeña consulta
tengo submenus de la clase: digamos en la interfaz pregunto si el usuario desea crear un punto, un cuadrado, un triangulo....
cuando el usuario quiera crear un triangulo, se debe abrir los menus de triangulo y podder trabajar ahi y que luego regrese al menu principal
algun consejo de como hacerlo =)?

7
C/C++ / Re: metodo de puntos en un plano"help
« en: Lunes 11 de Octubre de 2010, 00:11 »
gracias por esa guia de C++ :D sirvio bastante
ya temrine el proyecto y solo necesito una cosa, a ver si me pueden ayudar
como hago para que en la interfaz se limpie la pantalla tras un metodo, digamos que no salga toooodo seguido.

8
C/C++ / Re: metodo de puntos en un plano"help
« en: Sábado 2 de Octubre de 2010, 06:59 »
jejeje gracias, y no pretendo que lo hagan, jaja solo que me den sus consejos, el codigo ya lo estoy haciendo, ayudaria si me guiaras un poco mas :)

9
C/C++ / metodo de puntos en un plano"help
« en: Sábado 2 de Octubre de 2010, 01:25 »
Es parte de un proyecto en el cual el metodo base y mas impotante es este, es sobe poligonos y sus areas en un plano, no se debe ealizar la representacion grafica..."Un punto en el plano se representa mediante un par ordenado (x,y),“y” representa un número real en el eje Y y “x” en el eje X. Un punto debe ser capaz de realizar un desplazamiento horizontal de valor “n” y un desplazamiento vertical de valor “n” en el plano. Un punto debe de poseer un método que permita calcular su distancia con respecto a otro punto y poseer un método que permita saber si un punto es colineal a otro punto"

GRACIAS!por la ayuda con el codigo, si pueden incluir comentarios seia perfecto :D, estoy usando codeblocks

Páginas: [1]