Verán al compilar en visual studio, sin el comando /FORCE. me sale éste error:
Código Error1:
Ver original
Error 4 error LNK2005: ya se definió "char * __cdecl GeoAnalitic(int,int)" (?GeoAnalitic@@YAPADHH@Z) en geometria.obj C:\Users\Edgar\Desktop\proyecto final - teoria 3\proyecto final - teoria\main.obj proyecto final - teoria
Y este otro:
Código Error2:
Ver original
Error 6 error LNK1169: se encontraron uno o más símbolos definidos simultáneamente C:\Users\Edgar\Desktop\proyecto final - teoria 3\Debug\proyecto final - teoria.exe 1 1 proyecto final - teoria
ME sale al compilar y ejecutar en visual studio 2010, en el archivo main.
Yo creo que el error es por la forma en la que estoy llamando a la funcion y en la forma en la que la estoy incluyendo o lo que defini en el archivo externo que contiene en esa funcio o bien podria ser porque el archivo externo es un .cpp y no un .h
Un poco de ayuda amigos mios, muchas gracias.
Si alguno de ustedes le gustaria ayudarme dejo mis 2 codigos son muy chiquitos y sencillos de entender ademas están bien ordenados,
el main.cpp y el de la funcion geometria.cpp, para descargar y tambien dejo el codigo fuente aqui pegado en el spoiler. Gracias.
__________________________________________________ _____
No encontré la opcion spoiler al crear el tema :(
Folder donde estan los archivos para descargar: http://ingunam.webege.com/files/
Codigo fuente: main.cpp
Código C++:
Ver original
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> #include<string.h> #include<iostream> #include"geometria.cpp" #include"algebra.cpp" using namespace std; #define MAX 300 int main(){ int i,j,k,opcion,puntos=0,malas_GeoAnalitic=0, aleatorio; char respuestas_GeoAnalitic[4][3]; char* arreglo_de_respuestas; static int num[10]; static int pregunta[4]; printf("\n\t- Geometria analitica \n\t- Calculo Diferencial \n\t- Algebra \n\t- Computacion para ingenieros \n\n"); /*############################################################*/ /* Generando numeros aleatorios para usarlos como indices para las preguntas */ for(i=0;i<9;i++){ do{ }while(num[aleatorio]); num[aleatorio] = 1; pregunta[i] = aleatorio + 1; //printf("%d \n",pregunta[i]); } /*############################################################*/ /* Generando las preguntas 4 preguntas por materia*/ /////////////////////GEOMETRIA ANALITICA////////////////////// for (i=1; i<=4; i++){ arreglo_de_respuestas = GeoAnalitic(pregunta[i],i); for(j=0;j<2;j++){ respuestas_GeoAnalitic[i-1][j] = arreglo_de_respuestas[j]; } } /*############################################################*/ /* Calculando resultados */ for(i=0;i<4;i++){ if(respuestas_GeoAnalitic[i][0] == respuestas_GeoAnalitic[i][1]){ puntos++; } else { malas_GeoAnalitic++; } } /* Imprimiendo los resultados */ }
codigo fuente: geometria.cpp
Código C++:
Ver original
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<iostream> using namespace std; #define MAX 300 char* GeoAnalitic(int n, int m){ int j=m; char respuesta; char correcta; char p1[MAX] = "El resultado del producto vectorial de u y v es (0i+0j+0k), los vectores son: ", a1[MAX] = "a) Nulos", b1[MAX] = "b) Perpendiculares", c1[MAX] = "c) Paralelos", r1 = 'c', /*Indica la respuesta correcta*/ p2[MAX] = "La regla de transformacion de coordenadas polares a binomicas o cartesianas es: ", a2[MAX] = "a) x = rcos0", b2[MAX] = "b) x = rsen0", c2[MAX] = "c) y = rcos0", r2 = 'a', p3[MAX] = "Indica el nombre de la superficie formada por: \n\n generatiz: x^2 + y^2 = a^2 \n\t z = b \n\n\n Directriz: z \n\n\n\t a y b son los parametros alpha y beta.", a3[MAX] = "a) Cilindro circular recto", b3[MAX] = "b) Cilindro circular recto de diametro 0", c3[MAX] = "c) Una recta cualquiera", r3 = 'b', p4[MAX] = "La expresion 4sen20 representa: ", a4[MAX] = "a) Rosa de 2 petalos", b4[MAX] = "b) Rosa de radio 4 y con 2 petalos", c4[MAX] = "c) Rosa de 4 petalos", r4 = 'c', p5[MAX] = "Uno de los postulados de Euclides es: ", a5[MAX] = "a) El segmento dirigido entre 2 puntos representa varias rectas", b5[MAX] = "b) Un punto es una circunferencia con diametro igual a 0", c5[MAX] = "c) Se puede prolongar una línea recta indefinidamente a partir de una recta finita", r5 = 'c', p6[MAX] = "Geometría que se basa en 4 postulados de Euclides: ", a6[MAX] = "a) Geometría euclidiana", b6[MAX] = "b) Geometría no euclidiana", c6[MAX] = "c) Geometría hiperbólica", r6 = 'b', p7[MAX] = "Que lugar geométrico representa el simetrico respecto al origen al punto P(theta,-phi,0k): ", a7[MAX] = "a) II octante", b7[MAX] = "b) Q(-theta,-phi,0k)", c7[MAX] = "c) III octante", r7 = 'a', p8[MAX] = "El numero de parámetros que tiene la generatiz de una superficie es: ", a8[MAX] = "a) Número de directrices + 1", b8[MAX] = "b) Número de directrices - 1", c8[MAX] = "c) El numero de generatices está en funcion al numero de directrices", r8 = 'a', p9[MAX] = "El valor absoluto del producto mixto de 3 vectores es: ", a9[MAX] = "a) El Area de un paralelepipedo", b9[MAX] = "b) El volumen de un paralelogramo", c9[MAX] = "c) El volumen de un paralelepipedo", r9 = 'c', p10[MAX] = "Que geometría representa un cuerpo o lugar geometríco cuyas ecuaciones parámetricas tienen 2 parametros. ", a10[MAX] = "a) Una superficie", b10[MAX] = "b) Un plano", c10[MAX] = "c) Una curva", r10 = 'b'; //La opcion 0 no está definida, por lo tanto se despresia if(n==10) { cout << "\n\n" << j <<".- " << p1 << "\n\n"; cout << a1 << "\n" << b1 << "\n" << c1 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r1; } else if(n==1) { cout << "\n\n" << j <<".- " << p2 << "\n\n"; cout << a2 << "\n" << b2 << "\n" << c2 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r2; } else if(n==2) { cout << "\n\n" << j <<".- " << p3 << "\n\n"; cout << a3 << "\n" << b3 << "\n" << c3 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r3; } else if(n==3) { cout << "\n\n" << j <<".- " << p4 << "\n\n"; cout << a4 << "\n" << b4 << "\n" << c4 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r4; } else if(n==4) { cout << "\n\n" << j <<".- " << p5 << "\n\n"; cout << a5 << "\n" << b5 << "\n" << c5 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r5; } else if(n==5) { cout << "\n\n" << j <<".- " << p6 << "\n\n"; cout << a6 << "\n" << b6 << "\n" << c6 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r6; } else if(n==6) { cout << "\n\n" << j <<".- " << p7 << "\n\n"; cout << a7 << "\n" << b7 << "\n" << c7 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r7; } else if(n==7) { cout << "\n\n" << j <<".- " << p8 << "\n\n"; cout << a8 << "\n" << b8 << "\n" << c8 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r8; } else if(n==8) { cout << "\n\n" << j <<".- " << p9 << "\n\n"; cout << a9 << "\n" << b9 << "\n" << c9 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r9; } else if(n==9) { cout << "\n\n" << j <<".- " << p10 << "\n\n"; cout << a10 << "\n" << b10 << "\n" << c10 << "\n\n\t Respuesta: "; cin >> respuesta; correcta = r10; } char V[2] = { respuesta, correcta }; char *ptr = V; return ptr; }