Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - .:BlackCoder:.

#1
Bueno el titulo no es muy exacto pero tengo una clase dLista para listas dobles, y una clase iterator para iterar en esa lista... Pero ambas clases son genericas.... es decir tengo que hacer esto...


Código (cpp) [Seleccionar]

template <class T>
class dList{
.
.
.
};

template <class T>
class iterator{
.
.
.

};

//En main()
dList<int> lista;
iterator<int> it(lista);


Y quisiera poder esto:

Código (cpp) [Seleccionar]
dList<int>::iterator it; //como los iteradores de la clase vector< >
//y luego le asigno al iterador el nodo etc etc....


Entonces que debo declarar dentro de que o tengo q hacer algun espacio de nombre? Si me pueden dar a detalle un ejemplo, porque he intentado declarando iterator dentro de dList pero me da errores... Gracias

Saludos...

EDIT:
Ya lo solucione...
Código (cpp) [Seleccionar]
template <class T>
class dList{
    public:
class iterator;
.
.
.
};

template <class T>
class dList<T>::iterator{
.
.
.
};


Espero le sea util a alguien...

Saludos
#2
Programación C/C++ / problemas con ctime
14 Julio 2011, 02:07 AM
Buenas alguien sabe porque me da 2 valores diferentes una llamada a ctime con el mismo argumento?
En principio tengo
Código (cpp) [Seleccionar]
time_t ent= pedido->get_entra();
        time_t sal= pedido->get_sale();
        time_t ven= pedido->get_vence();


Los 3 metodos del objeto "pedido" devuelven time_t diferentes (Estoy seguro)

Luego hago

Código (cpp) [Seleccionar]
filetext<<"Entrada: "<<ctime(&ent)<<std::endl
             <<"Sale: "<<ctime(&sal)<<std::endl
            <<"Vence: "<<ctime(&ven)<<std::endl;


Pero antes para estar seguro hice

Código (cpp) [Seleccionar]
ui->label->setText(ctime(&sal));

Y en label me aparece una fecha X pero en el archivo de texto me aparece 3 veces la misma fecha, y ni siquiera la fecha X de "sal", sino la fechade "ent". Quien me puede decir el por que?

Saludos...
#3
Programación C/C++ / Como imprimir...?
7 Julio 2011, 21:13 PM
Buenas foro, necesito que mi programa imprima un archivo de texto. He visto codes sencillos para cuando la impresora esta en el LPT1, pero no se como hacerlo sino lo esta... Pues esta en un USB... Si alguien me da una idea, ejemplo, link o algo donde expliquen como hacerlo se lo agradezco. Estoy usando Qt asi que me sirven ejemplos de como hacerlo "a mano" o usando la API de Qt. Supongo que Qt me debe facilitar eso pero no se como...

Saludos...
#4
Buenas, estaba retomando el tema de archivos pero me quede estancado  :xD

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

class Personas{
   private:
       char Nombre[30];
       int edad;
   public:
       Personas(char *x="",int e=0){
           strcpy(Nombre,x);
           edad=e;
       }
       const char* getNombre() const{
           return Nombre;
       }
       int getEdad() const{
           return edad;
       }
       void setNombre(const char cad[]){
           strcpy(Nombre,cad);
       }
       void setEdad(const int e){
           edad=e;
       }
};

void mostrar(){
   ifstream ent("PRUEBA.dat",ios::in | ios::binary);
   Personas aux;
   
   while(!ent.eof()){
       ent.read(reinterpret_cast<char *> (&aux),sizeof(Personas));
       cout<<aux.getNombre()<<endl<<aux.getEdad()<<endl;
   }
    ent.close();
}

int main(int argc, char *argv[])
{
   Personas persona("ALGUIEN",50);
   Personas persona2("Otro",20);
   
   ofstream sal("PRUEBA.dat", ios::out | ios::binary);
   
   sal.write(reinterpret_cast<char *>( &persona ), sizeof(Personas));
   sal.write(reinterpret_cast<char *>( &persona2 ), sizeof(Personas));
   sal.close();
   
   mostrar();
   
   system("PAUSE");
   return EXIT_SUCCESS;
}


El programa muestra 2 veces el ultimo registro es decir, muestra:

ALGUIEN
50
Otro
20
Otro
20


Por que?
#5
Programación C/C++ / Duda con validacion...
26 Febrero 2011, 17:52 PM
En este code... Que valida la entrada de un entero...

Código (cpp) [Seleccionar]
  int numero, cont = 0;
  bool continuar;

  do {
     continuar = false;
     cin.clear();
     if(cont > 0) cin.ignore(1024, '\n');
     cout << "Introduce un numero: ";
     cin >> numero;
     cont++;
     if(cin.fail() && cin.rdstate()){
        cout << "NO ES UN NUMERO" << endl;
        continuar = true;
     }
  } while (continuar);


Por que 1024? De hecho funciona hasta con 1... yo crei que funcionaria con un simple cin.ignore( '\n');  

Pero nop  :xD

Saludos...

EDIT:

Ya vi el por que, mejor hacerlo asi:

Código (cpp) [Seleccionar]
int x;
    do{   
        if (!cin){
            cin.clear();
            while (cin.get() != '\n');
        }           
        cout<<"dame x: ";
        cin>>x;
       
    }
    while(!cin);


:)
#6
Hola, pes esa es la duda, alguien ha usado, o sabe que uso tienen las hiperbolas o los elipses en la programacion? o en la computacion?...
Existe la posibilidad de que me pregunten eso y no tengo idea  :-\

Saludos...
#7
Wenas es una urgencia pero no lo hayo, cual es equivalente al residuo en lenguaje matematico? Es decir lo que en C/C++ es 2+4%2 en matematica como se escribe?

Es urgente lamento el offtopic...

Saludos
#8
Wenas... Aca dejo un code de una MiniAgenda que estuve haciendo, guarda Un nombre y un numero que en este caso es una edad pero el cambio para que guarde un tlf es minimo... Gracias a littlehorse y Leo Gutierrez por sus consejos  :xD:

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

class Agenda{
        char name[30];
        int age;
    public:
        int contar();
        void extraer(Agenda* Persona);
        void ordenar(Agenda* Persona);
        void agregaralfi(const char* nombre, int edad);
        const char* getname();
        int getage();
        void set(char*,int);
};

int main(int argc, char *argv[])
{
    int op;
    do{
        cout<<"1.Ingresar una persona a la agenda"<<endl;
        cout<<"2.Ver todas las personas de la agenda"<<endl;
        cout<<"3.Ordenar agenda"<<endl;
        cout<<"4. Salir"<<endl;
        cin>>op;
       
        if (op == 1){
            char aux[30];
            int ageaux;
            cin.ignore();
            cout<<"Ingrese el nombre: ";
            cin.getline(aux,30);
            cout<<"Ingrese la edad: ";
            cin>>ageaux;
            Agenda persona;
            persona.agregaralfi((const char*)aux,ageaux);
        }
        else if (op == 2){
            Agenda *persona;
            int x=persona->contar();
            if (x > 0){
                persona= new Agenda [x];
                persona->extraer(persona);
                for (int i=0;i<x;i++)
                    cout<<persona[i].getname()<<persona[i].getage()<<endl;
            }
            else if (x==0)
            cout<<"No hay personas"<<endl;
            else
            cout<<"Error al abrir el archivo, compruebe su existencia"<<endl;

            delete[] persona;
        }
        else if (op == 3){
            Agenda *persona;
            int x=persona->contar();
            if (x > 0){
                persona= new Agenda [x];
                persona->extraer(persona);
                persona->ordenar(persona);
                for (int i=0;i<x;i++){
                    cout<<persona[i].getname()<<persona[i].getage()<<endl;
                    persona[i].agregaralfi(persona[i].getname(),persona[i].getage());
                }
            }
            else if (x==0) cout<<"La agenda no tiene personas"<<endl;
            else cout<<"Error al abrir el archivo, compruebe su existencia"<<endl;
        }
        cout<<"\n\n\n";
    }while (op != 4);
   
    cin.get();
    return EXIT_SUCCESS;
}

