Programación General > C/C++
Problemilla con Divide y Venceras?
Comodoro:
Hola Camarada como estan, les cuento estoy practicando Lenguaje C (No tengo mas nada que Hacer), realizando un Programita de lo mas sencillo el cual tiene que Realizar Operaciones Matematicas.
Cuando programo en C todo el Codigo lo coloco en un mismo Archivo, funciones, procedimientos, constante, variables, etc. Pero esta vez lo he dividido por parte.
1.- Archivos de Cabecera: En donde he declarado las funciones, procedimientos, constante, variables, etc.
2.- Archivo de Definicion: En el cual he Definido lo que he Declarado en el Archivo de Cabecera.
3.- Archivo Principal: En el que tiene el Codigo Principal que se va a ejecutar cuando Compile ( main() ).
El hecho es que me arroja error, y e intentado arregrarlo pero Nada. Haber si ustedes me pueden Ayudar.
Aqui les dejo el Codigo:
--- Código: C --- #ifndef _MATES_H_#define _MATES_H_ /*Declaracion de Funciones*/ /*Funcion: Sumar*Recibe:* a Valor Real.Sumando.(Parametro)* b Valor Real.Suamndo.(Parametro)*Devuelve:* Suma de a+b: Valor Real*/float Sumar(float a, float b); /*Funcion: Restar*Recibe:* a Valor Real.Restando.(Parametro)* b Valor Real.Restando.(Parametro)*Devuelve:* Resta de a-b: Valor Real*/float Resta(float a, float b); /*Funcion: Multiplicar*Recibe:* a Valor Real.Multiplicando.(Parametro)* b Valor Real.Multiplicando.(Parametro)*Devuelve:* Multiplicar de a*b: Valor Real*/float Multiplicar(float a, float b); /*Funcion: Dividir*Recibe:* a Valor Real.Multiplicando.(Parametro)* b Valor Real.Multiplicando.(Parametro)* e Valor Entero.Codigo de Error(Referencia)*Devuelve:* Division de a/b: Valor Real*Si b es Cero(o), se deposita en (e) el Valor -1 invalidando de este modo el*Resultado de la Division. En otro caso el Valor de (e) sera Cero(0) indicando*que el Valor devuelto es Correcto.*/float Dividir(float a, float b, int *e); #endif
--- Código: C --- /*Descripcion:*Este Archivo corresponde al Archivo de Definiciones de la Cabecera asociada en*la que definimos las Funciones Declaradas Peviamente.*/ #include "mates.h"/*Definicion de Funciones*/ float Sumar(float a, float b){ return a + b;} float Resta(float a, float b){ return a - b;} float Multiplicar(float a, float b){ return a * b;} float Dividir(float a, float b, int *e){ if(b==0){ //En casi de que la Division sea por Cero *e = -1; return 0; }else{ *e = 0; return a / b; }}
--- Código: C --- //Descripcion: Primer ejemplo que muestra el empleo de Archivos de Cabecera#include <stdio.h>#include "mates.h" main(){//Declaracion de Variablesfloat numA, numB, resultado_parcial; //Lectura de Datos por Tecladoprintf("nDame un Numero Real (numA): ");scanf("%f", &numA);printf("nDame un Nemero Real (numB): ");scanf("%f", &numB); //Realizar Operacionesresultado_parcial = Sumar(numA, numB);printf("n%f+%f=%f", numA, numB, resultado_parcial); resultado_parcial = Resta(numA, numB);printf("n%f-%f=%f", numA, numB, resultado_parcial); resultado_parcial = Multiplicar(numA, numB);printf("n%f*%f=%f", numA, numB, resultado_parcial); resultado_parcial = Dividir(numA, numB, &flag_error);if(flag_error == -1){ printf("Error: Division por 0(Cero)");}else{ printf("n%f/%f=%f", numA, numB, resultado_parcial);} }
Bueno eso es todo, haber si me pueden ayudar, le estaria muy Agradecido.
Geo:
Para que sea más fácil ayudarte debes dar más información ¿qué error te arroja? ¿error al compilar o al enlazar? qué compilador/IDE usas o compilas por línea de comandos?
El error que veo está en el código principal: no defines la variable flag_error antes de pasarla como parámetro a la función Dividir.
Comodoro:
Hola Amigo Geo, te cuento estoy usando El Entorno de Desarrollo Integrado (IDE) Borland C++ 4.5. La Variable que no habia definido ya esta Declarada.
Pero me sigue arrogando errores, son en total 5, he estado Investigando un Poquillo y he leido que cuando divides el programa en distintos Archivos tienes que Compilar todos los Archivos que componen el Proyecto, lo cual he hecho y nada.
El Archivo en donde Declaro las Funciones y de mas cosas tienen extencion .h es decir, de cabecera, y las otras dos .c
Te pongo una Imagen que muestra los Errores:
ProfesorX:
Yo no utilizo el Borland C++, sino el Visual C++, pero el error "Undefined Symbol" indica que no encuentra el codigo objeto de las funciones, lo que indica que muy probablemente no estas incluyendo el archivo fuente dentro del proyecto, dices que compilaste los archivos pero ¿Lo estas haciendo por separado? (retorica). De ser asi, ese es el error, al compilar debes poner los tres archivos dentro del mismo proyecto, y compilarlos juntos todos al mismo tiemp (rebuild) o quizas estes deshabilitando algun archivo dentro del proyecto, verifica eso tambien.
Saludos :)
Comodoro:
Hola ProfesorX gracias por la respuesta, te explico lo que he hecho.
1.- Todos los Archivos estan dentro de una misma Carpeta.
En principio solo Compilaba el Archivo Principal(Programa), lo cual me arrogaba Errores, despues los compile todos. Y sigue con Problamas(Errores). Y si los compile uno por uno.
Ahora la Pregunta que me surge como los Compilo todos a la vez. Me podrias decir Como? Please?
Culturilla: En mi pequeña Investigacion me encontre con algo llamado Makefile. El cual soluciona este tipo de Problemillas. Pero me parece un tanto Dificil.
Navegación
[#] Página Siguiente
Ir a la versión completa