Código de JavaScript - Tratamiento de numeros fraccionarios

sin imagen de perfil

Tratamiento de numeros fraccionariosgráfica de visualizaciones


JavaScript

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 24 de Mayo del 2002 por Juan R Monroy (3 códigos)
12.676 visualizaciones desde el 24 de Mayo del 2002
Con este código podrás sumar, multiplicar, restar y dividir numeros fraccionarios.

Versión 1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 24 de Mayo del 2002gráfica de visualizaciones de la versión: Versión 1
12.677 visualizaciones desde el 24 de Mayo del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Colocar el siguiente código entre las etiquetas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<center><form>
	 <font color="#FFFFFF">
	 F1=<input type=text name=f1n size=2> / <input type=text name=f1d size=2><br><br>
	 F2=<input type=text name=f2n size=2> / <input type=text name=f2d size=2><br><br>
	 <input type=button value="Sumar" onclick="sumarfraccionario()"> 
	 <input type=button value="Restar" onclick="restarfraccionario()"> <br><br>
	 <input type=button value="Multiplicar" onclick="multipfraccionario()"> <br><br>
	 <input type=button value="Dividir" onclick="dividirfraccionario()"> <br><br>
	 <input type="reset" onclick=(window.status="Fraccionarios")>
	</font></form><br><br><br><br>
	<marquee  bgcolor="#000000" direction="left" width="300">
	<font color="#258D7D" face="Berlin Sans FB"><b>Números Fraccionarios</b></font>
	</marquee></center><br><br><br><br>
<script language = javascript>
<!--
	function sumarfraccionario()
	{
	 var f1n= parseInt(document.forms[0].f1n.value);
	 var f1d= parseInt(document.forms[0].f1d.value);
	 var f2n= parseInt(document.forms[0].f2n.value);
	 var f2d= parseInt(document.forms[0].f2d.value);
	 var f1= new Fraccionario(f1n,f1d);
	 var f2= new Fraccionario(f2n,f2d);
	 var f3= f1.Sumar(f2);
	 alert('f3=' + f3.Num + '/' + f3.Den);
	 delete f1;
	 delete f2;
	 delete f3;
	 document.close();
	}     

	function restarfraccionario()
	{
	 var f1n= parseInt(document.forms[0].f1n.value);
	 var f1d= parseInt(document.forms[0].f1d.value);
	 var f2n= parseInt(document.forms[0].f2n.value);
	 var f2d= parseInt(document.forms[0].f2d.value);
	 var f1= new Fraccionario(f1n,f1d);
	 var f2= new Fraccionario(f2n,f2d);
	 var f3= f1.Restar(f2);
	 alert('f3=' + f3.Num + '/' + f3.Den);
	 delete f1;
	 delete f2;
	 delete f3;
	 document.close();
	}
	
	function multipfraccionario()
	{
	 var f1n= parseInt(document.forms[0].f1n.value);
	 var f1d= parseInt(document.forms[0].f1d.value);
	 var f2n= parseInt(document.forms[0].f2n.value);
	 var f2d= parseInt(document.forms[0].f2d.value);
	 var f1= new Fraccionario(f1n,f1d);
	 var f2= new Fraccionario(f2n,f2d);
	 var f3= f1.Multiplicar(f2);
	 alert('f3=' + f3.Num + '/' + f3.Den);
	 delete f1;
	 delete f2;
	 delete f3;
	 document.close();
	}

	function dividirfraccionario()
	{
	 var f1n= parseInt(document.forms[0].f1n.value);
	 var f1d= parseInt(document.forms[0].f1d.value);
	 var f2n= parseInt(document.forms[0].f2n.value);
	 var f2d= parseInt(document.forms[0].f2d.value);
	 var f1= new Fraccionario(f1n,f1d);
	 var f2= new Fraccionario(f2n,f2d);
	 var f3= f1.Dividir(f2);
	 alert('f3=' + f3.Num + '/' + f3.Den);
	 delete f1;
	 delete f2;
	 delete f3;
	 document.close();
	}
	function Fraccionario(N,D)
	{
	 this.Num=N;
	 this.Den=D;
	 this.Sumar=Sumar;
	 this.Restar=Restar;
	 this.Multiplicar=Multiplicar;
	 this.Dividir=Dividir;
	 this.Simplificar=Simplificar;
	}
	
	function Sumar(F)
	{
	 var R= new Fraccionario(this.Num * F.Den + this.Den * F.Num, this.Den * F.Den);
	 R.Simplificar();
	 return R;
	}

	function Restar(F)
	{
	 var R= new Fraccionario(this.Num * F.Den - this.Den * F.Num, this.Den * F.Den);
	 R.Simplificar();
	 return R;
	}

	function Multiplicar(F)
	{
	 var R= new Fraccionario(this.Num * F.Num, this.Den * F.Den);
	 R.Simplificar();
	 return R;
	}

	function Dividir(F)
	{
	 var R= new Fraccionario(this.Num * F.Den, this.Den * F.Num);
	 R.Simplificar();
	 return R;
	}
	
	function Simplificar()
	{
	 var M = mcd(this.Num,this.Den);
	 this.Num /= M;
	 this.Den /= M;
	}
	
	function mcd(a,b)
	{
	 var r = a % b;
	 if(r==0)
	 {
	  return b;
	 }
	 else
	 {
	  return mcd(b,r);
	 }
	}
-->
</script>



Comentarios sobre la versión: Versión 1 (2)

14 de Marzo del 2014
estrellaestrellaestrellaestrellaestrella
gracias totales.
Responder
Anonimo
18 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
Hola como estas muy interesante es muy bueno el código lo único es que en la parte dela suma y la resta el mínimo común múltiplo lo hace multiplicando los denominadores y esta errado ya que si hacemos una fracción con denominadores 9 y 15 el mcm seria 45 no 135.

Yo conseguí una formula para calcular el mcm pero no se como agregarla a la función ya que no me corre

Aquí te ka dejo por si la quieres usar y arreglar tu código. avísame si lo arreglas

var mcm= 1;
var div= 2;



while(div <= f1d || div <= f2d){

while((div <= f1d && f1d % div==0) || (div <= f2d && f2d % div==0)){

mcm=mcm*div;

if((div <= f1d && f1d % div==0))
f1d=f1d/div;

if((div <= f2d && f2d % div==0))
f2d=f2d/div;
}
div=div+1;
}
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s202