monteno

Calculadora Fraccionaria

Apr 9th, 2011
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TYPE frac
  2.     nume AS SINGLE
  3.     deno AS SINGLE
  4. END TYPE
  5. DIM f1, f2, fr AS frac
  6. DIM opc, res, pow, aux, i, may AS SINGLE
  7. DIM simop AS STRING
  8. menu:
  9. PRINT "Que Quiere hacer?:"
  10. PRINT "1.Sumar"
  11. PRINT "2.Restar"
  12. PRINT "3.Multiplicar"
  13. PRINT "4.Dividir"
  14. PRINT "5.Elevar"
  15. INPUT opc
  16. IF opc > 5 OR opc < 1 THEN GOTO menu
  17. lectura:
  18. PRINT "Ingrese la primera fracci�n (Numerador/Denominador)"
  19. INPUT f1.nume
  20. PRINT "_________________"
  21. INPUT f1.deno
  22. PRINT "Ahora la segunda"
  23. INPUT f2.nume
  24. PRINT "_________________"
  25. INPUT f2.deno
  26. IF f1.deno = 0 OR f2.deno = 0 THEN
  27.     PRINT "Denominador es 0"
  28.     GOTO lectura
  29. END IF
  30. IF opc = 1 THEN
  31.     IF f1.deno = f2.deno THEN
  32.         fr.deno = f1.deno
  33.         fr.nume = (f1.nume + f2.nume)
  34.     END IF
  35.     fr.nume = (f1.nume * f2.deno) + (f2.nume * f1.deno)
  36.     fr.deno = (f1.deno * f2.deno)
  37.     GOTO impresora
  38. END IF
  39. IF opc = 2 THEN
  40.     IF f1.deno = f2.deno THEN
  41.         fr.deno = f1.deno
  42.         fr.nume = (f1.nume - f2.nume)
  43.     END IF
  44.     fr.nume = (f1.nume * f2.deno) - (f2.nume * f1.deno)
  45.     fr.deno = (f1.deno * f2.deno)
  46.     GOTO impresora
  47. END IF
  48. IF opc = 3 THEN
  49.     fr.nume = (f1.nume * f2.nume)
  50.     fr.deno = (f1.deno * f2.deno)
  51.     GOTO impresora
  52. END IF
  53. IF opc = 4 THEN
  54.     fr.nume = (f1.nume * f2.deno)
  55.     fr.deno = (f1.deno * f1.nume)
  56.     GOTO impresora
  57. END IF
  58. IF opc = 5 THEN
  59.     IF (f2.nume / f2.deno) < 0 THEN
  60.         aux = f1.nume
  61.         f1.nume = f1.deno
  62.         f1.deno = aux
  63.         pow = ABS(f2.nume / f2.deno)
  64.     END IF
  65.     fr.nume = (f1.nume ^ f2.nume) ^ (1 / (f2.deno))
  66.     fr.deno = (f1.deno ^ f2.nume) ^ (1 / (f2.deno))
  67.     GOTO impresora
  68. END IF
  69. impresora:
  70. PRINT "Resultado"
  71. PRINT fr.nume
  72. PRINT "_________________"
  73. PRINT fr.deno
  74. PRINT "En decimal ser�a" + STR$(fr.nume / fr.deno)
  75. IF simop = "s" THEN END
  76. PRINT "�Quiere intentar simplificar?(S/N)"
  77. INPUT simop
  78. IF simop = "s" THEN GOTO simplificador
  79. simplificador:
  80. IF fr.nume > fr.deno THEN
  81.     may = fr.nume
  82. ELSE may = fr.deno
  83. END IF
  84. FOR i = may TO 1 STEP -1
  85.     IF (fr.nume MOD i) = 0 AND (fr.deno MOD i) = 0 THEN
  86.         fr.nume = fr.nume / i
  87.         fr.deno = fr.deno / i
  88.         IF fr.nume > deno THEN
  89.             may = fr.nume
  90.         ELSE may = fr.deno
  91.         END IF
  92.     END IF
  93. NEXT
  94. GOTO impresora
Advertisement
Add Comment
Please, Sign In to add comment