
27/10/2004, 11:28
|
 | Moderador | | Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 5 meses Puntos: 98 | |
Bueno, no está totalmente probado, pero aqui te dejo este código, funciona a base de arreglos...
Código:
<%
'Función para ordenar un arreglo, método de la burbuja
Function OrdenaArreglo(arreglo)
If isArray(arreglo) Then
Dim temp
For i = 0 to uBound(arreglo)
For j = i + 1 to uBound(arreglo)
If arreglo(i) > arreglo(j) Then
temp = arreglo(i)
arreglo(i) = arreglo(j)
arreglo(j) = temp
End If
Next
Next
Else
OrdenaArreglo = Null
End If
OrdenaArreglo = arreglo
End Function
'Devuelve el número de indices + 1 en caso de que sea arreglo
Function cuentaArreglo(arreglo)
If isArray(arreglo) Then
cuentaArreglo = Ubound(arreglo) + 1
Else
cuentaArreglo = null
End If
End Function
Function esPar(num)
select Case abs(num) mod 2
case 0: esPar = true
case 1: esPar = false
end select
End Function
Sub ImprimeArreglo(arreglo)
For i = 0 to uBound(arreglo)
Response.Write arreglo(i) & ","
Next
End Sub
'serie de números, puede llegar por formulario, es importante separarlo por comas
serie = "10 , 11 , 12 , 12 , 13"
'quitamos cada espacio en la serie
serie = replace(serie, " ", "")
'Si no está vacia nuestra serie
If not serie = "" Then
arrSerie = OrdenaArreglo(split(serie, ","))
If not isNull(arrSerie) Then
elementos = cuentaArreglo(arrSerie)
If not IsNull(elemento) Then
Par = esPar(elementos)
If Par Then
intermedio1 = cint(elementos/2) - 1
intermedio2 = cint(elementos/2)
mediana = cdbl(arrSerie(intermedio1)) + cdbl(arrSerie(intermedio2))
mediana = mediana/2
Else
mediana = arrSerie(abs(elementos/2))
End If
Response.Write "Esta es la mediana para la serie["
ImprimeArreglo arrSerie
Response.Write "]: " & mediana
End If
Else
Response.Write "Ingresa una serie correcta, separada por ','"
End If
Else
Response.Write "Ingresa una serie correcta, separada por ','"
End If
%>
Salu2,
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway |