elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Calculadora hecha en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Calculadora hecha en C  (Leído 9,717 veces)
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Calculadora hecha en C
« Respuesta #10 en: 7 Noviembre 2012, 21:33 pm »

@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
Código
  1.  
  2. /* Tipos de datos */
  3.  
  4. /* Encabezados de funciones públicas */
  5.  
  6. void restar(void);
  7. void multiplicar(void);
  8. void dividir(void);
  9. void potencia(void);
  10. void raiz_cuadrada(void);
  11. void seno(void);
  12. void coseno(void);
  13. void tangente(void);

funciones.c
Código
  1.  
  2. /* includes */
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <math.h>
  7.  
  8. void sumar(void)
  9. {
  10.    float num1, num2;
  11. printf("\nIntroduzca los dos numeros a sumar: \n");
  12. scanf("%f %f", &num1, &num2);
  13.    printf("\n%.2f", num1 + num2);
  14. return;
  15. }
  16. void restar(void)
  17. {
  18.    float num1, num2;
  19. printf("\nIntroduzca los dos numeros a restar: \n");
  20. scanf("%f %f", &num1, &num2);
  21. printf("\n%.2f", num1 - num2);
  22. return;
  23. }
  24. void multiplicar(void)
  25. {
  26.    float num1, num2;
  27. printf("\nIntroduzca los dos numeros a multiplicar: \n");
  28. scanf("%f %f", &num1, &num2);
  29. printf("\n%.2f", num1 * num2);
  30. return;
  31. }
  32. void dividir(void)
  33. {
  34.    float num1, num2;
  35. printf("\nIntroduzca los dos numeros a dividir: \n");
  36. scanf("%f %f", &num1, &num2);
  37. printf("\n%.2f", num1 / num2);
  38. return;
  39. }
  40. void potencia(void)
  41. {
  42.    float num1, num2;
  43. printf("\nIntroduzca la base: \n");
  44. scanf("%f", &num1);
  45. printf("Introduzca el exponente: \n");
  46. scanf("%f", &num2);
  47. printf("\n%.2f", pow(num1, num2));
  48. return;
  49. }
  50. void raiz_cuadrada(void)
  51. {
  52.    float num1;
  53. printf("\nIntroduzca el numero: \n");
  54. scanf("%f", &num1);
  55. printf("La raiz cuadrada es: %.2f \n", sqrt(num1));
  56. return;
  57. }
  58. void seno(void)
  59. {
  60.    float num1;
  61. printf("\nIntroduzca el numero: \n");
  62. scanf("%f", &num1);
  63. printf("El seno es: %.2f \n", sin(num1));
  64. return;
  65. }
  66. void coseno(void)
  67. {
  68.    float num1;
  69. printf("\nIntroduzca el numero: \n");
  70. scanf("%f", &num1);
  71. printf("El coseno es: %.2f \n", cos(num1));
  72. return;
  73. }
  74. void tangente(void)
  75. {
  76.    float num1;
  77. printf("\nIntroduzca el numero: \n");
  78. scanf("%f", &num1);
  79. printf("La tangente es: %.2f \n", tan(num1));
  80. return;
  81. }


main.c
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "funciones.h" // <- debe estar en el mismo dir o especificar ruta completa
  4.  
  5. void main()
  6. {
  7.    int op;
  8.  
  9.    printf("\t\tElija una opcion:\n\n");
  10. printf("\t*********************************\n");
  11. printf("\t*\t [1] Sumar\t\t*\n");
  12. printf("\t*\t [2] Restar\t\t*\n");
  13. printf("\t*\t [3] Multiplicar\t*\n");
  14. printf("\t*\t [4] Dividir\t\t*\n");
  15. printf("\t*\t [5] Potencia\t\t*\n");
  16. printf("\t*\t [6] Raiz cuadrada\t*\n");
  17. printf("\t*\t [7] Seno\t\t*\n");
  18. printf("\t*\t [8] Coseno\t\t*\n");
  19. printf("\t*\t [9] Tangente\t\t*\n");
  20. printf("\t*\t [10] Salir\t\t*\n");
  21. printf("\t*********************************\n\n");
  22. scanf("%d", &op);
  23.  
  24. switch (op) {
  25.  
  26. case 1:
  27. sumar();
  28. break;
  29.  
  30. case 2:
  31. restar();
  32. break;
  33.  
  34. case 3:
  35. multiplicar();
  36. break;
  37.  
  38. case 4:
  39. dividir();
  40. break;
  41.  
  42. case 5:
  43. potencia();
  44. break;
  45.  
  46. case 6:
  47. raiz_cuadrada();
  48. break;
  49.  
  50. case 7:
  51. seno();
  52. break;
  53.  
  54. case 8:
  55. coseno();
  56. break;
  57.  
  58. case 9:
  59. tangente();
  60. break;
  61.  
  62. case 10:
  63. break;
  64.  
  65. default:
  66.            printf("Ha elejido una opcion incorrecta\n");
  67.            break;
  68. }
  69. }
  70.  

La idea ahora sería compilar funciones.c como objeto. Es decir generar un fichero compilado, aunque no ejecutable.
Usando gcc sería:
Código:
gcc -c funciones.c -o funciones.o

Lo siguiente, compilar main.c junto con funciones.h como objeto:
Usando gcc sería:
Código:
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:
Código:
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

Puede que desees aprender a programar desde 0: www.espascal.es
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Calculadora hecha en C
« Respuesta #11 en: 8 Noviembre 2012, 18:24 pm »

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 Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Calculadora hecha en C
« Respuesta #12 en: 9 Noviembre 2012, 19:46 pm »

@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 Desconectado

Mensajes: 1.077



Ver Perfil
Re: Calculadora hecha en C
« Respuesta #13 en: 9 Noviembre 2012, 23:13 pm »

@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  :P
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 Desconectado

Mensajes: 128


El soft es como el sexo, cuando es Libre es mejor


Ver Perfil
Re: Calculadora hecha en C
« Respuesta #14 en: 9 Noviembre 2012, 23:34 pm »

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
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

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 Último mensaje 13 Diciembre 2003, 23:46 pm
por israelchris
De que está hecha tu bufanda?
Foro Libre
Debci 4 4,566 Último mensaje 31 Marzo 2011, 15:03 pm
por Debci
Calculadora Hecha Por Mi :D Hechen un Vistazo!
Scripting
LeoJ24 2 2,696 Último mensaje 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 Último mensaje 13 Mayo 2016, 21:12 pm
por AlbertoBSD
Videovigilancia: hecha la ley, hecha la trampa
Noticias
wolfbcn 1 1,771 Último mensaje 19 Mayo 2018, 13:04 pm
por buite
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines