![]() |
|
![]()
![]() | MAS ETH ARCH/CAAD - 2005/06 - STUDENT PAGES Master of Advanced Studies in Architecture, Specialization in Computer Aided Architectural Design | 065-0005/6 Supervision: Prof. Dr. Ludger Hovestadt, Philipp Schaerer Chair of CAAD, ETH Zurich Toni Kotnik Module 4: Configurator|Mini-Assignment 1 calculator display.text = "0"; // angezeigten text leeren ergebnis.text = 0; var faktor1 = 0; // die zu verknüpfenden Faktoren var faktor2 = 0; // funktion zur aktualisierung der ausgabe function aktualisieren() { if(display.text == "0") // falls anzeige 0, dann mit aktuellem wert überschreiben { display.text = this.wert; }else { display.text = display.text + this.wert; // sonst aktuellen wert an angezeigten text anhängen } } // abfragen der zahl und display ergänzen var i; //counter var btn_a; // button for (i=0; i<10; i++) { btn_a = _root["btn"+i]; // button auf tastatur setzen btn_a.wert = i; // dem button eine eigenschaft zuordnen btn_a.onRelease = aktualisieren; // bei tastendruck display aktualisieren } btnPoint.onRelease = function() // punkt separat abfragen { display.text = display.text + "."; } // berechnung durchführen var operator; // operator zwischenspeichern var flag = 1; // anzahl der vorhandenen zahlen function calculate() { var op = this.wert; if(flag == 2) // zwei zahlen vorhanden {faktor2 = Number(display.text); // aktuellen wert aus display einlesen switch(operator) // entsprechend letztem operator berechung durchführen { case "Plus" : faktor1 = faktor1 + faktor2; break; case "Minus" : faktor1 = faktor1 - faktor2; break; case "Mult" : faktor1 = faktor1 * faktor2; break; case "Div" : faktor1 = faktor1 / faktor2; break; } }else // nur eine zahl vorhanden { faktor1 = Number(display.text); } flag = 2; if (op == "Equal") // berechnung abschliessen { display.text = String(faktor1); // ergebnis ausgeben operator = ""; // kein neuer operator flag = 1; // nur noch eine zahl vorhanden }else { display.text = "0"; // display zurücksetzen für eingabe der nächsten zahl operator = op; } if (String(faktor1) == "Infinity") // division durch 0 wurde durchgeführt { display.text = "division by zero"; } ergebnis.text = faktor1; // zwischenergebnis im fenster ausgeben } // abfagen der gedrückten Operation operatoren = new Array(); operatoren = ["Plus","Minus","Mult","Div","Equal"]; // operatoren als array auflisten var btn_b; for (i=0; i<5; i++) { btn_b = _root["btn"+operatoren[i]]; btn_b.wert = operatoren[i]; // dem button eine eigenschaft zuordnen btn_b.onRelease = calculate; // berechnung durchführen mit dem operator } // löschen der letzten eingabe btnClear.onRelease = function() { display.text = "0"; // eingabefenster löschen if(operator == "") // falls aktuelle zahl der erste faktor ist { ergebnis.text = 0; // zwischenergebnis löschen } } // löschen der gesamten eingabe btnReset.onRelease = function() { display.text = "0"; // alle werte zurück setzen ergebnis.text = 0; faktor1 = 0; faktor2 = 0; operator = ""; flag = 1; }
|
This website has been archived and is no longer maintained.