void Agenda::extraer(Agenda* Persona){
    ifstream ent("Agenda.txt");
    if (!ent){
        cout<<"Error al abrir el archivo, compruebe su existencia"<<endl;
        return;
    }
    for (int i=0;i<contar();i++){
        ent.getline(Persona[i].name,30,':');
        ent>>Persona[i].age;
        ent.ignore();
    }
    ent.close(); 
}

int Agenda::contar(){
    ifstream ent("Agenda.txt");
      if (!ent){
        return -1;
    }
    int c=0;
    while (ent) if (ent.get() == '\n') c++;
    ent.close();
    return c;
}

void Agenda::ordenar(Agenda* Persona){
    int c=contar();
    ofstream sal("Agenda.txt");
    sal.close();
    for (int i=0;i<c-1;i++)
        for (int j=i+1;j<c;j++)
        if (strcmp(Persona[i].getname(), Persona[j].getname()) > 0){
            Agenda AUX=Persona[i];
            Persona[i]=Persona[j];
            Persona[j]=AUX;
        }
}

void Agenda::agregaralfi(const char* nombre, int edad){
    ofstream sal("Agenda.txt", ios::out | ios::app | ios::ate);
    if (!sal) exit(1);
    sal.setf(ios::left);
    sal.width(29);
    sal<<nombre<<':'<<edad<<endl;
    sal.close();
}

void Agenda::set(char nombre[], int edad){
    strcpy(this->name,nombre);
    this->age=edad;   
}

const char* Agenda::getname(){
    return this->name;
    }

int Agenda::getage(){
    int x=this->age;
    return x;
    }


Estare ausente un tiempo pero cuando vuelva vere las criticas y/u observaciones... Saludos....

PD: Alguien por ahi lo hizo con sobrecarga de operadores y me dijo que lo queria postear (ayer), le dije que esperara un poco hasta que yo creara el post y aca esta... Do it  :xD
#9
Wenas... no se si es por el tiempo sin programar o wtf pero tengo problemas con getline() Lo explico en el codigo:

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
   ofstream sal("Agenda.txt");
   sal<<"Pedro Perez                  :"<<18<<endl;//Agrego un nombre y espacios
   sal<<"Maria Rodriguez              :"<<56<<endl;//para completar 29 caracteres
   sal.close();                                                     //mas el ':'
   
   ifstream ent("Agenda.txt");
   int c=2;
   char reg[c][30];
   int edad[c];
   for (int i=0;ent;i++){
       ent.getline(reg[i],30);//Aca deberia extraer los 29 caracteres y agregar a reg un '\0'
       ent.ignore();//Aca ignorar el ':'
       ent>>edad[i];//Pes leer la edad
       ent.ignore();//Ignorar el fin de linea...
   }
   
   cout<<reg[0]<<"T"<<edad[0]<<endl;//Mostrar tal cual como esta en el archivo
   cout<<reg[1]<<"T"<<edad[1]<<endl;//La T era un ':', pero lo use para ver
                                   //si conseguia el error

   ent.close();
   
   system("PAUSE");
   return EXIT_SUCCESS;
}


Me imagino el error esta en getline()... La use pasandole como delimitador ':' y funciono pero igual me quedo la duda de porque no funciona...

Gracias a quien pueda aclarar la duda...

Saludos...


Asi es como "funciona" bueno mas o menos porque el for da una vuelta de mas... como que si no consigue el EOF, pero no se porque el ejemplo de arriba no lo hace =.=

