elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: [1] 2
1  Programación / Programación C/C++ / Ayuda - Archivo binario en: 25 Enero 2019, 13:04 pm
Buenas, hice un ejercicio donde tenía que cargar en un archivo binario pares de datos donde uno era float y el otro int.
El problema es, que cuando hice otro programa para cargar un vector con esos datos guardados en ese archivo, no me muestra nada.
Aquí les dejo el código, sinceramente, no veo dónde está el problema, porque ni siquiera en la compilación me da error.

Código
  1. Pares{ float a, int b}
  2.  
  3. main(){
  4. Pares aux; vector<Pares> P;
  5. ifstream entrada;
  6. entrada.open(/*nom_archi*/,ios::binary|ios::ate);
  7. if(!entrada.is_open(){
  8. /*algo...*/
  9. }
  10. int tam_archi=entrada.tellg()/sizeof(Pares);
  11. entrada.seekg(0);
  12. for(int i=0;i=tam_archi;i++){
  13. entrada.read(reinterpret_cast <char*> (&aux),sizeof(aux));
  14. P.push_back(aux);
  15. }
  16. entrada.close();
  17. fori(P.size()){
  18. cout<<P[i].a<<" "<<P[i].b<<endl; /*No muestra nada*/
  19. }
  20.  
Esto es un ejemplo del programa que hice, para que no sea tan largo de leer, al finalizar la compilación no me saltan errores, pero no muestra el vector, como si no tuviese nada, la lectura debería ir bien y cada vez que leo un "Par" debería ponerlo en el vector, pero no es el caso.
2  Programación / Programación C/C++ / CONSULTA en: 6 Enero 2019, 23:52 pm
Buenas gente, miren el tema es este, estoy trabajando con manejo de archivos de texto, pero aquí mi problema, tengo que trabajar con un pdf, pero al hacer el código, como lo hago siempre para trabajar con un .txt no funciona, por que claro, los formatos son distintos, cómo puedo hacer para que los string del pdf ese, se almacenen, de tal manera que pueda trabajar desde la consola?
El tema es este, buscar x palabra en todo el libro, supongo que para un .txt funcionaría sin problemas, ya que eso vengo haciendo y sí anda, pero no sé cómo cambia la sintaxis para trabajar con .pdf o .epub o etc.
Una ayuda por favor, por lo menos a nivel de teoría, no pido que me resuelvan el ejercicio
Les adjunto mi código:
Código
  1. nclude <iostream>
  2. #include <vector>
  3. #include <fstream>
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[]) {
  7. vector<string> p; string aux;
  8. ifstream entrada;
  9. entrada.open("Don Quijote de la mancha.pdf");
  10. if(!entrada.is_open()){
  11. cerr<<"No se abrio el archivo"<<endl;
  12. exit(-1);
  13. }
  14. while(getline(entrada,aux)){
  15. p.push_back(aux);
  16. entrada.ignore();
  17. }
  18. entrada.close();
  19. for(size_t i=0;i<p.size();i++) {
  20. if(!p[i].empty()){
  21. aux=p[i];
  22. for(size_t i=0;i<aux.size();i++) {
  23. aux[i]=toupper(aux[i]);
  24. }
  25. p[i]=aux;
  26. }
  27. }
  28. aux="MOLINOS DE VIENTO"; int contador=0;
  29. for(size_t i=0;i<p.size();i++) {
  30. if(p[i]==aux){
  31. contador++;
  32. }
  33. }
  34. cout<<"Las palabras: "<<"Molinos de viento, aparecen un total de: "<<contador<<" veces";
  35. return 0;
  36. }
  37.  
3  Programación / Programación C/C++ / Problema en creación de varios arch. de texto simultaneos en: 5 Enero 2019, 02:11 am
Buenas gente, aquí el resumen de para qué codifique el siguiente código.
Necesitaba hacer "x" cantidades de comisiones dependiendo de la cantidad de alumnos que tengo donde el máximo es de 30 alumnos x comisión.
Mi problema, sólo me crea la primera comisión y luego, la siguiente información se pierde...
El error se debe encontrar en la función <Crear_lista> a mi parecer, pero no lo veo, debe ser de tipo lógico, llegué a esa conclusión.
Respondanme por favor.

Código
  1. #include <iostream>
  2. #include <vector>
  3. #include <sstream>
  4. #include <fstream>
  5. using namespace std;
  6. struct Alumno{
  7. string nom_ape;
  8. };
  9. istream& operator>>(istream &, Alumno&);
  10. ostream& operator<<(ostream &, Alumno&);
  11. int Cantidad_comisiones(const int _maximo,size_t _cantidad_alum);
  12. void Crear_listas(int, vector<Alumno>, int, int);
  13. int Ver_cociente(int _comision, size_t _cantidad_alum); //Medio redundante...
  14. int Alumnos_sobrantes(int _comision, size_t _cantidad_alum);
  15. int main(int argc, char *argv[]) {
  16. const int maximo=30;
  17. vector<Alumno> V; Alumno aux;
  18. ifstream lectura;
  19. lectura.open("Unidad 5 - Nro 3 - Inscriptos.txt");
  20. if(!lectura.is_open()){
  21. cerr<<"Archivo no abierto"<<endl;
  22. exit(-1);
  23. }
  24. while(lectura>>aux){
  25. V.push_back(aux);
  26. }
  27. int comisiones=Cantidad_comisiones(maximo,V.size());
  28. int cociente=Ver_cociente(comisiones,V.size());
  29. int alumnos_sobrantes=Alumnos_sobrantes(comisiones,V.size());
  30. cout<<"Total de alumnos: "<<V.size()<<endl;
  31. cout<<"Cantidad de comisiones: "<<comisiones;
  32. Crear_listas(comisiones,V,cociente,alumnos_sobrantes);
  33. return 0;
  34. }
  35. istream& operator>>(istream &i, Alumno &A){
  36. getline(i,A.nom_ape);
  37. return i;
  38. }
  39. ostream& operator<<(ostream &o, Alumno &_A){
  40. o<<_A.nom_ape<<endl;
  41. return o;
  42. }
  43. int Cantidad_comisiones(const int _maximo,size_t _cantidad_alum){
  44. int cociente=0,resto=0;
  45. cociente=_cantidad_alum/_maximo;
  46. resto=_cantidad_alum%_maximo;
  47. if(resto!=0){
  48. return cociente+1;
  49. }
  50. return cociente;
  51. }
  52. int Ver_cociente(int _comision, size_t _cantidad_alum){ //Que podria hacer para no pasar todo nuevamente?
  53. int alumno_x_comision=_cantidad_alum/_comision;
  54. return alumno_x_comision;
  55. }
  56. int Alumnos_sobrantes(int _comision, size_t _cantidad_alum){
  57. float resto=_cantidad_alum%_comision;
  58. if(resto!=0){
  59. return resto*_comision;
  60. }
  61. return resto;
  62. }
  63. void Crear_listas(int _comisiones, vector<Alumno> _V, int _cociente,int _alum_sobrantes){
  64. string nom_lista="Unidad 5 - Nro 3 - Comision"; stringstream ss;
  65. ofstream salida;
  66. for(int i=0;i<_comisiones;i++) {
  67. ss<<nom_lista<<i<<".txt";
  68. salida.open(ss.str());
  69. if(_alum_sobrantes!=0){
  70. for(int i=0;i<_cociente+1;i++) {
  71. salida<<_V[i];
  72. }
  73. }else{
  74. for(int i=0;i<_cociente;i++) {
  75. salida<<_V[i];
  76. }
  77. }
  78. }
  79. salida.close();
  80. }
4  Programación / Programación C/C++ / Problema con manejo de archivo de texto - Consulta en: 4 Enero 2019, 02:26 am
Buenas gente, tengo un pequeño inconveniente, el problema es este, en el main cuando leo el string "nom_ape" usando el getline, no continua el programa y se cierra, sin permitirme la lectura de "nota1" y "nota2" y produciendo un mal funcionamiento de las funciones.
Les adjunto el código para ver si pueden ver el por qué sucede esto.

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <iomanip>
  4. #include <vector>
  5. using namespace std;
  6. struct Alumno{
  7. string nom_ape;
  8. float nota1,nota2;
  9. };
  10. istream& operator>>(istream &i, Alumno &A){
  11. getline(i,A.nom_ape);
  12. i>>A.nota1>>A.nota2;
  13. i.ignore();
  14. return i;
  15. }
  16. ostream& operator<<(ostream &o, Alumno &A){
  17. o<<left<<A.nom_ape<<endl;
  18. o<<left<<A.nota1<<setfill(' ')<<setw(2)<<A.nota2<<endl;
  19. return o;
  20. }
  21. //A
  22. void Modificar_archi(Alumno A, vector <Alumno> &D);
  23. //B
  24. void Promedio_archi(vector <Alumno> &D);
  25. int main(int argc, char *argv[]) {
  26. vector<Alumno> V; Alumno A;
  27. ifstream lectura;
  28. lectura.open("Unidad 5 - Nro 2 - Lista.txt");
  29. if(!lectura.is_open()){
  30. cerr<<"Archivo no abierto";
  31. exit(-1);
  32. }
  33. while(lectura>>A){
  34. V.push_back(A);
  35. }
  36. lectura.close();
  37. //A
  38. cout<<"Ingrese el nombre del alumno y su apellido"<<endl;
  39. getline(cin,A.nom_ape);
  40. cin.ignore();
  41. cout<<"Ahora ingrese sus dos notas"<<endl;
  42. cout<<"Nota 1: "; cin>>A.nota1;
  43. cout<<"Nota 2: "; cin>>A.nota2;
  44. Modificar_archi(A,V);
  45. //B
  46. Promedio_archi(V);
  47. return 0;
  48. }
  49. //A
  50. void Modificar_archi(Alumno A, vector <Alumno> &D){
  51. for(size_t i=0;i<D.size();i++) {
  52. if(A.nom_ape==D[i].nom_ape){
  53. D[i].nota1=A.nota1;
  54. D[i].nota2=A.nota2;
  55. }
  56. }
  57. ofstream escritura;
  58. escritura.open("Unidad 5 - Nro 2 - Lista.txt",ios::trunc);
  59. for(size_t i=0;i<D.size();i++) {
  60. escritura<<D[i];
  61. }
  62. escritura.close();
  63. }
  64. //B
  65. void Promedio_archi(vector <Alumno> &D){
  66. float condicion_final; Alumno aux;
  67. ofstream escritura;
  68. escritura.open("Unidad 5 - Nro 2 - Promedio.txt");
  69. if(!escritura.is_open()){
  70. cerr<<"Archivo no abierto"<<endl;
  71. exit (-1);
  72. }
  73. for(size_t i=0;i<D.size();i++) {
  74. condicion_final=(D[i].nota1+D[i].nota2)/2;
  75. escritura<<D[i];
  76. if(condicion_final>=60){
  77. escritura<<"Condicion final: "<<"Aprobado"<<endl;
  78. }else{
  79. escritura<<"Condicion final: "<<"Desaprobado"<<endl;
  80. }
  81. }
  82. escritura.close();
  83. }
5  Programación / Programación C/C++ / Sobre el truncamiento - Consulta en: 31 Diciembre 2018, 17:14 pm
Código
  1. Buenas gente, estaba haciendo un ejercicio de Racionales,
  2. y estaba trabajando con dos int, para representarlo respectivamente,
  3. mi consulta es, como podría evitar que el compilador me trunque los
  4. valores cuando los divido, para verlo con valor decimal?
6  Programación / Programación C/C++ / Qué retornar en una sobrecarga [] - Consulta en: 26 Diciembre 2018, 03:28 am
Buenas, quería saber qué podía retornar en la sobrecarga del operador [] cuando el indice que le paso, es superior al size del puntero, traté de retornar nullptr y el valor -1, pero me dice que el retorno debe ser un valor constante, por ende, qué podría retornar para utilizar ese if en el main?

Aquí le dejo el pequeño código:

Código
  1. int &operator[](int _i){
  2. if(_i<=size){
  3. return p[_i];
  4. }
  5. return -1; /*Que puedo retornar para saber que supere el indice?*/
  6.  
  7. }
  8.  
  9. cout<<"Ingrese la posicion que desea modificar: "; cin>>i;
  10. if(V2[i-1]==/*...*/){
  11. cout<<"Ha superado el tamanio del arreglo"<<endl;
  12. }else{
  13. cin>>v;
  14. V2[i-1]=v;
  15. }

7  Programación / Programación C/C++ / Consulta sobre herencia y cómo proceder en: 24 Diciembre 2018, 17:03 pm
Buenas, miren en este ejercicio me pide que cree 3 clases, una llamada Tecla, otra llamada Pedal y otra llamada Instrumento (No tengo idea para que sirve esta). Bueno el tema es este, hice el código siguiendo los pasos que me detallaba el ejercicio, pero el tema es que no encuentro manera de hacerlo ya en el main, tengo una manera de hacerlo, pero no estaría siguiendo al pie de la letra el ejercicio, así que, a ver si me pueden orientar un poco por favor.

Consigna:
Código
  1. a. Defina una clase Tecla para representar una tecla de un piano. Cada tecla
  2. puede estar o no apretada, y tiene ademas una nota asociada (cuyo nombre se
  3. representará con un string). Su interfaz debe tener tener entonces:
  4. - un constructor que reciba el nombre de la nota
  5. - un método VerNota que retorne el nombre de la nota
  6. - un método Apretar que cambie el estado de la tecla a apretada.
  7. - un método Soltar que cambie el estado de la tecla a no apretada.
  8. - un método EstaApretada que retorne true si la tecla está apretada, false en caso
  9. contrario
  10. b. Defina una clase Pedal para representar el pedal de un piano. El pedal debe
  11. almacenar un valor (f loat ) que indica la presion que el musico ejerce sobre el pedal.
  12. El constructor debe inicializar la presion en 0 , y la clase debe tener metodos para
  13. modificarla y consultarla.
  14. c. Reutilizando las clases Tecla , Pedal e Instrumento :
  15. class Instrumento{
  16. virtual string VerTipo() { return "sin_nombre"; }
  17. };
  18. defina una clase Piano que modele un instrumento de tipo "piano" con solo 7 teclas
  19. (do”, “re”, “mi”, “fa”, “sol”, “la” y “si” ) y 1 pedal. La clase piano debe tener métodos
  20. para:
  21. - apretar una tecla, indicando el numero de tecla, y que retorne la nota que debería
  22. sonar.
  23. - soltar una tecla, indicando el numero de tecla
  24. - presionar el pedal, indicando la presion que se aplica

Código que hice:
Código
  1. #include <iostream>
  2. using namespace std;
  3. class Tecla{
  4. string nota; int tecla;
  5. public:
  6. Tecla(string _t){
  7. nota=_t;
  8. }
  9. string Ver_nota(){
  10. return nota;
  11. }
  12. void Apretar(){
  13. tecla=1;
  14. }
  15. void Soltar(){
  16. tecla=0;
  17. }
  18. bool Esta_apretada(){
  19. if(tecla!=0){
  20. return true;
  21. }
  22. return false;
  23. }
  24.  
  25. };
  26. class Pedal{
  27. float presion;
  28. public:
  29. Pedal(){
  30. presion=0;
  31. }
  32. void Aumentar_presion(float _x){
  33. presion=_x;
  34. }
  35. void Disminuir_presion(float _x){
  36. presion=_x;
  37. }
  38. float Ver_presion(){
  39. return presion;
  40. }
  41. };
  42.  
  43. class Ver_Tipo{
  44. public:
  45. virtual string Ver_tipo(){
  46. return "sin nombre";
  47. }
  48. };
  49.  
  50. class Piano{
  51. Tecla *T[7]; Pedal P;
  52. public:
  53. string Apretar_una_tecla(int _nro){
  54. T[_nro]->Apretar();
  55. return T[_nro]->Ver_nota();
  56. }
  57. void Soltar_una_tecla(int _nro){
  58. T[_nro]->Soltar();
  59. }
  60. void Presionar(float _f){
  61. P.Aumentar_presion(_f);
  62. }
  63.  
  64. };
  65. int main(int argc, char *argv[]) {
  66. Tecla *T[7]; //No se como proseguir...
  67. T[0]=new Tecla ("Do");
  68. T[1]=new Tecla ("Re");
  69. T[2]=new Tecla ("Mi");
  70. T[3]=new Tecla ("Fa");
  71. T[4]=new Tecla ("Sol");
  72. T[5]=new Tecla ("La");
  73. T[6]=new Tecla ("Si");
  74. return 0;
  75. }

Volví a releer la teoría, para ver si podía entenderlo mejor, pero no le encuentro la vuelta sinceramente
8  Programación / Programación C/C++ / No entiendo este error - Ayuda en: 23 Diciembre 2018, 22:31 pm
Buenas, les adjunto el código, prácticamente todo esta bien, ya no sé si lógicamente pero al compilar por lo menos sí.

Aquí el código:

Código
  1. #include <iostream>
  2. using namespace std;
  3. using namespace std;
  4. struct Fecha{
  5. int dd,mm,aa;
  6. };
  7. /*
  8. Estado civil:
  9. -1"soltero"
  10. 0 "casado"
  11. 1 "viudo"
  12. */
  13. class Persona{
  14. string nom_ape; int DNI, estado_civil; Fecha fecha_nacimiento;
  15. public:
  16. void Cargar_datos(string _nom, int _dni, int _civil, Fecha _d_nacimiento);
  17. int Edad(Fecha _actual){ //retorno la edad;
  18. int aux=_actual.aa-fecha_nacimiento.aa;
  19. return aux;
  20. }
  21. string Ver_nombre(){
  22. return nom_ape;
  23. }
  24. };
  25. void Persona:: Cargar_datos(string _nom, int _dni, int _civil, Fecha _d_nacimiento){
  26. nom_ape=_nom; DNI=_dni; estado_civil=_civil; fecha_nacimiento=_d_nacimiento;
  27. }
  28.  
  29. class Alumno: public Persona{
  30. float promedio; int cantidad_aprovadas;
  31. public:
  32. void Agregar_prom(float _prom){
  33. promedio=_prom;
  34. }
  35. void Materias_apro(int _apro){
  36. cantidad_aprovadas=_apro;
  37. }
  38. float Ver_promedio(){
  39. return promedio;
  40. }
  41. float Merito_academico(){
  42. float aux=promedio*cantidad_aprovadas;
  43. return aux;
  44. }
  45. };
  46.  
  47. class Docente:public Persona{
  48. Fecha ingreso;
  49. public:
  50. void Agregar_fecha_ingreso(Fecha _f){
  51. ingreso=_f;
  52. }
  53. int Antiguedad(Fecha _actual){
  54. int aux=ingreso.aa-_actual.aa;
  55. return aux;
  56. }
  57. };
  58.  
  59. class Curso{
  60. string nombre_curso; Docente D; Alumno *A=nullptr; int size;
  61. public:
  62. Curso(int _i){
  63. if(_i<=50){
  64. size=_i;
  65. A=new Alumno [size];
  66. }else{
  67. cerr<<"Supero el limite maximo de alumnos (50)"<<endl;
  68. exit(1);
  69. }
  70.  
  71. }
  72. void Agregar_docente(Docente _d){
  73. D=_d;
  74. }
  75. void Agregar_alumno(Alumno _a, int _i){
  76. A[_i]=_a;
  77. }
  78. void Nom_d_curso(string _nom){
  79. nombre_curso=_nom;
  80. }
  81. Alumno Mejor_promedio();
  82. };
  83. Alumno Curso::Mejor_promedio(){
  84. Alumno aux=A[0];
  85. for(int i=1;i<size;i++) {
  86. if(aux.Ver_promedio()<A[i].Ver_promedio()){
  87. aux=A[i];
  88. }
  89. }
  90. return aux;
  91. }
  92. int main(int argc, char *argv[]) {
  93. int size; Alumno A; Docente D;
  94. cout<<"Ingrese la cantidad de alumnos en el curso: "; cin>>size;
  95. Curso C(size);
  96. cout<<"Seleccione la opcion para proceder :";
  97. cout<<"1 -> Agregar alumnos"<<endl;
  98. cout<<"2 -> Agregar Docente a cargo"<<endl;
  99. cout<<"Presione cualquier numero para salir del programa"<<endl;
  100. int caso; cin>>caso;
  101. switch(caso){
  102. case 1:
  103. cout<<"Ahora ingrese los datos de los alumnos:"<<endl;
  104. for(int i=0;i<size;i++) {
  105. string nom_ape; int dni,estado_civil,materias_apro; Fecha d_nacimiento;
  106. float promedio;
  107. cout<<"Ingrese el nombre y apellido: "; cin>>nom_ape;
  108. cout<<"Ingrese el DNI: "; cin>>dni;
  109. cout<<"Ingrese el estado civil: "; cin>>estado_civil;
  110. cout<<"Ingrese la fecha de nacimiento :";
  111. cin>>d_nacimiento.dd; cin>>d_nacimiento.mm; cin>>d_nacimiento.aa;
  112. cout<<"Ingrese el promedio del alumno :"; cin>>promedio;
  113. cout<<"Ingrese la cantidad de materias aprovadas: "; cin>>materias_apro;
  114. cout<<"-----------------------------"<<endl;
  115. A.Cargar_datos(nom_ape,dni,estado_civil,d_nacimiento);
  116. A.Materias_apro(materias_apro);
  117. A.Agregar_prom(promedio);
  118. C.Agregar_alumno(A,i);
  119. }
  120. break;
  121. case 2:
  122. cout<<"Ingrese los datos del Docente"<<endl;
  123. string nom_ape; int dni,estado_civil;
  124. Fecha d_nacimiento, ingreso_laboral;
  125. cout<<"Ingrese el nombre y apellido: "; cin>>nom_ape;
  126. cout<<"Ingrese el DNI: "; cin>>dni;
  127. cout<<"Ingrese el estado civil: "; cin>>estado_civil;
  128. cout<<"Ingrese la fecha de nacimiento :";
  129. cin>>d_nacimiento.dd; cin>>d_nacimiento.mm; cin>>d_nacimiento.aa;
  130. cout<<"Ingrese la fecha de ingreso laboral :";
  131. cin>>ingreso_laboral.dd; cin>>ingreso_laboral.mm; cin>>ingreso_laboral.aa;
  132. cout<<"-------------------------------"<<endl;
  133. D.Cargar_datos(nom_ape,dni,estado_civil,d_nacimiento);
  134. D.Agregar_fecha_ingreso(ingreso_laboral);
  135. break;
  136. default: //Me da error...
  137. cout<<"Salio del programa"<<endl;
  138. break;
  139. }
  140. cout<<"El alumno con mejor promedio es: ";
  141. Alumno aux=C.Mejor_promedio();
  142. cout<<aux.Ver_nombre();
  143. return 0;
  144. }

al compilar me da este error:

Código
  1. error: jump to case label [-fpermissive]
9  Programación / Programación C/C++ / Método de clase no funciona - Ayuda en: 20 Diciembre 2018, 02:11 am
Buenas, aquí les adjunto el código que hice, la verdad es que no entiendo por qué no devuelve nada, probé dándole un valor entre 1 - 12 y según ese valor retornar "x" string. Peeeero tampoco anduvo, me ayudan por favor?

Código
  1. #include <iostream>
  2. using namespace std;
  3. struct Fecha{
  4. int dd,mm,aa;
  5. };
  6. class Fecha1{
  7. Fecha A;
  8. public:
  9. //A
  10. Fecha1(int _dd,int _mm, int _aa){
  11. A.dd=_dd; A.mm=_mm; A.aa=_aa;
  12. }
  13. //B
  14. int Ver_dd();
  15. int Ver_mm();
  16. int Ver_aa();
  17. //C
  18. int Diferencia_en_anios(Fecha1 _a);
  19. //D
  20. string Signo_zodiacal();
  21. };
  22. int Fecha1:: Ver_dd(){
  23. return A.dd;
  24. }
  25. int Fecha1:: Ver_mm(){
  26. return A.mm;
  27. }
  28. int Fecha1:: Ver_aa(){
  29. return A.aa;
  30. }
  31. int Fecha1::Diferencia_en_anios(Fecha1 _a){
  32. return _a.Ver_aa()-A.aa;
  33. }
  34. /*
  35. Acuario: 20 Enero – 18 Febrero.
  36. Piscis: 19 Febrero – 20 Marzo.
  37. Aries: 21 Marzo – 19 Abril.
  38. Tauro: 20 Abril – 20 Mayo.
  39. Géminis: 21 Mayo – 20 Junio.
  40. Cáncer: 21 Junio – 22 Julio.
  41. Leo: 23 Julio – 22 Agosto.
  42. Virgo: 23 Agosto – 22 Septiembre
  43. Libra: 23 Septiembre - 22 Octubre
  44. Escorpio: 23 Octubre - 21 Noviembre
  45. Sagitario: 22 Noviembre - 21 Diciembre
  46. Capricornio: 22 Diciembre - 19 Enero
  47. */
  48. string Fecha1::Signo_zodiacal(){
  49. string aux;
  50. switch (A.mm){
  51. case 1:
  52. if(A.dd>=20 && A.mm>=1){
  53. if(A.dd<=18 && A.mm<=2){
  54. aux= "Acuario";
  55. }
  56. }
  57. break;
  58. case 2:
  59. if(A.dd>=19 && A.mm>=2){
  60. if(A.dd<=20 && A.mm<=3){
  61. aux= "Piscis";
  62. }
  63. }
  64. break;
  65. case 3:
  66. if(A.dd>=21 && A.mm>=3){
  67. if(A.dd<=19 && A.mm<=4){
  68. aux= "Aries";
  69. }
  70. }
  71. break;
  72. case 4:
  73. if(A.dd>=20 && A.mm>=4){
  74. if(A.dd<=20 && A.mm<=5){
  75. aux= "Tauro";
  76. }
  77. }
  78. break;
  79. case 5:
  80. if(A.dd>=21 && A.mm>=5){
  81. if(A.dd<=20 && A.mm<=6){
  82. aux= "Geminis";
  83. }
  84. }
  85. break;
  86. case 6:
  87. if(A.dd>=21 && A.mm>=6){
  88. if(A.dd<=22 && A.mm<=7){
  89. aux= "Cancer";
  90. }
  91. }
  92. break;
  93. case 7:
  94. if(A.dd>=23 && A.mm>=7){
  95. if(A.dd<=22 && A.mm<=8){
  96. aux= "Leo";
  97. }
  98. }
  99. break;
  100. case 8:
  101. if(A.dd>=23 && A.mm>=8){
  102. if(A.dd<=22 && A.mm<=9){
  103. aux= "Virgo";
  104. }
  105. }
  106. break;
  107. case 9:
  108. if(A.dd>=23 && A.mm>=9){
  109. if(A.dd<=22 && A.mm<=10){
  110. aux= "Libra";
  111. }
  112. }
  113. break;
  114. case 10:
  115. if(A.dd>=23 && A.mm>=10){
  116. if(A.dd<=21 && A.mm<=11){
  117. aux= "Escorpio";
  118. }
  119. }
  120. break;
  121. case 11:
  122. if(A.dd>=22 && A.mm>=11){
  123. if(A.dd<=21 && A.mm<=12){
  124. aux= "Sagitario";
  125. }
  126. }
  127. break;
  128. case 12:
  129. if(A.dd>=22 && A.mm>=12){
  130. if(A.dd<=19 && A.mm<=1){
  131. aux= "Capricornio";
  132. }
  133. }
  134. break;
  135. }
  136. return aux;
  137. }
  138. int main(int argc, char *argv[]) {
  139. Fecha1 A(29,2,1996),B(30,5,2018);
  140. cout<<"Edad: "<<A.Diferencia_en_anios(B)<<endl;
  141. cout<<"Su signo es: "<<A.Signo_zodiacal(); //No muestra el signo......
  142. return 0;
  143. }
10  Programación / Programación C/C++ / Problema ejercicio de class - CONSULTA en: 13 Diciembre 2018, 22:39 pm
Buenas, acá les dejo el código que hice ya comentado con mis dudas, a ver si me pueden dar un poco de iluminación que no estoy entendiendo  :-\
PD: el método sumar, me pide que lo haga de este modo:
Código
  1. P_resuesta=P1.Sumar(P2)
[/b]

Código
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. class Polinomio{
  5. int coeficiente[20]; int grado;
  6. public:
  7. Polinomio(int _grado=0){
  8. grado=_grado;
  9. for(int i=0;i<grado;i++) {
  10. coeficiente[i]=0;
  11. }
  12. };
  13. int Ver_coeficientes(int _i){
  14. return coeficiente[_i];
  15. }
  16. void Cambiar_coeficiente(int _c, int _pos);
  17. Polinomio Sumar_polinomios(Polinomio p2);
  18. int Evaluar(int _x);
  19.  
  20.  
  21. };
  22. void Polinomio::Cambiar_coeficiente(int _c, int _pos){
  23. coeficiente[_pos]=_c;
  24. }
  25. Polinomio Polinomio:: Sumar_polinomios(Polinomio p2){
  26. for(int i=0;i<grado;i++) {
  27. coeficiente[i]+=p2.Ver_coeficientes(i); //Que deberia retornar?
  28. }
  29. }
  30. int Polinomio::Evaluar(int _x){
  31. int aux=0;
  32. for(int i=0;i<grado--;i++) {
  33. aux+=coeficiente[i]*(pow(_x,(grado-i)));
  34. }
  35. aux+=coeficiente[grado];
  36. return aux;
  37. }
  38. int main(int argc, char *argv[]) {
  39. int size; int coeficiente;
  40. cout<<"Ingrese el grado del Polinomio: "; cin>>size;
  41. Polinomio P(size);
  42. /*Carga del polinomio*/
  43. cout<<"Ingrese los coeficientes, de mayor grado a menor "; cin>>coeficiente;
  44. int i=0;
  45. while(i<size){
  46. P.Cambiar_coeficiente(coeficiente,i);
  47. cout<<"Ingrese los coeficientes, de mayor grado a menor "; cin>>coeficiente;
  48. ++i;
  49. }
  50. /*Veamos la carga inicial*/
  51. for(int i=0;i<size;i++) {
  52. cout<<P.Ver_coeficientes(i)<<"x^"<<size-i; //Por que no veo el termino independiente?
  53. }
  54. cout<<endl;
  55. /*Evaluemos con un valor x el polinomio*/
  56. int x;
  57. cout<<"Ingrese la incognita: "; cin>>x;
  58. cout<<P.Evaluar(x); //Obtengo basura, por que?
  59. cout<<endl;
  60. /*Probemos el metodo sumar Polinomio*/
  61. /* nada*/
  62.  
  63.  
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines