Übungsaufgab und keine Ahnung! < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:20 So 26.11.2006 | Autor: | sascha81 |
Aufgabe | Implementierung und erstellen eines Rechenautomat |
ch habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Aufgabe 2 (Implementierung)
Integrieren Sie die grafischen Ein- und Ausgaben mit geeigneter Konvertierung in alle
folgenden Aufgaben. Zudem sollen mögliche Fehler abgefangen werden.
(vgl. grafische Ein-/Ausgabe)
1. Verändern Sie Ihren Taschenrechner, so dass der Benutzer zuerst einen Operator (+,-, *, /, %,
..) und anschließend zwei ganze Zahlen (Wertebereich 0 bis 32767) eingeben kann. Realisieren
Sie die Auswertung mit der mehrseitigen Auswahl.
2. Erstellen Sie einen neuen Rechenautomaten angegebenen Berechnungen.(Volumen und Oberflächen von Zylinder, Würfel, Quader,Kreiskegel berechnen)
Benutzen Sie die Zahl Pi .
Implementieren Sie
mindestens zwei der o. a. Körper. Die notwendigen Eingaben sollen einen Wertebereich
zwischen 0 und 32767 aufweisen.
Wie zum Teufel schreib ich das Programm? Ich hab leider echt keine Ahnung. Danke!
|
|
|
|
Hallo,
da frage ich doch mal zurück:
Worauf zum Teufel bezieht sich diese Aufgabe? Anscheinend geht es um eine Erweiterung irgendeines Taschenrechners in irgendeiner Programmiersprache (ich tippe auf C oder Java). Du schreibst auch nicht, worin das Problem besteht. Ist es nur das "switch"? Dann ist es nicht weiter schwer. Aber das Problem scheint größer zu sein...
Hmm, bitte mach etwas deutlicher, was dir Schwierigkeiten bereitet.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:48 Mo 27.11.2006 | Autor: | sascha81 |
Hi. Danke für deine schnelle Antwort. Wir hatten vorher mit dem Programm Eclipse einen sogenannten Taschenrechner programmiert. (JAVA)!!!
Und nun sollen wir diesen Taschenrechner erweitern mit den Funktionen das die Volumen und Oberflächen berechnet werden von Zylinder, Würfel,Quader, Kreiskegel.
Desweiteren soll der Taschenrechner so verändert werden das der Benutzer zuerst einen Operator (+,-,*,/,%) und anschließend zwei ganze Zahlen (Wertebereich 0 bis 32767) eingeben kann. Dies soll ich realisieren mit der mehrseitigen Auswahl. Gruss Sascha
|
|
|
|
|
Hallo,
jetzt wird es etwas klarer, wenn auch nicht ganz.
Ich verstehe noch nicht ganz, ob die Eingabe der Operatoren und die Eingabe der Operanden über Buttons oder über ein Textfeld geschehen.
Wie wird jeweils eine Eingabe abgeschlossen?
Abgesehen davon könnte man Folgendes machen:
Den aktuellen Eingabestand könnten wir in einer int-Variablen erwarteteOperanden speichern.
Beim Anklicken (oder anderen Eingabe) eines binären Operators (also z.B. +, - usw.), wird der angeklickte Operator (z.B. als eindeutiger Zahlencode +=1, -=2, *=3 usw.) in der int-Variablen operator gespeichert und der Variablen erwarteteOperanden der Wert 2 zugewiesen.
Bei jeder nun folgenden Zahleneingabe wird dieser Wert um 1 gesenkt und geprüft, ob er nun 0 ist. Wenn ja, dann wird die Berechnung (s.u.) durchgeführt. Falls nicht, wird der gerade eingegeben Wert in einem int-Array (oder float oder double) operand[] (z.B. der Größe 5, Hauptsache, es hat mindestens 2 Elemente) gespeichert.
Genauso kann man es mit den geometrischen Berechnungen machen. Für die Berechnung des Zylindervolumens benötigen wir zwei Größen (Radius und Höhe), also setzen wir erwarteteOperanden entsprechend auf 2, wenn als Operand "ZylVol" (oder so ähnlich) ist. Wir setzen operator
auf den Code dieses Operanden (z.B. 101) und erwarten nun noch zwei Zahleneingaben in einer vorgegebenen Reihenfolge (z.B. zuerst Radius, dann Höhe), die wir genauso wie bei den anderen Rechenoperationen in dem operandArray speichern.
Ach ja, wenn du beispielweise ein Quadervolumen berechnen willst (benötigt drei Größen), dann setzt du den Wert von erwarteteOperanden anfangs auf 3. Klar, oder?
Zur Berechnung:
Sobald eine Zahl eingegeben wurde und der wieder um 1 gesenkte Wert von erwarteteOperanden 0 ergibt, startet die Berechnung. Die könnte dann mit switch so aussehen:
switch(operator) {
case 1: ergebnis = operand[0]+operand[1]; break; //Operand war +
case 2: ergebnis = operand[0]-operand[1]; break; //Operand war -
case 101: ergebnis = Math.PI*operand[0]*operand[0]*operand[1]; break; //Operand war ZylVol
//usw... alle Operatoren mit cases verarbeiten
default: System.err.println("Unbekannter Operator!!!"); //oder so ähnlich
}
operator = -1; //so wissen wir immer, dass die Operation abgerabeitet wurde und seitem kein neuer Operator eingegeben wurde!
Na ja, das waren meine Anregungen. Genaueres kann ich auch nicht schreiben, weil mir die Angaben dazu fehlen. Außerdem musst du ja auch noch was zu tun haben...
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:09 Di 28.11.2006 | Autor: | sascha81 |
Vielen Dank Martin! Es sollen die Zahlen in der Consloe eingegeben werden!!! Ich denke das bekomm ich dank deiner Hilfe jetz irgendwie hin!!! Gruss Sascha
|
|
|
|