Buenos días, bienvenidx a la calculadora de Kandy Partemia

/*aspectos generales: bordes y color de fondo de calculadora*/ .calculadora { border: 3px blue ridge; width: 250px;text-align: center; background-color: #f6f8d8; } /*pantalla de visualización: bordes, posición, color de fondo, estilo letra.*/ #textoPantalla { width: 185px; border: 2px black solid; text-align: right; position: relative; left: 23px; padding: 0px 5px; background-color: white; font-family: "courier new"; overflow: hidden;} /*botones normales: anchura y margen*/ .calculadora [type=button] { width: 35px; padding: 0; } /*botones especiales*/ .calculadora input.largo { color: red; width: 60px; } Página javascript: calculadora.js window.onload = function(){ //Acciones tras cargar la página pantalla=document.getElementById("textoPantalla"); //elemento pantalla de salida document.onkeydown = teclado; //función teclado disponible } x="0"; //número en pantalla xi=1; //iniciar número en pantalla: 1=si; 0=no; coma=0; //estado coma decimal 0=no, 1=si; ni=0; //número oculto o en espera. op="no"; //operación en curso; "no" = sin operación. //mostrar número en pantalla según se va escribiendo: function numero(xx) { //recoge el número pulsado en el argumento. if (x=="0" || xi==1 ) { // inicializar un número, pantalla.innerHTML=xx; //mostrar en pantalla x=xx; //guardar número if (xx==".") { //si escribimos una coma al principio del número pantalla.innerHTML="0."; //escribimos 0. x=xx; //guardar número coma=1; else { //continuar escribiendo un número if (xx=="." && coma==0) { //si escribimos una coma decimal pòr primera vez pantalla.innerHTML+=xx; x+=xx; coma=1; //cambiar el estado de la coma } //si intentamos escribir una segunda coma decimal no realiza ninguna acción. else if (xx=="." && coma==1) {} //Resto de casos: escribir un número del 0 al 9: else { pantalla.innerHTML+=xx; x+=xx } } xi=0 //el número está iniciado y podemos ampliarlo. } function operar(s) { igualar() //si hay operaciones pendientes se realizan primero ni=x //ponemos el 1º número en "numero en espera" para poder escribir el segundo. op=s; //guardamos tipo de operación. xi=1; //inicializar pantalla. } function igualar() { if (op=="no") { //no hay ninguna operación pendiente. pantalla.innerHTML=x; //mostramos el mismo número } else { //con operación pendiente resolvemos sl=ni+op+x; // escribimos la operación en una cadena sol=eval(sl) //convertimos la cadena a código y resolvemos pantalla.innerHTML=sol //mostramos la solución x=sol; //guardamos la solución op="no"; //ya no hay operaciones pendientes xi=1; //se puede reiniciar la pantalla. } } function raizc() { x=Math.sqrt(x) //resolver raíz cuadrada. pantalla.innerHTML=x; //mostrar en pantalla resultado op="no"; //quitar operaciones pendientes. xi=1; //se puede reiniciar la pantalla function porcent() { x=x/100 //dividir por 100 el número pantalla.innerHTML=x; //mostrar en pantalla igualar() //resolver y mostrar operaciones pendientes xi=1 //reiniciar la pantalla } function opuest() { nx=Number(x); //convertir en número nx=-nx; //cambiar de signo x=String(nx); //volver a convertir a cadena pantalla.innerHTML=x; //mostrar en pantalla. } function inve() { nx=Number(x); nx=(1/nx); x=String(nx); pantalla.innerHTML=x; xi=1; //reiniciar pantalla al pulsar otro número. } function retro(){ //Borrar sólo el último número escrito. cifras=x.length; //hayar número de caracteres en pantalla br=x.substr(cifras-1,cifras) //describir último caracter x=x.substr(0,cifras-1) //quitar el ultimo caracter if (x=="") {x="0";} //si ya no quedan caracteres, pondremos el 0 if (br==".") {coma=0;} //Si el caracter quitado es la coma, se permite escribirla de nuevo. pantalla.innerHTML=x; //mostrar resultado en pantalla } function borradoParcial() { pantalla.innerHTML=0; //Borrado de pantalla; x=0;//Borrado indicador número pantalla. coma=0; //reiniciamos también la coma } function borradoTotal() { pantalla.innerHTML=0; //poner pantalla a 0 x="0"; //reiniciar número en pantalla coma=0; //reiniciar estado coma decimal ni=0 //indicador de número oculto a 0; op="no" //borrar operación en curso. } function teclado (elEvento) { evento = elEvento || window.event; k=evento.keyCode; //número de código de la tecla. //teclas númericas del teclado alfamunérico if (k>47 && k<58) { p=k-48; //buscar número a mostrar. p=String(p) //convertir a cadena para poder añádir en pantalla. numero(p); //enviar para mostrar en pantalla } //Teclas del teclado númerico. Seguimos el mismo procedimiento que en el anterior. if (k>95 && k<106) { p=k-96; p=String(p); numero(p); } if (k==110 || k==190) {numero(".")} //teclas de coma decimal if (k==106) {operar('*')} //tecla multiplicación if (k==107) {operar('+')} //tecla suma if (k==109) {operar('-')} //tecla resta if (k==111) {operar('/')} //tecla división if (k==32 || k==13) {igualar()} //Tecla igual: intro o barra espaciadora if (k==46) {borradoTotal()} //Tecla borrado total: "supr" if (k==8) {retro()} //Retroceso en escritura : tecla retroceso. if (k==36) {borradoParcial()} //Tecla borrado parcial: tecla de inicio. }

0

Para saber más Mi página en Neocities.