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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6
31  Programación / Programación C/C++ / Re: No entiendo este error - Ayuda en: 23 Diciembre 2018, 23:54 pm
Sacando string nom_ape del switch me ha funcionado.

Si, extendiendo el error, dice que sacando el nom_ape, funcionaría, pero el tema es, que si lo saco, no cargaría el nombre del Docente jaja
Igual no entiendo que problema le puede ocasionar ese string al programa  :-(
32  Programación / Programación C/C++ / Re: Método de clase no funciona - Ayuda en: 23 Diciembre 2018, 22:32 pm
Verás, por ejemplo, Virgo va desde 24 de Agosto a 22 de Septiembre. Por eso es necesario controlar día y mes.


Pero de hecho, me ha funcionado, aunque no lo probé con todos los signos  ;D
33  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]
34  Programación / Programación C/C++ / Re: Método de clase no funciona - Ayuda en: 23 Diciembre 2018, 01:01 am
Hola!

Lo que deberías hacer es algo como:

Código
  1. switch (A.mm){
  2. case 1:  //A.mm vale 1, osea mes = Enero
  3. if(A.dd>=20){ //Del 20 al final es Acuario
  4. aux= "Acuario";
  5. } else { //Del 1 al 19 es Capricornio
  6. aux= "Capricornio";
  7. }
  8. break;
  9.  

Saludos!

Muchisimas gracias!!! Me ha funcionado! Gracias por tomarte la molestia de responder y ayudarme  ;D
35  Programación / Programación C/C++ / Re: Método de clase no funciona - Ayuda en: 21 Diciembre 2018, 00:49 am
El switch está controlado por un valor de A.mm
Es superfluo hacerlo parte del if que acompaña cada opción
es imposible que el valor sea simultáneamente un valor y además cumpla las condiciones de los if.
.


Entiendo, entonces, no debería utilizar el switch? Cómo debería proceder?
36  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. }
37  Programación / Programación C/C++ / Re: Problema ejercicio de class - CONSULTA en: 18 Diciembre 2018, 02:06 am
Es muy complicado ver bien el polinomio cuando se muestra, si de momento no quieres gastar tiempo en eso añade al menos un espacio entre monomios. Suerte :-X

Buenas, ya pude arreglar casi todo, los únicos métodos que no funcionan son estos, te paso el código además:

Código
  1. //C)
  2. Polinomio Sumar_polinomio(Polinomio P2){ //Asi es como me decias que tenia que hacerlo?
  3. if(P2.grado<grado){
  4. Polinomio aux(grado);
  5. for(int i=0;i<P2.grado;i++) {
  6. aux.monomio[i]=P2.monomio[i]+monomio[i];
  7. }
  8. for(int i=P2.grado;i<grado;i++) {
  9. aux.monomio[i]=monomio[i];
  10. }
  11. return aux;
  12. }else{
  13. Polinomio aux(P2.grado);
  14. for(int i=0;i<grado;i++) {
  15. aux.monomio[i]=P2.monomio[i]+monomio[i];
  16. }
  17. for(int i=grado;i<P2.grado;i++) {
  18. aux.monomio[i]=monomio[i];
  19. }
  20. return aux;
  21. }
  22.  
  23. }
  24. //D)
  25. int Evaluar_polinomio(int _x){
  26. int contador=0;
  27. for(int i=0;i<=grado;i++) {
  28. contador+=(monomio[i])*(pow(_x,i)); //El resultado que obtengo siempre es 1 menos que el verdadero
  29. }
  30. return contador;
  31. }
38  Programación / Programación C/C++ / Re: Consulta - Punteros en: 18 Diciembre 2018, 00:56 am
Y usas la función <int comparacion(Persona p1, Persona p2)> para comparar cada dos personas del array. Suerte :-X
Te soy sincero, no entiendo la aplicación, tengo una forma de hacerlo, pero no usaría ese maldito puntero  >:(
Hice esto, pero hasta ahí llegue con lo que me explicaste y llegue a entender, obviamente, no funciona
Código
  1. alumno Busca_mayor(alumno a[], int size, int (*p)(alumno a1, alumno a2)){
  2. alumno aux;
  3. for(int i=0;i<size;i++) {
  4. if(*p(a[i],a[i+1])<0){
  5. aux=a[i+1];
  6. }else{
  7. if(*p(a[i],a[i+1])>0){
  8. aux=a[i];
  9. }
  10. }
  11. }
  12. return aux;
  13. }
  14. int Compara_nombre(alumno a1, alumno a2){
  15. if(a1.nombre<a2.nombre){
  16. return -1;
  17. }else{
  18. if(a1.nombre==a2.nombre){
  19. return 0;
  20. }
  21. }
  22. return 1;
  23. }
39  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.  
40  Programación / Programación C/C++ / Re: Consulta - Punteros en: 13 Diciembre 2018, 20:07 pm
Estuve pensando desde ayer las respuestas que me dieron, pero, no entiendo, no importa, gracias de todos modos  ;D
Páginas: 1 2 3 [4] 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines