Estudiante javascript

Hola,
soy estudiante. Estoy intentando pelearme con javascript. Supongo que muchos de vosotros os habéis visto en mi situación en algún momento. Mi problema es que tengo bastante dificultad con la programación.
Tengo que realizar un formulario en el que hemos de simular una evaluación curricular y que consiste en lo siguiente.
- 12 asignaturas. Cada una de ellas con su número de créditos y su nota
Ej: matemáticas créditos 6.5 nota 6.4
Donde 6.5 será un campo oculto y la nota la introduciremos nosotros en una caja de texto.
Nuestro javascript llamado: function Avalúa(){ ha de ser capaz de calcularme la media. Todo esto con unas determinadas condiciones.
Suspendido (cualquier nota que aparezca menor de 4) "ha de mostrar en una caja de texto el número de asignaturas suspendidas"
Compensable (cualquier nota que aparezca entre el 4 y el 5; siempre con un máximo de 2 asignaturas)"ha de mostrar en una caja de texto el número de asignaturas compensadas"
Media. La calculamos de la manera siguiente: [(credito1*nota1)+(credito2*nota2)+(credito3*nota3)+.....("así hasta 12") / (suma de créditos) y ha de mostrarla en una caja de texto.
El diseño gráfico de la web ya lo tengo realizado. Algunos condicionales (if) tengo la idea de como deberían ser. Se que tengo que utilizar funciones como eval y parseFloat pero no se como. Os muestro mi poco trabajo y ojala alguien pueda echarme una mano.
function Avalua(){
var Media, suspenso, sumaCreditos, nota, Creditos, Compensada,apto; //creo que me faltan variables para poder trabajar correctamente.
Media=0;
suspenso=0;
sumaCreditos=0;
Compensaciones=0;
apto="Apto";
var nota=new Array(asignaturas);
var cred = new Array(creditos);
for(i=1;i<=11;i++){ //con este array recorro las asignaturas
 if(nota<4){
 apto="No Apto";
 suspenso=suspenso+1;
 }
 if(nota<5&&anota>=4){
 compensada=compensada;
 compensada=compensada+1;
 }
 if(compensada>2){
 compensada=2;
 suspenso=suspenso+1;
 apte="No Apte";
 }
sumaCreditos = sumaCreditos + cred;
//no se como deberia calcular la media
Media = Media / sumaCreditos;
 }
 //esta es la parte en la que situare cada resultado en los campos de texto de mi web. 
    document.form1.mit.value=Media;
    document.form1.conv.value=compensada;
 document.form1.susp.value=suspenso;
 document.form1.validar.value=apto;
}
¿Es correcta mi idea? ¿Cómo puedo completarla? Muchas gracias de antemano.

1 Respuesta

Respuesta
1
Esta función debería ayudarte en lo que buscas
function Avalua(){
    var i = 0;
    var nota = 0;
    var credito = 0;
    var suspenso = 0;
    var compensada = 0;
    var mensaje = "";
    var creditos = 0;
    var notas = 0
    for(i = 0, i < 12, i++){
        nota = $(nota).getProperty('value');
        credito = $(credito).getProperty('value');
        if(nota < 4){
            suspenso++;
            }
        if(nota >= 4 && nota < 5){
            compensada++;
            }
        if(compensada > 2 || suspenso > 0){
            mensaje = "No Apto";
            }
        creditos += credito * nota;
        notas += nota;
    }
    media = creditos / nota;
    $('mit').setProperty('value', media);
    $('conv').setProperty('value', compensada);
    $('susp').setProperty('value', suspenso);
    $('validar').setProperty('value', mensaje);
}
Lo unico que deberias incluir, es la libreria mootools (http://www.mootools.net/), y dentro del formulario, a los input que tengan los creditos darles a todos id credito[] y los que vayan a contener las notas nota[], por ultimo, los inputs que contengan los valores, deberan tener id = mit, conv, susp y validar.
La función $() es simplemente un reemplazo al document. GetElementById(), utilizada en la mayoría de las librerías JS.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas