Advertisement
nRikee

Calculadora en C

Apr 17th, 2012
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.45 KB | None | 0 0
  1. /**
  2.  * Calculadora básica con Ans(6 decimales de precisión)
  3.  **/
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <conio.h>
  7.  
  8. int main()
  9. {
  10.     int iteration = 0; // Serveix per al menú: a la primera iteració no hi ha cap valor en aux (ans)
  11.     float a,b,c,aux,aux_dos;
  12.     char selec, selec_2 = 'x';
  13.  
  14.     do{
  15.     // Es presenta el menú
  16.         do{
  17.             system("cls");
  18.             printf("CALCULADORA:\n\nQue vols fer?\n[1] Suma\n[2] Resta\n[3] Multiplicacio\n[4] Divisio\n[5] Potencia\n[6] Arrel quadrada\n[7] Equacio de segon grau\n[+] Gastar ans\n [x] Eixir\n\n Elegeix: ");
  19.             selec = getch();
  20.         } while ( iteration==0 && selec == '+');
  21.  
  22.     // Si es desitja gastar 'ans' (la variable aux), es presenta de nou el menú per a elegir quina operació es va a fer.
  23.         if( selec == '+' ){
  24.             selec_2 = selec;
  25.             do{
  26.                 system("cls");
  27.                 printf("CALCULADORA:\n\nQue vols fer?\n[1] Suma\n[2] Resta\n[3] Multiplicacio\n[4] Divisio\n[5] Potencia\n[6] Arrel quadrada\n[7] Equacio de segon grau\n\n [*] Eixir\n\n Elegeix: ");
  28.                 selec = getch();
  29.             } while ( iteration==0 && selec == '+');
  30.         }
  31.         printf("\n\n");
  32.  
  33.         switch( selec ){
  34.             case '1':
  35.                 printf("Suma:\n");
  36.                 if(selec_2!='+'){ printf("\na = "); scanf("%f",&a);} else {printf("\na = %g\n",aux) ;a = aux;} // Si es gasta ans, a=aux. Si no, es demana un valor per a 'a'.
  37.                 printf("b = ");
  38.                 scanf("%f",&b);
  39.                 aux = a + b;
  40.                 printf("\n\n%g + %g = %g",a,b,aux);
  41.                 break;
  42.             case '2':
  43.                 printf("Resta:\n");
  44.                 if(selec_2!='+'){ printf("\na = "); scanf("%f",&a);} else {printf("\na = %g\n",aux) ;a = aux;} // Si es gasta ans, a=aux. Si no, es demana un valor per a 'a'.
  45.                 printf("b = ");
  46.                 scanf("%f",&b);
  47.                 aux = a - b;
  48.                 printf("\n\n%g - %g = %g",a,b,aux);
  49.                 break;
  50.             case '3':
  51.                 printf("Multiplicacio:\n");
  52.                 if(selec_2!='+'){ printf("\na = "); scanf("%f",&a);} else {printf("\na = %g\n",aux) ;a = aux;} // Si es gasta ans, a=aux. Si no, es demana un valor per a 'a'.
  53.                 printf("b = ");
  54.                 scanf("%f",&b);
  55.                 aux = a * b;
  56.                 printf("\n\n%g * %g = %g",a,b,aux);
  57.                 break;
  58.             case '4':
  59.                 printf("Divisio:\n");
  60.                 b=0.0;
  61.                 if(selec_2!='+'){ printf("\na = "); scanf("%f",&a);} else {printf("\na = %g\n",aux) ;a = aux;} // Si es gasta ans, a=aux. Si no, es demana un valor per a 'a'.
  62.                 printf("b = ");
  63.                 scanf("%f",&b);
  64.                 while(b==0.0){ printf("b no puede ser 0\nb="); scanf("%f",&b); } // 'b' ha de ser !=0
  65.                 aux = a / b;
  66.                 printf("\n\n%g / %g = %g",a,b,aux);
  67.                 break;
  68.             case '5':
  69.                 printf("Potencia:\n");
  70.                 if(selec_2!='+'){ printf("\na = "); scanf("%f",&a);} else {printf("\na = %g\n",aux) ;a = aux;} // Si es gasta ans, a=aux. Si no, es demana un valor per a 'a'.
  71.                 printf("b = ");
  72.                 scanf("%f",&b);
  73.                 aux = pow(a,b);
  74.                 printf("\n\n%g ^ %g = %g",a,b,aux);
  75.                 break;
  76.             case '6':
  77.                 printf("Arrel quadrada:\n");
  78.                 if(selec_2!='+'){ printf("\na = "); scanf("%f",&a);} else {printf("\na = %g\n",aux) ;a = aux;} // Si es gasta ans, a=aux. Si no, es demana un valor per a 'a'.
  79.                 aux = sqrt(a);
  80.                 printf("\n\narrel quadrada(%g) = %g",a,aux);
  81.                 break;
  82.             case '7':
  83.                 printf("Equacio de segon grau:\n");
  84.                 printf("\na = ");
  85.                 scanf("%f",&a);
  86.                 printf("b = ");
  87.                 scanf("%f",&b);
  88.                 printf("c = ");
  89.                 scanf("%f",&c);
  90.                 aux = (-b + sqrt(4*a*c)) / 2*a;
  91.                 aux_dos = (-b - sqrt(4*a*c)) / 2*a;
  92.                 printf("\n\n%gx^2 + %gx + %g = 0\n\n  x=%g\n  x=%g",a,b,c,aux,aux_dos);
  93.                 break;
  94.             case 'h': printf("Calculadora creada per @nRikee93.\nCodi font a http://pastebin.com/5pU4hjT1\n"); // Crédits.
  95.         }
  96.         if(selec != 'x' && selec != '*') { getch(); iteration++; }
  97.  
  98.     } while (selec != 'x' && selec != '*' );
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement