Foros del Web » Programación para mayores de 30 ;) » C/C++ »

consulta de errores C

Estas en el tema de consulta de errores C en el foro de C/C++ en Foros del Web. Buenas noches amigos. estoy comenzando a estudiar c para luego pasar a c++. este es un programa que su codigo comienza siendo programado en C, ...
  #1 (permalink)  
Antiguo 27/07/2015, 20:43
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta consulta de errores C

Buenas noches amigos. estoy comenzando a estudiar c para luego pasar a c++.
este es un programa que su codigo comienza siendo programado en C, hasta que el mismo ira evolucionando pase a C++.
El codigo nos paso el profesor del instituto y que no he logrado que compile ya que me devuelve los siguientes errores.
revise la hoja del profesor varias veces y no encuentro diferencias solo que el de el compila y el mio no.

les estare muy agradecido por su colaboracion. muchas gracias!!

errores:
[C++ Error] main.cpp(78): E2451 Undefined symbol 'CollectionResult'
[C++ Error] main.cpp(79): E2451 Undefined symbol 'result'
[C++ Error] main.cpp(82): E2451 Undefined symbol 'LessThanFive'
[C++ Error] main.cpp(87): E2268 Call to undefined function 'select'

Código C:
Ver original
  1. //
  2. //main.cpp
  3. //CollectionRefactoring_04
  4. //
  5. //
  6.  
  7. #include <iostream>
  8. #include "Collection.h"
  9.  
  10. typedef bool ( *Condition )(Type item) ;
  11.  
  12. //
  13. //user defined condition...
  14. //
  15. bool lessThanFive(Type item)
  16. {
  17.         return item < 5 ;
  18. }
  19.  
  20. bool DivisibleByTwo(Type item)
  21. {
  22.         return ( item % 2 == 0 ) ;
  23. }
  24.  
  25. //
  26. //Utility function Dump
  27. //
  28. void CollectionDump( Collection thisCollection )
  29. {
  30.     Type* item = CollectionFirst( thisCollection ) ;
  31.     if( item )
  32.                 {
  33.         std::cout << "Collection ( " <<
  34.                 CollectionCount( thisCollection ) << " items )" << std::endl ;
  35.         while ( item )
  36.               {
  37.             std::cout << ( *item ) << " " ;
  38.             item = CollectionNext( thisCollection ) ;
  39.           }
  40.                   std::cout << std::endl ;
  41.                 }else
  42.         {
  43.             std::cout << " Collection Empty " << std::endl ;
  44.         }
  45.     }
  46.  
  47. //
  48. //Select Function
  49. //
  50. void Select( Collection input, Condition condition, Collection& result )
  51. {
  52.     Type* item = CollectionFirst( input ) ;
  53.     while ( item )
  54.     {
  55.         if ( condition( *item ) ) CollectionAdd( result, *item ) ;
  56.         item = CollectionNext( input ) ;
  57.     }
  58.  
  59. }
  60.  
  61.  
  62. int main(int argc, const char * argv[])
  63. {
  64. Type data[] = {
  65.     2,3,5,9,6,23,4,10,12,44,13,1,22
  66. } ;
  67.  
  68. int sizeOfData = sizeof(data) / sizeof(Type ) ;
  69.  
  70. Collection collection ;
  71. CollectionInitialize( collection ) ;
  72.  
  73. CollectionCreateWith( collection, data, sizeOfData ) ;
  74. CollectionDump( collection ) ;
  75.  
  76. CollectionResult ;
  77. CollectionInitialize( result ) ;
  78. CollectionDump( result ) ;
  79.  
  80. Select ( collection, LessThanFive, result ) ;
  81.  
  82. CollectionDump( result );
  83.  
  84. CollectionRelease( result ) ;
  85. select( collection, DivisibleByTwo, result ) ;
  86. CollectionDump( result ) ;
  87.  
  88.       return 0;
  89. }
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #2 (permalink)  
Antiguo 27/07/2015, 21:27
Avatar de freddy31DA  
Fecha de Ingreso: junio-2012
Mensajes: 84
Antigüedad: 10 años
Puntos: 2
Respuesta: consulta de errores C

por que en:
Código C:
Ver original
  1. void Select( Collection input, Condition condition, Collection& result )

donde dice ; Collection& es normal?
o es así; Collection result

Ni esta página lo compila ni yo https://ideone.com/uKNhUl

Código BASH:
Ver original
  1. prog.cpp:8:22: fatal error: Collection: No such file or directory
  2.  #include "Collection"
