Autor
|
Tema: Calculadora hecha en C (Leído 9,717 veces)
|
BatchianoISpyxolo
Desconectado
Mensajes: 166
|
@barnix456, bueno tú has insertado todo el código en un mismo archivo y funciona. Pero claro, si tienes programas de 10-20 mil líneas, la cosa se complica. La idea sería: funciones.h /* Tipos de datos */ /* Encabezados de funciones públicas */ void restar(void); void multiplicar(void); void dividir(void); void potencia(void); void raiz_cuadrada(void); void seno(void); void coseno(void); void tangente(void);
funciones.c /* includes */ #include <stdio.h> #include <stdlib.h> #include <math.h> void sumar(void) { float num1, num2; printf("\nIntroduzca los dos numeros a sumar: \n"); scanf("%f %f", &num1 , &num2 ); printf("\n%.2f", num1 + num2 ); return; } void restar(void) { float num1, num2; printf("\nIntroduzca los dos numeros a restar: \n"); scanf("%f %f", &num1 , &num2 ); printf("\n%.2f", num1 - num2 ); return; } void multiplicar(void) { float num1, num2; printf("\nIntroduzca los dos numeros a multiplicar: \n"); scanf("%f %f", &num1 , &num2 ); printf("\n%.2f", num1 * num2 ); return; } void dividir(void) { float num1, num2; printf("\nIntroduzca los dos numeros a dividir: \n"); scanf("%f %f", &num1 , &num2 ); printf("\n%.2f", num1 / num2 ); return; } void potencia(void) { float num1, num2; printf("\nIntroduzca la base: \n"); printf("Introduzca el exponente: \n"); return; } void raiz_cuadrada(void) { float num1; printf("\nIntroduzca el numero: \n"); printf("La raiz cuadrada es: %.2f \n", sqrt(num1 )); return; } void seno(void) { float num1; printf("\nIntroduzca el numero: \n"); return; } void coseno(void) { float num1; printf("\nIntroduzca el numero: \n"); return; } void tangente(void) { float num1; printf("\nIntroduzca el numero: \n"); printf("La tangente es: %.2f \n", tan(num1 )); return; }
main.c #include <stdio.h> #include <stdlib.h> #include "funciones.h" // <- debe estar en el mismo dir o especificar ruta completa void main() { int op; printf("\t\tElija una opcion:\n\n"); printf("\t*********************************\n"); printf("\t*\t [1] Sumar\t\t*\n"); printf("\t*\t [2] Restar\t\t*\n"); printf("\t*\t [3] Multiplicar\t*\n"); printf("\t*\t [4] Dividir\t\t*\n"); printf("\t*\t [5] Potencia\t\t*\n"); printf("\t*\t [6] Raiz cuadrada\t*\n"); printf("\t*\t [7] Seno\t\t*\n"); printf("\t*\t [8] Coseno\t\t*\n"); printf("\t*\t [9] Tangente\t\t*\n"); printf("\t*\t [10] Salir\t\t*\n"); printf("\t*********************************\n\n"); switch (op) { case 1: sumar(); break; case 2: restar(); break; case 3: multiplicar(); break; case 4: dividir(); break; case 5: potencia(); break; case 6: raiz_cuadrada(); break; case 7: seno(); break; case 8: coseno(); break; case 9: tangente(); break; case 10: break; default: printf("Ha elejido una opcion incorrecta\n"); break; } }
La idea ahora sería compilar funciones.c como objeto. Es decir generar un fichero compilado, aunque no ejecutable. Usando gcc sería: gcc -c funciones.c -o funciones.o Lo siguiente, compilar main.c junto con funciones.h como objeto: Usando gcc sería: gcc -c main.c funciones.h -o main.o Finalmente deberíamos generar el ejecutable final compilando los dos archivos objeto (funciones.o y main.o): Usando gcc sería: gcc main.o funciones.o -o ejecutable (En Windows .exe) Para agilizar la compilación en módulos se diseñan archivos makefile de tal manera que solo con ejecutar make, compilamos todo nuestro programa.
|
|
« Última modificación: 19 Febrero 2013, 20:12 pm por BatchianoISpyxolo »
|
En línea
|
|
|
|
Caster
|
El dividir el programa en varios archivos es solo cuestion de comodidad, es costoso escribir muchas lineas en el mismo archivo, asi si divido el programa, a la hora de volver a tocar el codigo, cambiar cosas, depurarlo, etc me es mucho mas facil y comodo, y si dejo un tiempo el codigo apartado y quiero volver a verlo, conayuda de algunos coments y tenerlo dividido en archivo se hace mas rapido volver a entender el codigo.
Saludos
|
|
|
En línea
|
|
|
|
barnix456
Desconectado
Mensajes: 128
El soft es como el sexo, cuando es Libre es mejor
|
@BatchianoISpyxolo muchas gracias por la explicacion, la verdad como estoy empezando en esto, no sabia eso de dividir los programas en ese tipo de cosas, y eso de los makefiles tampoco... eso se ve muy interesante, y aparte es mas practico... ahora, interante compilarlo de esa manera, una pregunta, para compilarlo de esa manera, asi por aparte, tiene que ser afuerza en la terminal, o tambien desde algun ide??
|
|
|
En línea
|
"No temo a los ordenadores; lo que temo es quedarme sin ellos"
Isaac Asimov
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
@BatchianoISpyxolo muchas gracias por la explicacion, la verdad como estoy empezando en esto, no sabia eso de dividir los programas en ese tipo de cosas, y eso de los makefiles tampoco... eso se ve muy interesante, y aparte es mas practico... ahora, interante compilarlo de esa manera, una pregunta, para compilarlo de esa manera, asi por aparte, tiene que ser afuerza en la terminal, o tambien desde algun ide?? No le temas a la terminal, no se come a nadie
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
barnix456
Desconectado
Mensajes: 128
El soft es como el sexo, cuando es Libre es mejor
|
jajaja buen punto, la verdad, tengo que empezar a meterle mano...!!
|
|
|
En línea
|
"No temo a los ordenadores; lo que temo es quedarme sin ellos"
Isaac Asimov
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Error con aplicacion hecha en vb en xp pro
Programación Visual Basic
|
israelchris
|
3
|
5,588
|
13 Diciembre 2003, 23:46 pm
por israelchris
|
|
|
De que está hecha tu bufanda?
Foro Libre
|
Debci
|
4
|
4,566
|
31 Marzo 2011, 15:03 pm
por Debci
|
|
|
Calculadora Hecha Por Mi :D Hechen un Vistazo!
Scripting
|
LeoJ24
|
2
|
2,696
|
15 Enero 2013, 03:23 am
por zonahurbana
|
|
|
Calculadora que acepta 100 dígitos. hecha en lenguaje C.
Programación C/C++
|
NOB2014
|
3
|
3,420
|
13 Mayo 2016, 21:12 pm
por AlbertoBSD
|
|
|
Videovigilancia: hecha la ley, hecha la trampa
Noticias
|
wolfbcn
|
1
|
1,771
|
19 Mayo 2018, 13:04 pm
por buite
|
|