Código (cpp) [Seleccionar]
    ofstream sal("Agenda.txt");
    sal<<"Pedro Perez                  :"<<18<<endl;
    sal<<"Maria Rodriguez              :"<<34<<endl;
   
    sal.close();
    ifstream ent("Agenda.txt");
    char name[2][30];
    int age[2];
    for (int i=0;ent;i++){
        ent.getline(name[i],31,':');
        cout<<name[i];
        ent>>age[i];
        cout<<age[i]<<endl;
        ent.ignore();
        cout<<i<<endl;
    }
   
    ent.close();
   

Por favor alguien que me aclare porque no funciona el code del mensaje anterior y porque este da una vuelta de mas...


Saludos...
#10
Wenas... Tengo un ejercicio que dice algo asi:

    "Hacer un programa que pida nombres y numeros de telefono de personas, y los agregue de forma alfabetica a un archivo... Se desea que cada vez que se ejecute el programa se puedan agregar personas y numeros de tlf correspondientes al mismo, pero que los mantenga ordenados alfabeticamente..."

    Algo asi dice el ejercicio, ahora... Creo que con archivos binarios seria lo ideal, mas deseo hacerlo con archivos de textos... Pero lo haga como lo haga, el problema esta en que, lo que se me ocurre es extraer el contenido del archivo en un vector estructuras (con un miembro char* y otro int) ordenar ese vector y luego agregarlos al archivo pero elminando su contenido primero...

    Ahora la duda en si, es una buena manera de hacerlo? o hay otras mucho mas eficientes?

Saludos...
#11
Wenas, increiblemente me mandaron una tarea en la uni que no entiendo  :xD A ver si alguien me sabe que quieren decir, dice:

Encuentre la expresión matemática equivalente a la expresión en C/C++ dada a continuación: (2 * z + x / y) > w && (4 + w % 4) – 3 * y <= 2.6 * z || !k && (z % 6 *(x - y) * 4.5) == h

La duda es, WTF quieren decir con expresion matematica?  :laugh: creo que no se expresar los AND y Or de manera matematica, o quizas si sepa pero no a q se refieren...

Si alguien puede dar un ejemplo para guiarme, se lo agradezco

Saludos...

#12
Programación C/C++ / Problema con clase list
15 Julio 2010, 01:08 AM
Wenas estaba ayudando a alguien con un ejercicio de listas usando la clase list, porque aun no se de listas  :xD

Y pes me da un error con el iterador, no se si es un error basico sobre los iteradores o algo mas intenso. Aca dejo las secciones de codigo:

Código (cpp) [Seleccionar]
typedef struct {
    unsigned int NumPasaport;
    string Nombre;
    unsigned int CI;
    string Destino, Hora;
} Pasajeros;


Código (cpp) [Seleccionar]
list<Pasajeros> pasajero;

Código (cpp) [Seleccionar]
    list<Pasajeros>::iterator it=pasajero.begin();
    cout << *it << endl;//Aca


El error:
no match for 'operator<<' in 'std::cout << it'

En el wxDev
Saludos...
#13
Esa es la duda, cual es la manera de usar strtok() con objetos (instancias) de la clase string, pes me preguntaron que como se hace, porq "la funcion no trabaja con objetos de la clase string" y pes no se si existe alguna funcion miembro de dicha clase, que haga la labor de strtok()... O hay que hacerla "a mano" con las funciones disponibles...

Y pes como no tengo compilador a la mano para hacer la prueba... Quisiera por favor, alguien me diera un codigo de ejemplo usando strtok() o algo similar con la clase string...

Saludos...
#14
Programación Visual Basic / Manual(es) de ADO
10 Junio 2010, 05:00 AM
Wenas he estado leyendo un poco sobre bases da datos (lo basico, con access) y ADO, las he manejado un poquito, pero pes quiero aprenderlo bien no un poquito, asi que busque un libro, pero pes esta hecho como para personas con conocimientos de DAO y RDO y bases de datos...

Lo cual no es mi caso, solo se hacer una base de datos simple y manejarla con lo poco que se de ADO, ya que me dieron un par de clases de visual basic, pero muy practicas y quiero (y necesito) saber mas teoria... Pero al grano:

Que manual, tutorial o libro, sobre ADO (para principiantes) me recomiendan... Que no sea los de la pagina del guille, que es con el que empiezare...

Saludos
#15
Wenas, estuve viendo un code de un "procesador de textos" en el que usan la funcion forms.count, y al pulsar (en un menu) guardar, si forms.count es igual a 1, es porq no hay documentos para guardar... por que...? cuando forms.count devuelve 1 no es porque hay 2 formularios "cargados"?... el 0 y el 1??

Aca ta el code:

Código (vb) [Seleccionar]
Private Sub mnuGuardar_Click()

On Error GoTo errSub

If Forms.Count = 1 Then
   MsgBox "No hay documentos para guardar", vbInformation
   Exit Sub
End If
If InStr(1, ActiveForm.Caption, sCaption) Then
    CommonDialog1.ShowSave
    If CommonDialog1.FileName = "" Then Exit Sub
    ActiveForm.RichTextBox1.SaveFile CommonDialog1.FileName
Else
    ActiveForm.RichTextBox1.SaveFile ActiveForm.Caption
   
End If

Exit Sub
errSub:

Select Case Err.Number
  Case 91
     Resume Next
End Select


Fuente: http://www.recursosvisualbasic.com.ar/htm/tutoriales/visual-basic-mdi.htm

La duda es sencilla pero pes no la he podido resolver...
Saludos...
#16
Wenas... Tengo un cd de visual studio y cuando lo instalo... Despues de aceptar todo, y reiniciar la pc par aque empieze la instalacion, y darle a instalar Visual Basic 6, me da un error con el archivo... acmboot