__________________
Creo en Internet.
Amén.
  #3 (permalink)  
Antiguo 27/07/2015, 21:35
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: consulta de errores C

si, Freddy31DA. esta correcto el simbolo ahi.
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #4 (permalink)  
Antiguo 27/07/2015, 23:38
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 8 años, 9 meses
Puntos: 38
Respuesta: consulta de errores C

¿¿E por que no nos has pasado el Collection.h?? Crees que carece de importancia? Sin el nuestros compiladores van a chillar y gritar que falta ese archivo. No te podremos ayudar. =/
  #5 (permalink)  
Antiguo 28/07/2015, 01:06
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 7 años, 9 meses
Puntos: 204
Respuesta: consulta de errores C

Código C++:
Ver original
  1. CollectionResult ; <<--- AQUI!!!
  2. CollectionInitialize( result ) ; // no has definido el tipo de 'result'

No será que te falta poner el nombre de la variable?

CollectionResult, tal y como está puesto en el código, será interpretado como un tipo... y un tipo puede ser usado para declarar una variable o hacer un cast... en esa línea tu no estás haciendo ni una cosa ni la otra. El compilador simplemente no sabe qué hacer con ese tipo.

Luego lo que sucede es que no has definido la variable 'result', luego ésta variable ni existe ni tiene tipo... el compilador tampoco sabe cómo gestionar esta variable.

Un saludo

Última edición por eferion; 28/07/2015 a las 01:13
  #6 (permalink)  
Antiguo 28/07/2015, 10:29
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 16 años, 1 mes
Puntos: 28
Respuesta: consulta de errores C

ignacio85r todos esos errores son por nombres mal escritos o no definidos, por ejemplo "LessThanFive" lo tienes como "lessThanFive" en la línea 5. algo similar te sucede con "Select" en la 85, además de lo que menciona eferion.

No sé que otros errores tengas, pero al primera vista esos son los que detecto. Recuerda que en C/C++ importan las mayúsculas puesto que son case sensitive.


Saludos.
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #7 (permalink)  
Antiguo 28/07/2015, 15:32
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: consulta de errores C

edito....
ya sobsane varios errores. solo me restan 2 que no logro ver o darme cuenta

[C++ Error] main.cpp(78): E2451 Undefined symbol 'CollectionResult'
[C++ Error] main.cpp(79): E2451 Undefined symbol 'result'



aca dejo el collection.h

Código h:
Ver original
  1. //
  2. //Collection.h
  3. //CollectionRefactoring_04
  4. //
  5. //
  6.  
  7. #ifndef __CollectionRefactoring_04__Collection__
  8. #define __CollectionRefactoring_04__Collection__
  9.  
  10. #include <stdio.h>
  11.  
  12. typedef int Type ;
  13.  
  14. struct Collection
  15. {
  16.     enum { EMPTY = -1, MAX_ITEMS = 1024 } ;
  17.  
  18.     Type rep [ MAX_ITEMS ] ;
  19.     bool init ;
  20.  
  21.     int first, last ;
  22.     int* current ;
  23. };
  24.  
  25. extern bool CollectionInitialize( Collection& thisCollection ) ;
  26. extern Collection& CollectionCreateWith( Collection& thisCollection,
  27. Type data[], int sizeOfData ) ;
  28.  
  29. extern bool CollectionRelease( Collection& thisCollection ) ;
  30.  
  31. extern int CollectionCount( Collection thisCollection ) ;
  32. extern bool CollectionIsEmpty( Collection thisCollection ) ;
  33. extern bool CollectionIsFull( Collection thisCollection ) ;
  34.  
  35. extern Collection& CollectionAdd( Collection& thisCollection, const Type& item ) ;
  36.  
  37. extern Type* CollectionFirst( Collection& thisCollection ) ;
  38. extern Type* CollectionNext( Collection& thisColection ) ;
  39.  
  40. #endif /* defined(__ColectionRefactoring_04__Colection__)*/
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)

Última edición por ignacio85r; 28/07/2015 a las 19:37
  #8 (permalink)  
Antiguo 28/07/2015, 20:05
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 16 años, 1 mes
Puntos: 28
Respuesta: consulta de errores C

Cita:
Iniciado por _Lucifer_ Ver Mensaje
ignacio85r ...
además de lo que menciona eferion.
...
Ese error aún no lo resuelves, además en ninguna parte tienes definido CollectionResult

Todos esos errores son básicamente lo mismo pero lo que cambia es el nombre del tipo/clase/estructura.
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:

Etiquetas: c++, compilador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.