Buenas tardes amigos.
Verán al compilar en visual studio, sin el comando /FORCE. me sale éste error:
Código Error1:
Ver originalError 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 originalError 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("\tEvaluacion de conocimientos generales sobre: \n"); printf("\n\t- Geometria analitica \n\t- Calculo Diferencial \n\t- Algebra \n\t- Computacion para ingenieros \n\n");
printf("\t####################################################################\n"); printf("\t# 4 preguntas por materia generadas aleatoriamente, #\n"); printf("\t# la respuesta es con opcion multiple y al final se dara a conocer #\n"); printf("\t# el resultado, las respuestas correctas y se generara un archivo #\n"); printf("\t# de texto con esta informacion #\n"); printf("\t####################################################################\n");
printf("\n\t\tPrecione una tecla para comenzar...");_getch
();
/*############################################################*/
/* Generando numeros aleatorios para usarlos como
indices para las preguntas */
for(i=0;i<9;i++){
do{
aleatorio
= (rand() / (RAND_MAX
/ 10 )) -1 ; }while(num[aleatorio]);
num[aleatorio] = 1;
pregunta[i] = aleatorio + 1;
//printf("%d \n",pregunta[i]);
}
/*############################################################*/
/* Generando las preguntas 4 preguntas por materia*/
/////////////////////GEOMETRIA ANALITICA//////////////////////
printf("\n\t\t\tGeometria 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];
}
printf("\n\t\t\tGeometria analitica \n"); }
printf("\t Seccion terminada. pulse una tecla para continuar"); _getch
();
/*############################################################*/
/* Calculando resultados */
for(i=0;i<4;i++){
if(respuestas_GeoAnalitic[i][0] == respuestas_GeoAnalitic[i][1]){ puntos++; } else { malas_GeoAnalitic++; }
}
/* Imprimiendo los resultados */
printf("\tGeometria analitica\n\n"); printf("Numero de preguntas: 4\n"); printf("Correctas: %d\n\n",(4-malas_GeoAnalitic
));
printf("El valor de los puntos es: %d",puntos
); printf("\tCalificacion final: %.1f\n\n",( (puntos
*10.0)/4.0) ); }
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;
}