|
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 - pacorubio77
Páginas: 1 ... 3 4 [5] 6 7 ... 9
101
« en: Sábado 8 de Noviembre de 2008, 17:45 »
Yo tengo un enunciado de un problema que me dice que debo seleccionar el medico con menor nombre y apellidos orden lexicografico,que quiere decir eso,? yo tengo en el campo privador que nombreApellidos es string,como comparo los strings para sacar el orden lexicográfico?
102
« en: Jueves 6 de Noviembre de 2008, 10:00 »
hola,me parece que te he entendido,es decir que deberia poner en el primer constructor :nombreApellidos(nombreAp)
y en el segundo constructor :nombreApellidos(m.nombreApellidos) o en el primero constructor,tambien debería cambiarlo?
103
« en: Jueves 6 de Noviembre de 2008, 09:00 »
Yo solo decía que os fijarais en la lista de inicialización,esa clase tengo más metodos realizados como getNombreApellidos...etc..etc pero no se porque en el constructor copia cuando hago :nombreApellidos(m.nombreAp) me da error,,,era por si alguien lo sabia
104
« en: Jueves 6 de Noviembre de 2008, 00:25 »
Hola,si yo tengo esta clase: class Medico{ private: string nombreApellidos; public: Medico(); Medico(const Medico &m); ...etc...etc }; #endif
y en la implementacion,es decir en el Medico.cc tengo lo siguiente: Medico::Medico(string nombreAp) :nombreApellidos(nombreAp) { } Medico::Medico(const Medico &m) :nombreApellidos(m.nombreAp) //aqui me da el error...y no se porque { //aqui pongo el codigo}
donde me da el error no se si tengo que poner m.nombreApellidos,pero no se porque? Me podeis ayudar
105
« en: Martes 4 de Noviembre de 2008, 17:57 »
Hola a todos,mirar hay un fallo de compilacion que me dice lo siguiente:
g++ -g -c -Iinclude -o lib/Habitacion.o lib/Habitacion.cc lib/Habitacion.cc: In member function ‘Habitacion& Habitacion::operator=(const Habitacion&)’: lib/Habitacion.cc:47: error: se dió un argumento de tipo ‘class Cama’ a ‘delete’, se esperaba un puntero make: *** [lib/Habitacion.o] Error 1
y el método es el slguiente:
Habitacion &Habitacion::operator=(const Habitacion &h){ vector<Cama *>::const_iterator it;
if(this !=&h){ numero=h.numero; //liberamos el vector de camas(del objeto implicito) for(it=camas.begin();it!=camas.end();it++){ delete (**it); } //copiamos el vector de camas de h en el implicito for(it=h.camas.begin();it!=h.camas.end();it++){ camas.push_back(new Cama(**it)); }
}
return *this; }
el problema está en delete **it,cual es el fallo?,no consigo verlo ..necesito ayuda,gracias.
106
« en: Martes 28 de Octubre de 2008, 18:16 »
Hola,gracias por todo,al final lo he conseguido hacer,lo he echo con el difftime
107
« en: Martes 28 de Octubre de 2008, 15:23 »
y utilizando difftime? lo has utilizado alguna vez? era para que me dijistes el funcionamiento
108
« en: Martes 28 de Octubre de 2008, 11:45 »
No entiendo lo que me has dicho,en lo de calcula los dias de diferencia,puede haber más casos raros,además de los que yo puse?
109
« en: Martes 28 de Octubre de 2008, 11:31 »
Hola,soy el mismo que puso el post de si estaba utilizando bien difftime,pero como creo que ahi estoy perdiendo el tiempo en funciones ,quiero hacerlo de manera "manual",y quiero que alguien me de una idea de como sacar la diferencia de años entre dos fechas:
es decir si uno ha nacido el 5/10/2002 y otro el 5/10/2003 la diferencia es de un año,pero habrá casos que compliquen 11/12/2002 y 14/5/2003 ,SI MIRARAS SOLO LOS AÑOS, LA DIFERENCIA SERIA 1,PERO EN REALIDAD NO ES 1,SINO QUE ES 0,ENTENDEIS LO QUE QUIERO DECIR?
NECESITO AYUDA,GRACIAS.
110
« en: Lunes 27 de Octubre de 2008, 21:02 »
Hola,mi duda es si estoy utilizando bien la funcion difftime para pasar dos fechas a años,el codigo es el siguiente: int Fecha::getDiferenciaAnyos(const Fecha &f)const{ double diferencia; cout<<"AAAAAAAAA"<<endl; time_t ahora=time(0); tm* tm1=localtime(&ahora); tm* tm2=new tm(*tm1); tm1->tm_mday=dia; tm1->tm_mon=mes-1; tm1->tm_year=anyo-1900; time_t t1=mktime(tm1); time_t t2=mktime(tm2); cout<<t1<<" "<<t2<<endl; diferencia=difftime(t2,t1); cout<<diferencia<<endl; double min=diferencia/60; cout<<min<<endl; double hor=min/60; double dia=hor/24; cout<<(dia)<<endl; double an=(dia)/365; cout<<an<<endl; return int(diferencia); }
el código que presento estoy fallando en algo espero respuesta,
111
« en: Domingo 26 de Octubre de 2008, 19:59 »
Perdón por no haberme explicado bien,me refiero a número normal cuando expreso el numero asi 1,25632 (he puesto ese número pero no quiere decir que de ese número),espero me hayas entendido.
112
« en: Domingo 26 de Octubre de 2008, 12:34 »
Hola,me gustaria como pasar este numero o números en este formato a formato normal,es decir el numero:2.3328e+08 a numero normal,existe alguna funcion?
113
« en: Viernes 24 de Octubre de 2008, 11:34 »
Hola,quisiera preguntar en este foro una pregunta sobre lex,no se si en este foro habrá algun experto,pero yo hay cosas que no se expresar en notacion lex, ahora quisiera preguntarte una una cosa,a mi en un fichero me dicen que tengo que fitrar la DESCRIPCION, LA DESCRIPCION TENDRÁ AL MENOS 2 CARÁCTERES ,Y ES UNA CADENA DE CARACTERES EN MAYUSCULAS,MINUSCULAS Y BLANCOS,QUE COMIENZA Y TERMINA SIEMPRE CON UNA LETRA.
como hago la secuencia para realizar ese filtrado?me lio mucho con la instruccion
yo si quiero que empieza con mayusculas o minisculas seria [a-zA-Z] y si pone al menos 2 seria [a-zA-Z][a-zA-Z] pero como digo yo que alterno mayusculas ,minusculas y blancos?
ya que estas cadenas me las tendria que coger como descripciones: La perra de mi abuelita esta malita Un .. Me podeis ayudar en esta duda simple?
114
« en: Jueves 23 de Octubre de 2008, 11:20 »
Hola,lo que tu dices es que esa cantidad de segundos que me da X segundos /60= Y minutos,con los Y minutos que me da Y minutos /60=Zhoras, las horas Zhoras /24= K dias, y con los dias K dias /365=T años ,a eso te refieres? y si es bisiesto?
115
« en: Miércoles 22 de Octubre de 2008, 20:54 »
Ya he puesto el código un poco más ordenado,lo que más me importa es lo que dije antes,que mi funcion devuelve un entero,pero la funcion difftime devuelve un double y cuando hago la diferencia me sale un numero con este formato 1,1256e2, y eso como lo convierto a años?
116
« en: Miércoles 22 de Octubre de 2008, 19:49 »
Perdonar,lo siento,pero me teneis que decir como poner todo para que os sea a vosotros más cómodo.
Una cosa,si os habeis fijado int getDiferenciaAnyos ,devuelve un entero,,,,pero difftime devuelve un double...que hago para luego convertir esos segundos en años?
117
« en: Miércoles 22 de Octubre de 2008, 19:20 »
Hola,no se lo errores que me da en este caso,la cuestion del método es que quiero sacar la diferencia en años,ahora mismo solo quiero que me saque en segundos y a partir de ahi la convertiré en años,pero en int getDiferenciaAnyos tengo unos fallos que no se de donde vienen,me dan errores de compilacion que no se el porqué, para ver si viendo el código me podeis ayudar, para ver el código los tengo que pasar los dos ficheros Fecha.cc ,Fecha.h ,gracias de antemano //Fecha.cc #include<iostream> #include<ostream> #include<string> #include<cstring> #include<string.h> #include "Fecha.h" #include<ctime> #include<sstream> //#include"Punto.h" using namespace std; /* Fecha::Fecha(){ dia=1; mes=2; anyo=2000; } */ Fecha::~Fecha(){ dia=-1; mes=-1; anyo=-1; } Fecha::Fecha(){ //fecha y hora del sistema time_t ahora=time(0); tm* localtm=localtime(&ahora); dia=localtm->tm_mday; mes=localtm->tm_mon+1; anyo=localtm->tm_year+1900; /* //convertir a struct tm para fecha y hora local tm* localtm=localtime(&ahora); cout<<localtm->tm_mday <<"/" <<localtm->tm_mon+1<<"/" <<localtm->tm_year+1900<<endl; */ } Fecha::Fecha(const Fecha &f){ dia=f.dia; mes=f.mes; anyo=f.anyo; } Fecha::Fecha(int d,int m,int a){ //bool diac,mesc,anyoc; if(!setDia(d)){ dia=-1; } else{ dia=d; } if(!setMes(m)){ mes=-1; } else{ mes=m; } if(!setAnyo(a)){ anyo=-1; } else{ anyo=a; } /* dia=d; mes=m; anyo=a; dia=setDia(d); mes=setMes(m); anyo=setAnyo(a); */ } bool Fecha::setDia(int d){ bool correcto=false; if ((d>=1)&&(d<=31)){ correcto=true; dia=d; } else { dia=-1; } return correcto; } bool Fecha::setMes(int m){ bool correcto=false; if ((m>=1)&&(m<=12)){ correcto=true; mes=m; } else{ mes=-1; } return correcto; } bool Fecha::setAnyo(int a){ bool correcto=false; if (a>0){ correcto=true; anyo=a; } else{ anyo=-1; } return correcto; } int Fecha::getDia()const{ return dia; } int Fecha::getMes()const{ return mes; } int Fecha::getAnyo()const{ return anyo; } void Fecha::Imprimir(ostream &os)const{ //bool diacorrecto,mescorrecto,anyocorrecto; //os<<dia<<"/"<<mes<<"/"<<anyo; //cout<<endl; //ahora vamos a validar /* diacorrecto=f2.setDia(dia); mescorrecto=f2.setMes(mes); anyocorrecto=f2.setAnyo(anyo); if((diacorrecto==false)||(mescorrecto==false)||(anyocorrecto==false)){ os<<"fecha no valida"<<endl; } else{ os<<dia<<"/"<<mes<<"/"<<anyo; } */ if( (dia==-1)||(mes==-1)||(anyo==-1) ){ os<<"fecha no valida"<<endl; } else{ os<<dia<<"/"<<mes<<"/"<<anyo; } } string Fecha::toString()const { /* //opcion 1 string fecha=""; int resto; fecha=dia/10 +'0'; //cout<<fecha<<endl; fecha+=dia%10 +'0'; //cout<<fecha<<endl; fecha+=mes/10+'0'; fecha+=mes%10 + '0'; //convertimos el año a string fecha+=anyo/1000 +'0'; resto=anyo%1000; fecha+=resto/100+'0'; resto=resto%100; fecha+=resto/10+'0'; fecha+=resto%10+'0'; */ //opcion 2 stringstream sfecha; sfecha << dia << '/' << mes << '/' << anyo << endl; // el método str() del objeto stringstream devuelve un string // con los datos que contiene el flujo de datos. //cout << sfecha.str() << endl; return sfecha.str(); } int Fecha::getDiferenciaAnyos(const Fecha &f)const{ int diferencia; time_t ahora=time(0); tm* tm1=localtime(&ahora); tm* tm2=new tm(*tm1); tm1->tm_mday=dia; tm1->tm_mon=mes-1; tm1->tm_year=anyo-1900; time_t t1=mktime(tm1); //time_t t2=mktime(tm2); diferencia=difftime(time_t t1,time_t t2); return diferencia; } //--------------------------------------------------------------------------------------------------------------------- //Fecha.h #include<iostream> #include<ostream> #include<string> #include<cstring> #include<string.h> #include<ctime> #include<sstream> using namespace std; class Fecha{ private: int dia,mes,anyo; public: Fecha(); Fecha(int d,int m,int a); Fecha(const Fecha &f); ~Fecha(); bool setDia(int d); bool setMes(int m); bool setAnyo(int a); int getDia()const; int getMes()const; int getAnyo()const; bool isBisiesto()const; void Imprimir(ostream &os)const; string toString()const; int getDiferenciaAnyos(const Fecha &f)const; };
118
« en: Lunes 20 de Octubre de 2008, 20:31 »
Hola,no se si me serviria,porque yo tengo que meter por teclado el mes ,tipo string y me tiene que devolver el numero,este me parece que no es el caso..verdad?
119
« en: Lunes 20 de Octubre de 2008, 19:43 »
pero aunque pongas #include<string>
si yo hago string mes; getline(cin,mes);
switch(mes){
}
aqui me da el mismo error aunque ponga la libreria string seguro que a usted le va de esta manera?
120
« en: Lunes 20 de Octubre de 2008, 19:04 »
Hola a todos,quisiera que me dierais una idea de asociar un mes con su respectivo numero,es decir septiembre con el 9,
yo lo he echo de una forma,pero queda muy burrada,quisiera una forma un poco más "profesional",me refiero mas simplificada, yo he echo de esta forma..(lo pongo esquemático)
int ConMes(string m){
int dev; if(m=="enero"){ dev=1; } else{ if(m=="febrero"){ dev=2; } //y asi sucesivamente con todos..... }
}
pero si alguien me da una idea como simplificar todo esto?
Espero respuestas,Gracias.
121
« en: Lunes 20 de Octubre de 2008, 18:00 »
Hola,si probé el codigo pero yo queria mostrar la fecha fuera de la funcion,AHORA SI que sale lo que yo quiero,muchas gracias,de verdad.
Ahora tengo otra duda,si me introducen la siguiente fecha :
23 de septiembre de 2002 (por ejemplo) me tiene que salir 23/09/2008 ,pero la cuestion y no se como identificar el mes con un número, he pensado una cosa, hacer como si fuera un switch,pero en un switch,no le puedo meter cadenas ..verdad?
es decir switch (mes){ case 'enero": f.mes=1;break; y asi sucesivamente... o si se podria?
122
« en: Lunes 20 de Octubre de 2008, 17:27 »
es dia ,mes y año lo que tiene que salir,pero está probado,mira si tu tienes esa funcion:
int main(){
Fecha f2; f2=conv1(yytext,yyleng); cout<<f2.dia<<"/"<<f2.mes<<"/"<<f2.anyo
}
si me meto antes en la funcion y pongo lo que usted me dijo,imprime primero eso, y despues los couts de fuera...
lo entendio?
123
« en: Lunes 20 de Octubre de 2008, 16:54 »
HOla,creo que al decir :
1. f.mes=atoi(mes1.c_str()); 2. if (f.mes < 10) 3. cout << "0"; 4. cout << f.mes;
te equivocas,porque si ves la funcion devuelve un registro f,que es de tipo FECHA;
y si yo meto 1.4.2008 y quiero que salga 01/04/2008..de su forma saldria 001/4/2008..me entiende?
124
« en: Lunes 20 de Octubre de 2008, 15:40 »
el motivo de utilizar todas esas funciones,es porque es programaion en lex,pero puse el código ya que las funciones se hacen igual que en C.
125
« en: Lunes 20 de Octubre de 2008, 13:49 »
Hola,mirar yo quiero que de una fecha asi 1.1.2008 me saque 01/01/2008 pero yo en mi función hago lo siguiente:
FECHA conv1(char yytext[], int yyleng) { FECHA f; int i, resultado=0; string cadena,dia1,mes1,anyo1; cadena=yytext; for (i=0; i< yyleng; ++i){ while(yytext!='.'){ dia1+=yytext; i++; } i++; f.dia=atoi(dia1.c_str()); cout.fill('0');cout.width(2); //ahora vamos con los meses while(yytext!='.'){ mes1+=yytext; i++; } i++; f.mes=atoi(mes1.c_str()); cout.fill('0');cout.width(2); while(i<yyleng){ anyo1+=yytext; i++; } f.anyo=atoi(anyo1.c_str()); } return f; }
yytext,es porque la fecha se la meto como cadena y yyleng es la longitud de la cadena.
el dia si me sale bien,pero el mes no me sale si mete el 4 me sale el 4, y me tiene que salir el 04,me decir otra forma si de esta forma no sale?
Páginas: 1 ... 3 4 [5] 6 7 ... 9
|
|
|