Mediana

Estoy haciendo una calculadora y tiene una función mediana. Se trata de ordenar cinco campos numéricos y que te indique el del medio solo. El problema es que lo estoy haciendo if anidados haciéndole refencia a un máximo y a un mínimo y me da error. Me podría ayudar si supiera alguna otra forma se lo agradecería ya que estoy un poco perdió y soy principiante en esto.

1 Respuesta

Respuesta
1
Lo que deseas hacer es matemática básica. Solo debes ingresar cada uno de los valores a una lista, por ejemplo:
ingreso=[2,5,1,3,4]
Luego oredenar esa lista con algun metodo como burbuja.
ordenado=[1,2,3,4,5]
Teniendo ya ordenada la lista, solo debes obtener el numero central de la lista
total=ordenado.count
mediana=ordenado[(total/2)+1]
Claro que tendrás que utilizar un método para numero de elementos par o impar en la lista, ya que la mediana en una muestra par es el promedio de los 2 números centrales.
Hola, muchas gracias. Pero no se como hacerle referencia referencia a la burbuja a la lista pa que los ordene los campos si que me coge el valor del medio pero me falta hacerle referencia a la burbuja porque mire así es como lo he hecho:
on mediana
x=list(field("numero1"),field("numero2"),field("numero3"),field("numero4"),field("numero5"))
repeat with x= 1 to 5
if x[field("numero1")] > x[field("numero2")] then
aux=x[field("numero1")]
x[field("numero1")]=x[field("numero2")]
aux=x[field("numero2")]
end if
end repeat
z=x.count
mediana=x[(z/2)+1]
put mediana into field("resultado")
end
Puede echarme una mano. Gracias
De acuerdo al script que me indicas, supongo que solo se ingresan 5 números.
El ordenar una lista está dado por la función sort() que se incluye en lingo.
El script seria así.
On getMediana
n1=integer( field("numero1") )
n2=integer( field("numero2") )
n3=integer( field("numero3") )
n4=integer( field("numero4") )
n5=integer( field("numero5") )
listaNumeros=[n1, n2, n3, n4, n5]
listaNumeros.sort()
totalElementos=listaNumeros.count
mediana=listaNumeros[(totalElementos/2)+1]
put mediana into field("resultado")
end
Muchas Gracias por la aclaración de la funcio sort me ha ayudado mucho. Muchas gracias.
Saludos.
Me da gusto haberte ayudado. Ahora solo debes evaluar y finalizar esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas