Hola.
   Cita:  
					Iniciado por Adler  
  Intenta evitar usar el mismo nombre para una variable y un campo.
 
      var operando1 = document.calc.operando1.value 
 
No vas a concatenar los elementos, sino sumarlos o multiplicarlos, así que sería suficiente
 
      var result1 = (operando1 * operando3);
    var result2 = (operando2 * operando3);
 
    var result3 = (operando4 + operando5);
 
 Suerte
    Supongo que no se debe usar el mismo nombre de variable que de campo, para no llevar a posible confusión, pero he de decirte que no da error y no hay problema en hacerlo. Por lo menos yo siempre lo he hecho así. 
Por otra parte, si te fijas, el 
eval() es necesario en este caso porque lo que se pasa por argumento es 
la accion de la operación, es decir, si se suma o se multiplica (en forma de string). Lo que si es verdad es que no tiene mucho sentido si no vamos a reutilizar la misma función con distintas acciones: ponerlo directamente sería más cómodo.   
Lo que me intriga es, ¿porque el evento asignado a los botones es on
change? Con 
onclick funciona perfectamente... ¿No te has dado cuenta que si metes un 
alert() en cualquiera de las funciones no se ejecuta? ¿Ni de que tampoco da ningún error aunque no funcione? Que yo sepa, un 
elemento button no tiene 
onchange...   
Un saludo.