Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ximenaferneymega en 2 Diciembre 2016, 18:30 pm



Título: Metodo en POO
Publicado por: ximenaferneymega en 2 Diciembre 2016, 18:30 pm
Tengo varios métodos dentro de la clase VECTOR, pero tengo un problema en el metodo  para ordenar de menor a mayor pero no me da quisiera saber si alguien me puede ayudar a encontrar el error en el método de la clase vector. Muchas Gracias !!  >:D  >:D

Aquí esta el codigo (solo la clase);
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Vector {// Inicio de la clase VECTOR
  6.    int n;//  Numero de elementos del vector
  7.    float v[100];
  8.  
  9.    public:
  10.        Vector(int ne) {
  11.            n = ne;
  12. }
  13. int getN() {
  14.  
  15. return (n);
  16. }
  17. float getV(int indice) {
  18. return (v[indice]);
  19. }
  20. float *getV() {
  21.  
  22. return (v);
  23. }
  24. void setN(int ne) {
  25. n = ne;
  26. }
  27. void setV(int pos, float valor) {
  28. v[pos] = valor;
  29. }
  30. ////////////////////////////////////////////////////////////
  31. void leerVector(int indice, float valor) {
  32. v[indice] = valor;
  33. }
  34. /////////////////////////////////////////////////////////////
  35. void imprimirVector() {
  36. int  i;
  37.  
  38. if(n == 0) {
  39. cout<<"EL VECTOR ESTA VACIO";
  40. } else {
  41. for (i = 0; i < n; i++) {
  42. cout<<v[i]<<"  ";
  43. }
  44. }
  45.  
  46. }
  47. ////////////////////////////////////////////////////////////
  48. void insertarDesordenado(float valIn) {
  49. v[n] = valIn;
  50. n = n + 1;
  51. }
  52. /************************************************************/
  53. int buscar(float valBus) {
  54. int i = 0;
  55.  
  56. if (n == 0) {
  57. system("cls");
  58. cout<<" EL VECTOR ESTA VACIO"<<endl;
  59. system("pause>null");
  60.  
  61. return (-1);                // Metodo para Buscar
  62. } else {
  63. while ((i < n) && (valBus != v[i])) {
  64. i++;
  65. }
  66.  
  67. if (i < n) {
  68.  
  69. return (i);
  70. } else {
  71.  
  72. return (-1);
  73. }
  74. }
  75. }
  76. //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//
  77.  
  78. void ordenarMenor(){
  79.     int i, k, posMen;
  80.        string nomMenor;
  81.     //Vector aux;
  82.  
  83.  
  84.     for (i=0; i<(n-1); i++){
  85.     nomMenor=v[i].n();
  86.     posMen = i;               // Metodo Ordenar de menor a mayor
  87.  
  88. for (k=(i+1); k<n; k++){
  89. if(nomMenor>v[k].getN()){
  90. nomMenor=v[k].getN();
  91. posMen=K;
  92. }
  93. }
  94.   aux = v[i];
  95.   v[i]=v[posMen];
  96.   //v[posMen]=aux;
  97. }
  98. }
  99. //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//
  100.  
  101. /*****************************************************************/
  102. void insertarOrdenado(float valIn) {
  103. int posIn = 0, k;
  104.  
  105. while ((posIn < n) && (valIn > v[posIn])) {
  106. posIn++;
  107. }
  108.  
  109. for (k = n - 1; k >= posIn; k--) {
  110. v[k + 1] = v[k];
  111. }
  112. v[posIn] = valIn;
  113. n++;
  114. }
  115. };

donde aparece subrayado es donde me aparece el error.


Mod: Los códigos deben ir en etiquetas GeSHi, No escribir en mayúsculas


Título: Re: Metodo en POO
Publicado por: Ocelot1994 en 2 Diciembre 2016, 19:14 pm
¿Podrías comentar que tipo de error te da?

Un saludo


Título: Re: Metodo en POO
Publicado por: ximenaferneymega en 2 Diciembre 2016, 19:52 pm
Esta es la lista de errores que me aparece para complilar.

[Error] expected '}' at end of input

[Error] request for member 'getN' in '((Vector*)this)->Vector::v[k]', which is of non-class type 'float'

[Error] expected ')' before '{' token

Error] expected primary-expression before '}' token

[Error] 'aux' was not declared in this scope

[Error] expected unqualified-id at end of input


Título: Re: Metodo en POO
Publicado por: engel lex en 2 Diciembre 2016, 19:54 pm
copia y pega exactamente la salida del compilador (con numero de linea y demás)


Título: Re: Metodo en POO
Publicado por: 0xFer en 2 Diciembre 2016, 20:02 pm
[Error] request for member 'getN' in '((Vector*)this)->Vector::v[k]', which is of non-class type 'float'

Estas tratando al vector v como si fuera un vector de objetos los cuales tienen el método getN, pero en realidad v es un vector de variables primitivas de tipo flotante los cuales no poseen métodos.

[Error] 'aux' was not declared in this scope

No has declarado la variables aux


Título: Re: Metodo en POO
Publicado por: ximenaferneymega en 2 Diciembre 2016, 20:18 pm
asi son los errores que me aparecen (estoy usando Dec-C++.5.11), con linea y columnas respectivamente.

Código:
116	2	C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp	[Error] expected '}' at end of input

89 22 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] request for member 'getN' in '((Vector*)this)->Vector::v[k]', which is of non-class type 'float'

89 28 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] expected ')' before '{' token

93 4 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] expected primary-expression before '}' token

94 6 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] 'aux' was not declared in this scope

98 2 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] expected unqualified-id at end of input


Mod: No escribir en mayúsculas


Código:
86	21	C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp	[Error] request for member 'getN' in '((Vector*)this)->Vector::v[i]', which is of non-class type 'float'

89 22 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] request for member 'getN' in '((Vector*)this)->Vector::v[k]', which is of non-class type 'float'

89 28 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] expected ')' before '{' token

93 4 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] expected primary-expression before '}' token

94 6 C:\Documents and Settings\docen10.SALASDRAI2\Mis documentos\Downloads\CLASES\Clase.cpp [Error] 'aux' was not declared in this scope


coloca los errores dentro de etiquetas de codigo (la que tiene el simbolo #)

no hagas doble post!


Título: Re: Metodo en POO
Publicado por: engel lex en 2 Diciembre 2016, 20:43 pm
por que tienes 2 juegos de errores?

que son los segundos errores que publicaste?


Título: Re: Metodo en POO
Publicado por: ximenaferneymega en 2 Diciembre 2016, 20:50 pm
Perdon Me he equivocado es la Ultima Parte XD


Título: Re: Metodo en POO
Publicado por: Ocelot1994 en 2 Diciembre 2016, 21:05 pm


[Error] expected '}' at end of input


[Error] expected ')' before '{' token

Error] expected primary-expression before '}' token

[Error] expected unqualified-id at end of input

Tienes varias errores muy parecidos, deberias tabular bien el codigo en algunas lineas de tu codigo para darte cuenta de que tienes mal cerrado algun parentesis o un punto y coma donde no debe.

Saludos


Título: Re: Metodo en POO
Publicado por: ximenaferneymega en 2 Diciembre 2016, 21:46 pm
Aunque me aparece este error, todos los paréntesis, llaves y puntos y comas estan bien. La verdad No se pero no creo que sea por eso.
Debe de tener otras funciones que no coinciden y aun no logro encontrarlas ,,,


Título: Re: Metodo en POO
Publicado por: engel lex en 2 Diciembre 2016, 21:50 pm
Aunque me aparece este error, todos los paréntesis, llaves y puntos y comas estan bien. La verdad No se pero no creo que sea por eso.

es una lastima que el compilador no se ponga de acuerdo contigo... pero te digo algo, el compilador  es muy raro que se dañe (y cuando se daña, notarás el error super complejo), sus errores son verdaderos más allá de lo que tu creas o no XD

a primera vista, si te sobra un '}' en la linea 116 como el compilador indica... ponte poco a poco a revisar el programa y te doy un consejo, cuando crees una función, condiciona u otro que lleve cualquiera de (){}[] ""(comillas dobles) ''(comillas simples) crea la de abrir y cerrar de una vez... despues escribes todo lo que vas a colocar adentro así evitas que te sobren o falten


Título: Re: Metodo en POO
Publicado por: ximenaferneymega en 2 Diciembre 2016, 22:34 pm
Muchas Gracias Engel Lex
Creo que aun estoy muy cruda XD  :-[ :-[ :-( :-(