hola de nuevo, me sirvio mucho la ayuda que me diste jokuto, gracias
ya he avanzado un poco en el codigo y han surgido otros problemas en los que espero me puedan ayudar
1. Cuando trato de correr el codigo con varios datos unos 30 mas o menos, se queda quieto no hace nada, y no entiendo el porque >.< (con pocos numeros si halla el promedio y la desviacion estandar)
2. Algo que quisiera agregar al final es la opcion de volver a empezar ya se como sacar la ventana con las 2 opciones el problema esta en como hacer para que vuelva al inicio a cuando no estaban los textbox y esperaba la cantidad de datos que queria.
Se agradece cualquier ayuda :)
Dejo el codigo de como lo llevo hasta el momento
Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script language="javascript" type="text/javascript">
function revisa(valor)
{
var valido=0
for (var i = 0; i < valor.length; i++)
{
var caracter = valor.substring(i, i+1)
if (caracter != "0" && caracter != "1" && caracter != "2" && caracter != "3" && caracter != "4" && caracter != "5" && caracter != "6" && caracter != "7" && caracter != "8" && caracter != "9" && valido==0)
{
alert("Solo estan permitidos los numeros enteros")
valido++
}
}
if(valor=="")
{
alert("Ingrese algun entero para empezar")
valido++
}
if(valor>100)
{
alert("El valor maximo es 100")
valido++
}
if(valido>0)
{document.inicio.cantidad.value=""}
else
{ document.inicio.cantidad.disabled = this.value!=''
document.inicio.acepta.disabled = this.value!=''
document.inicio.activa.disabled = false;
document.getElementById('lista').innerHTML='';
for( j=1; j<=valor; j++)
{
var nl ="campo"+j
if(j != 20 && j!= 40 && j!=60 && j!=80 )
document.getElementById('lista').innerHTML+= '<li><input type="text" name='+nl+' onblur="revisa2(this.value, this.name)"></li>';
}
}
}
function revisa2(valor, nombre)
{
var valido=0
for (var i = 0; i < valor.length; i++)
{
var caracter = valor.substring(i, i+1)
if (caracter != "0" && caracter != "1" && caracter != "2" && caracter != "3" && caracter != "4" && caracter != "5" && caracter != "6" && caracter != "7" && caracter != "8" && caracter != "9")
{
valido++
}
if(valido>0)
{
document.inicio[nombre].value=""
}
}
}
function trabaja()
{
var cd = eval(document.inicio.cantidad.value) + 3
var sinvacios = 0;
for(var a=3; a<cd; a++)
{
if(document.inicio[a].value=="")
{alert("Faltan datos por ingresar"); sinvacios++; break;}
}
if (sinvacios == 0) {
for (var i = 3; i < cd; i++) {
for (var j = 3; j < cd; j++) {
if (eval(document.inicio[i].value) < eval(document.inicio[j].value)) {
var cambio = document.inicio[i].value;
document.inicio[i].value = document.inicio[j].value;
document.inicio[j].value = cambio;
}
}
}
}
if (sinvacios == 0)
{
var divi = eval(document.inicio.cantidad.value)
var suma=0;
for (var b = 3; b < divi+3; b++)
{
suma = suma + eval(document.inicio[b].value)
}
var promedio = suma/divi;
var desvi =0;
for(var c=3; c<divi+3; c++)
{
var num = eval(document.inicio[c].value) - eval(promedio)
desvi = desvi + Math.pow(num,2)
}
desvi = Math.sqrt(desvi/(divi-1))
alert("El promedio es: " +promedio+ "\nLa desviacion estandar es: "+desvi)
}
}
</script>
</head>
<body>
<form name="inicio" action="" method="post">
<label for "cantidad">Escriba la cantidad de datos: </label>
<input type="text" name="cantidad" id="cant_inicio">
<input type="button" name="acepta" value="Aceptar" onclick="revisa(cantidad.value)"><br>
<input type="button" name="activa" value="Activar" onclick="trabaja()" disabled = "true">
<ul id="lista"></ul>
<h5>(Enteros entre 1 y 100)</h5>
</form>
</body>
</html>