C++ Dual-Taschenrechner Programm, aber wie?

KRAiZEE

Grünschnabel
Hi erstmal!
Ich hab da 'n echt fettes Problem!
Übermorgen muss das Proggi fertig sein (mach gerade 'ne Umschulung zum Anwendungsentwickler).

Also die Aufgabe:

Die Aufgabestellung ist ziemlich schwammig, ich soll einen Dualtaschenrechner als Windows-Konsolenanwendung erstellen, mit Menue, der multipliziert & addiert, soweit so gut...:rolleyes:

Mein Problem ist:

Wenn ich das mit einem Array realisieren will, denke ich müsste ich mir erstmal
überlegen ob 8bit, 16bit, etc. (berichtigt mich bitte wenn ich falsch liege) doch wie würde das funktionieren? Ausgegangen von 8 bit könnte das Ergebnis der Rechnung demnach maximal den Wert 256 darstellen. Die Ausgabe müsste also z.B. in 16bit laufen um sowas wie 11111111 * 11111111 überhaupt noch berechnen zu können:( !?
Ich dreh mich da irgendwie Mental im Kreis..
Vielleicht hat da jemand 'n netten Denkanstoß für mich....

:-) KRAiZEE 2004 :mad:
 
Übermorgen muss das Proggi fertig sein (mach gerade 'ne Umschulung zum Anwendungsentwickler).
Also ehrlich gesagt habe ich den Eindruck, dass du da schon etwas früher hättest anfangen können. Erwartest du da jetzt eine Komplettlösung? Weil: Beim jetzigen Stand müsste es das wohl sein. Und das tut dir keinen Gefallen, wenn du dich ernsthaft Anwendungsentwickler nennen willst. Überleg dir das gut.

denke ich müsste ich mir erstmal
überlegen ob 8bit, 16bit, etc. (berichtigt mich bitte wenn ich falsch liege) doch wie würde das funktionieren?
In C++ können wir auch ganz normal rechnen. Für eine TAschenrechneremulation würde ich float als Datentyp empfehlen. Damit kannst du auch Nachkommastellen berechen.
als Windows-Konsolenanwendung erstellen, mit Menue,
Mit Menü? Das verstehe ich nicht. Konsolenanwendungen haben normalerweise kein Menü.
 
Ansich hast Du ja recht, nur ich hab die Aufgabe seit gestern Mittag, das Prob ist halt nur, der Dozent ist Krank (also nicht zu erreichen) und ich kann mit der aufgabenstellung nichts anfangen!

Die Menueführung mal ganz aussenvor..
also mein hauptproblem ist zu realisieren das wenn ich mich an eine 8bit Struktur halte, dann kann ich doch nie die maximalwerte addieren oder multiplizieren da z.B. 8bit max. den Wert 256 darstellen kann, aber wie will ich in 8bit den wert von 256*256 ausgeben, das wäre ja unmöglich...

Also nochmal wo liegt mein Denkproblem...?

P.S. was kann ich dafür wenn unsere Schule so SCHE**E ist.
 
also mein hauptproblem ist zu realisieren das wenn ich mich an eine 8bit Struktur halte, dann kann ich doch nie die maximalwerte addieren oder multiplizieren da z.B. 8bit max. den Wert 256 darstellen kann, aber wie will ich in 8bit den wert von 256*256 ausgeben, das wäre ja
Hast du irgendwelche Vorgaben, die ein Array von 8 oder 16-Bit-Werten beinhalten? Wenn nicht, dann verwirf diesen Ansatz besser. Wozu soll das gut sein? Eventuell als Tastaturmatrix oder so?
 
wie stellst du dir denn das prinzipiell vor, wenn das schon der Denkfehler sein soll? Ich muss dazu sagen ich hab so gut wie keine Programmiererfahrung und fühl mich auch von dem Dozenten ziemlich verarscht, da ich wirklich keine genauere Aufgabenstellung erhalten habe..
 
Ich hatte mir halt überlegt ein array anzulegen, die werte in dezimal umzurechnen, dann adieren oder multiplizieren, und in dual zurückzurechnen und dies dann auszugeben
Eine Vorgabe für 8 oder 16bit gibt es nicht
 
Zuletzt bearbeitet:
Ich hatte mir halt überlegt ein array anzulegen, die werte in dezimal umzurechnen, dann adieren oder multiplizieren, und in dual zurückzurechnen und dies dann auszugeben
Und was sollte das für einen Sinn haben? Ich begreife nicht, was das mit der Simulation eines Taschenrechners zu tun haben soll.
 
@ Kachelator er muss ein Dual Taschenrechner machen , bitte genauer lesen bevor man andere anmault, auch wenn dein erster Kritikpunkt berechtigt war ;)
@KRAiZEE
Also wenn du es quick and dirty willst , mache dir ein 8Bit Array das immer 1 oder 0 festhält. Das Array kann eine feste größe haben z.B.: 64 (64 Bit als maximal Ergebnis).
Nun liest du die zwei binären Zahlen von der Konsole und wandelst sie gleichzeitig in das Array.
Code:
if (strconsole[x] == '1' )
  aray[i] = 1;
else  if(strconsole[x] == '0' )
  aray[i] = 0;
else if(strconsole[x] == ' \n' )  // oder \r
  ENDE
else
  FEHLER

Denke dran die niederwertigsten bits sind bei der eingabe ganz links (also gegen Ende des Strings müssen aber nach vorne in das Array)

Für das rechnen ist es wohl am einfachsten in ein Float zu wandeln
Code:
 fValue1 +=  array[x] * 2^x //   2 hoch x


Zurückwandeln analog


Diese Implementierung ist natürlich weder perfomant noch schön , aber der Denkansatz hilft hoffentlich.

Andere Möglichkeit ein Bit setzen in einem z.B.: 64Bit Integer wenn eine 1 in der Konsole eingegeben wurde an entsprechender Stelle. die zwei 64 Bit Int werte normal verrechnen und dann für die Konsole zurückwandeln.

Wenn du jedoch nicht die Operatioenen +,-,* selber machen sollst kannst du gleich auf den Arrays arbeiten

Das Menu ist wohl ein einfaches Frage Antwort spiel:
Menu:
1.) Add
2.) Sub
3.) Mul
..
Q:.) Quit


Hoffe es hilft bishen, ansonsten frage weiter

Ihre Wahl:
 
@basd: O mein Gott, es fällt wie Schuppen aus meinen Haaren! Jetzt geht mir erst ein Licht auf: Er soll einen Dualrechner bauen mit dual wie in "duales oder auch Binärsystem"? Deshalb das mit den Bits? Okay, das hatte ich wirklich nicht begriffen. Obwohl ich es genau gelesen hatte. Habe nämlich (Brett vorm Kopf) Dual für eine Taschenrechnermarke gehalten, so wie HP oder Sharp. Peinlich. Tut mir leid. Nun ist mir vieles klarer! :eek: :-)
 
Zurück