Dice que no es compatible con mi version de windows... Tengo Vista 64 bits...  >:( como hago para burlar ese problema?...Quien me da una ayudita con esto?

Saludos...
#17
Wenas  everyone :D

Pes si ya vi un post donde preguntan que edad tienen los usuarios de este foro... Pero pes ahora me llama la atencion saber a que edad comenzaron a programar...

Yo particularmente, tengo como 6 meses, asi que a los 17  ;D

Saludos...
#18
Bueno esa es la pregunta, creo que sus respuestas ayudaran a los principiantes, como yo, a elegir por cual o cuales ramas de la programacion se puede especializar... Con ramas de la programacion me refiero a, por ejemplo:

Juegos, Kernels, Drivers, Softwares empresariales (financieros, por decir algo), entre otras...

A mi por ejemplo me gustan casi todas las que mensione, pero se que no puedo especializarme en cada una de ellas... So...

¿Que rama de la programacion te gusta mas? y ¿Por qué?

Saludos...
#19
Wenas hice una grafica en un picturebox y quiero que cuando se pase el mouse por un punto de la grafica muestre sus coordenadas... Pero me muestra muchos decimales quiero que muestre solo 2 decimales... Aca esta esa parte del code...

Código (vb) [Seleccionar]
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.ToolTipText = "x= " & X & " y= " & Y
End Sub


Saludos... y gracias de antemano
#20
Wenas... Pes me dieron un cd de fifa09 pero esa @#$%& no trajo un serial... Y despues de instalarlo y ejecutar el programa, me pide codigo de registro, he introducido como 100 que he visto por internet... y ninguno lo acepta y dice que reescriba el codigo con cuidado  :¬¬

:xD Sera por lo viejo que es el juego, pero pes quiero matar la fiebre... Quien me facilita unos seriales de esos por favor...

Saludos...
#21
Wenas...

Andaba viendo el post "Asignar memoria dinamica..." blablabla... Y pes yo crei ya sabia de memoria dinamica pero pes cuando trate de hacer el problema yo, en C++ no me da los resultados esperados... Lo que quiero hacer, es que el usuario ingresa una palabra y si es diferente de "adios" (tengo problemas con eso, asi que lo puse a que ingrese 4 palabras9 se guarde en un array dinamico, eso es todo... El problema es que nada mas me atrapa la ultima de las palabras las demas no... Y aunque lo hice con la clase string, ya que es mas facil xD lo quiero hacer con char* pes para aprender de los errores  :xD Aca esta el code:
EDITO: el codigo un poco optimizado
Código (cpp) [Seleccionar]
    char aux[20],*cad,*tem;
    for (int a=0;a < 4;a++){
        cin.getline(aux,20);
        tem=new char [strlen(cad)];
        strcpy(tem,cad);
        delete[] cad;
        cad= new char [strlen(tem)+strlen(aux)];
        strcpy(cad,tem);
        strcpy(cad,aux);
        delete[] tem;
    }
    cout<<cad<<endl;
   
    delete[] cad;


Creo que el problema es con strcpy(tem,cad) o cuando asigno memoria con new pes se borra el contenido, pero no estoy seguro de cual es el problema asi que acudo a ustedes...

Saludos...
#22
Estoy estudiando con la version portable del visual studio, pero pes copie la carpeta de microsoft visual studio de la PC de un amigo, que tenia W98 y cuando entro a la carpeta w98 de microsoft visual studio y busco el icono de VB me sale el siguiente error...

"No se puede iniciar VB debido a una configuracion no valida del sistema. Falta o no esta registrado VB6tmpl.tlb"

Y pes no se cual es el problema la copie completa, asi que me imagino el error es que no lo estoy instalando como es... Por favor, que alguien me ayude...

Saludos... Y gracias de antemano
#23
Estaba haciendo un ejercicio en el que el usuario introduce 2 numeros que seran, el inicio y el final de un bucle... y al hacer click en un boton se realiza el bucle, y se muestra (con print) los numeros en ese intervalo... Pero el print los muestra en la esquina de la ventana y un debajo del otro... Yo quiero mostrarlos en una etiqueta (label) una al lado del otro, y si es posible separados por ', '... Pero no se como hacerlo... tengo mas o menos la idea de como hacerlo pero con un textbox, con la propiedad selstart... Pero no se ocmo hacerlo con una etiqueta... Aca esta el code para que no piensen que miento:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
Dim A As Integer
    Dim B As Integer
    Dim i As Integer
    A = Text1
    B = Text2
    For i = A To B
    Print i
    Next
End Sub


De antemano gracias a quien me pueda ayudar...

Saludos...
#24
Wenas... Empeze ayer a estudiar VB6 y pes tengo un par de dudas... Quiero cambiar el color de fondo de mi ventana, con 3 scoll bar que definen los valores de la funcion RGB... Y funciona pero quiero que cuando yo mueva el tambor (sin soltarlo) cambie el color de fondo... Como? Que propiedad tengo que cambiarle?

Es decir que no tenga que soltar el tambor para que cambie... Espero haberme hecho entender  :xD

Este es mi code aunque me imagino que eso tiene que ver con una propiedad:
Código (vb) [Seleccionar]
Private Sub VScroll1_Change(Index As Integer)
Me.BackColor = RGB(VScroll1(0).Value, VScroll1(1).Value, VScroll1(2).Value)

End Sub



Y la otra duda es ¿Como obtengo en tiempo de ejecucion el valor que tenga una combobox?... Es decir a medida que cambie... Ya que se lo quiero dar al texto de una etiqueta (label)... Yo crei que era algo asi:
Código (vb) [Seleccionar]
Private Sub Combo1_Change()
Label1.Caption = Combo1.Text
End Sub


Pero nop xD
De antemano gracias...
#25
Wenas... Sabes que escuche un rumor de que Tibia (estoy seguro de que casi todos lo conocen  :rolleyes:) se puede jugar sin internet... es decir como que tu creas tu servidor... Y pes juegas solo, es verdad???  :o yo tengo añossss que no se nada de el juego pero pes como hoy en dia todo es posible   :xD... En fin, hay una version para jugar solo y sin internet :huh:
Saludos...
#26
Wenas... Weno esta duda es teorica, y pes a ver si me refrescan  :xD Porq este code no compila:
Código (cpp) [Seleccionar]
int digit = 25;           // Variables
float number = 12.5;
char letter = 'A';
int set[4] = {2,4,6,8};

int *Iptr;       // Pointers
float *Fptr;
char *Cptr;
int *Aptr;

Iptr = &digit;     //I get errors here
Fptr = &number;
Cptr = &letter;
Aptr = set;

Y este otro si:
Código (cpp) [Seleccionar]
int *Iptr = &digit;
float *Fptr = &number;
char *Cptr = &letter;
int *Aptr = set;


Esta duda la vi en otro post y pes resulto que yo tampoco se  :(
Saludos...
#27
Wenas  :)... Andaba viendo unos codes y vi algo, que me llamo la atencion... Puesto que no le veo el ¿por que?... Aca les dejo parte del code, que me imagino con eso basta:

Código (cpp) [Seleccionar]
BasePoint **objs = new BasePoint*[5];
// allocate space for 10 BasePoint pointers,
// they may be used to store derived classes

// creating objects
objs[0] = new Circle(7, 6, 55);
objs[1] = new Rectangle(12, 54, 21, 14);
objs[2] = new Square(19, 32, 10);
objs[3] = new Oval(43, 10, 4, 3);
objs[4] = new Square(3, 41, 3);

bool flag=false;
do {
cout << endl << "We have 5 objects with numbers 0..4" << endl;
cout << "Enter object number to view information about it " << endl;
cout << "Enter any other number to quit " << endl;
char onum; // in fact, this is a character, not a number
// this allows user to enter letter and quit... (1)
cin >> onum;

// flag -- user have entered number 0..4
flag = ((onum >= '0')&&(onum <= '4'));

if (flag)
objs[onum-'0']->info();//(2)

} while(flag);

// freeing memory
for(int i=0;i<5;i++)
delete objs[i];

delete [] objs;
cin.get();
return 0;
}


Ok... En (1) lo que no capto es, para que un char, segun mi ingles  :xD "permite ingresar un entero y salir" 0o? y que? igual flag no se va a hacer true si declaras onum como int... porq por ejemplo 'A' o 97 (o su valor en ascii) no es menor que 4  :-\

Y en (2) pes para que el " -'0' "?

Saludos, esas 2 dudas na mas y pes de antemano gracias...
#28
Hardware / Se queda parada la PC
1 Mayo 2010, 17:25 PM
Wenas... Tengo 2 RAM de 512 en mi pc y una tarjeta grafica de 512... Desde que la tengo, en algunos momentos, cuando le da la gana... A veces nisiquiera cuando estoy utilizando muchos programas... Se paraliza la iimagen... y aveces no vuelvo a tener el control si no que aparece la pantalla azul de letras blancas... Crei que era la RAM y la limpie... Dure varios dias sin problemas y de nuevo se paralizo la imagen... Movi de slot las RAM de todas las maneras posibles y lo mismo... Y quisiera saber si hay algun programa y donde lo puedo descargar para verificar si la memoria RAM esta dañada...

PD: Ya la he formatiado... Varias veces  >:( tengo los drivers de la tarjeta grafica... por lo q no creo q sea eso...

Saludos...
#29
Programación C/C++ / Problema compilando
1 Mayo 2010, 00:52 AM
Wenas... Ando practicando como compilar separado, haciendo headers, you know, con clases derivadas y todo eso... Pero aun no he derivado nada y haciendo la base me da un error:
Persona.h expected `)' before "name"

Y mas abajo vi:
Persona.h `string' has not been declared

Y pes nu se el porq aca les dejo el code de la header:
Código (cpp) [Seleccionar]
#ifndef PERSONA_H
#define PERSONA_H
class Persona{
    public:
        Persona();
        Persona(string name,string ape, int t, int ced);
        virtual ~Persona();
       
        void g_nombre(string name);
        void g_apellido(string ape);
        void g_tlf(int t);
        void g_ci(int ced);
       
        string dev_nombre();
        string dev_apellido();
        int dev_tlf();
        int dev_ci();
       
    protected:
        string nombre;
        string apellido;
        int tlf;
        int ci;
};
#endif


Y aca el del source:
Código (cpp) [Seleccionar]
#include "Persona.h"

Persona::Persona(){}
Persona::Persona(string name,string ape, int t, int ced):nombre(name),
        apellido(ape),tlf(t),ci(ced){}
Persona::~Persona(){}

void Persona::g_nombre (string name){nombre=name;}
void Persona::g_apellido (string ape){apellido=ape;}
void Persona::g_tlf (int t){tlf=t;}
void Persona::g_ci(int ced){ci=ced;}

string Persona::dev_nombre()const{return nombre;}
string Persona::dev_apellido()const{return apellido;}
int Persona::dev_tlf()const{return tlf;}
int Persona::dev_ci()const{return ci;}




Y en el programa me sale en la tercera linea el error  :xD

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include "Persona.h" //Here

using namespace std;

Por favor alguien que me diga cual es el problema...
#30
Bueno la duda en general es que lenguaje es mas seguro de esos 2... O cual es, digamos mas facil de hack un programa hecho en uno de esos lenguajes. De antemano digo que estoy aprendiendo C++, y pes me "dolio" cuando lei esto...

"En Java no se permite los accesos ilegales a memoria, algo que sí se permitía en C++. Esto es algo muy importante puesto que este tipo de problema puede ocasionar la propagación de virus y otras clases de programas dañinos por la red.

El código Java pasa muchos tests antes de ejecutarse en una máquina. El código se pasa a través de un verificador de código de byte que comprueba el formato de los fragmentos de código y aplica un probador de teoremas para detectar fragmentos de código ilegal, código que falsea punteros, viola derechos de acceso sobre objetos o intenta cambiar el tipo o clase de un objeto.

Algunos de los conocimientos que podemos obtener de los códigos de byte si pasan la verificación sin generar ningún mensaje de error son:

    * El código no produce desbordamiento de operandos en la pila.

    * El tipo de los parámetros de todos los códigos de operación es conocido y correcto.

    * No ha ocurrido ninguna conversión ilegal de datos, tal como convertir enteros en punteros.

    * El acceso a los campos de un objeto se sabe si es legal mediante las palabras reservadas public, private y protected.

    * No hay ningún intento de violar las reglas de acceso y seguridad establecidas.

Por todo esto, y por no permitirlo mediante Java la utilización de métodos de un programa sin los privilegios del núcleo (kernel) del sistema operativo, la obligación de autentificación por clave pública para la realización de modificaciones, se considera Java un lenguaje seguro. Todo esto no lo incorporan ni C++ ni Smalltalk, por lo que Java es el único de los tres considerable como seguro."
#31
Wenas... El caso como lo dice el "asunto", es que no se como compilar las clases por separado y pes ni el tuto, ni el libro que sigo lo explican, sino que te hacen comentarios como "En el archivo .h va la cabezera (o algo asi) y en el .cpp la definicion (o algo asi  :xD)" Y en los post veo que utilizan llamadas como #ifndef, #endf entre otras... y hacen comentarios similares al anterior...

No se si es que ya lo lei y no lo recuerdo o wtf :huh: Pero de lo que si toy seguro es de que no soy el unico que no lo sabe hacer... Y pes me gustaria que alguien de un link o una explicacion propia (preferiblemente) de como hacerlo paso por paso (que exigente soy  :laugh:)... No pero en serio seria un buen aporte  :xD

PD: Utilizo el compilador Dev-cpp

Saludos... Y gracias de antemano.