freak13 Geschrieben 25. Juni 2009 Geschrieben 25. Juni 2009 Halli hallo, ich soll zu einer alten Aufgabe, die bereits als C-programm von mir existiert, zu einem Java-Programm mit eclipse machen und ich habe meine lieben schwierigkeiten, wie das gehen soll...erstmal die Aufgabenstellung: Es ist ein lauffähiges Programm in C zu erstellen, das die Grundrechenarten auf rationalen Zahlen (Bruch-Zahlen) ausführt. Im einzelnen gelten folgende Anforderungen an das Programm: · Mögliche Grundrechenarten sind Addieren, Subtrahieren, Multiplizieren und Dividieren. · Die Grundrechenarten soll durch die Zeichen '+', '-', '*' bzw. '/' eingegeben werden. · Jede Grundrechenart ist auf die Verarbeitung von zwei rationalen Zahlen beschränkt. · Jede rationale Zahl ist mit Zähler und Nenner einzugeben. · Bei der Eingabe eines unzulässigen Wertes ist ein Fehler zu melden und das Programm zu beenden. · Das Resultat wird als ungekürzte, rationale Zahl errechnet. · Der Resultat-Bruch ist zusätzlich in eine reelle Zahl zu konvertieren. · Nach einer erfolgreichen Berechnung sind die Operanden, die Grundrechenart und die berechnete rationale Zahl in einer Zeile auszugeben. · Weiterhin ist der errechnete reelle Wert, gerundet auf zwei Nachkommastellen, auszugeben. · Strukturieren Sie das Programm in abgegrenzte Bereiche für jede Grundrechenart und kennzeichnen Sie die abgrenzten Bereiche durch Kommentare. Übersetzen Sie Ihr Programm und testen Sie es mit verschiedenen Eingabedaten(auch mit unzulässigen Werten!). Hier der C-Code: #include <stdio.h> #include <math.h> int main(){ int n1; int n2; int z1; int z2; int Z; int N; char ra; double y; //Eingabe printf("Moegliche Rechenarten: +,-,*,/\n"); printf("Geben Sie eine Rechenart ein:\n"); scanf("%c",&ra); //Berechnung if (ra=='+'){ printf("z1="); scanf("%d",&z1); printf("z2="); scanf("%d",&z2); printf("n1="); scanf("%d",&n1); printf("n2="), scanf("%d",&n2); if (n1==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else if (n2==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else { Z=(z1*n2+z2*n1); N=(n1*n2); y=(Z/N); printf("(%d/%d)+(%d/%d)=(%d/%d)\n",z1,n1,z2,n2,Z,N); printf("(%d/%d)+(%d/%d)=%.2f\n",z1,n1,z2,n2,(double)Z/(double)N); } } else if (ra=='-'){ printf("z1="); scanf("%d",&z1); printf("n1="); scanf("%d",&z2); printf("z2="); scanf("%d",&n1); printf("n2="); scanf("%d",&n2); if (n1==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else if (n2==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else{ Z=(z1*n2-z2*n1); N=(n1*n2); y=(Z/N); printf("(%d/%d)-(%d/%d)=(%d/%d)\n",z1,n1,z2,n2,Z,N); printf("(%d/%d)-(%d/%d)=%.2f\n",z1,n1,z2,n2,(double)Z/(double)N); } } else if (ra=='*'){ printf("z1="); scanf("%d",&z1); printf("n1="); scanf("%d",&z2); printf("z2="); scanf("%d",&n1); printf("n2="); scanf("%d",&n2); if (n1==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else if (n2==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else{ Z=(z1*z2); N=(n1*n2); y=(Z/N); printf("(%d/%d)*(%d/%d)=(%d/%d)\n",z1,n1,z2,n2,Z,N); printf("(%d/%d)*(%d/%d)=%.2f\n",z1,n1,z2,n2,(double)Z/(double)N); } } else if (ra=='/'){ printf("z1="); scanf("%d",&z1); printf("n1="); scanf("%d",&z2); printf("z2="); scanf("%d",&n1); printf("n2="); scanf("%d",&n2); if (n1==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else if (n2==0){ printf("Der Nenner darf nicht 0 sein!\n"); } else{ Z=(z1*n2); N=(n1*z2); y=(Z/N); if (N==0){ printf ("Der Nenner darf nicht 0 sein!\n"); } else{ printf("(%d/%d)/(%d/%d)=(%d/%d)\n",z1,n1,z2,n2,Z,N); printf("(%d/%d)/(%d/%d)=%.2f\n",z1,n1,z2,n2,(double)Z/(double)N); } } return 0; } } Und hier jetzt mein kläglicher Versuch das ganze mit Eclipse in Java zu gestalten: import java.io.IOException; public class Rechner { private int z1; private int z2; private int n1; private int n2; private int Z; private int N; private double ergebnis; private char c; public Rechner() throws IOException{ System.out.println("Wählen Sie eine Grundrechenart aus"); System.in.read(); System.out.println("z1="); System.in.read(); System.out.println("z2="); System.in.read(); System.out.println("n1="); System.in.read(); System.out.println("n2="); System.in.read(); } public void addiere() { if (n1 != 0 && n2 != 0) { Z = (z1 * n2 + z2 * n1); N = (n1 * n2); ergebnis = (Z / N); } } public void subtrahiere() { if (n1 != 0 && n2 != 0) { Z = (z1 * n2 - z2 * n1); N = (n1 * n2); ergebnis = (Z / N); } } public void multipliziere() { if (n1 != 0 && n2 != 0) { Z = (z1 * z2); N = (n1 * n2); ergebnis = (Z / N); } } public void dividiere() { if (n1 != 0 && n2 != 0) { Z = (z1 * n2); N = (n1 * z2); ergebnis = (Z / N); } } public static void main(String[] args) { new Rechner(); } } Meine Fragen: Ist das Ansatzweise richtig? Was brauch ich um die Ausgabe zu gestalten, also wie geht das und wo kommt die Ausgabe überhaupt hin? XD Bin für jede Hilfe dankbar...
flashpixx Geschrieben 25. Juni 2009 Geschrieben 25. Juni 2009 Ich bin jetzt mal faul und gebe Dir zwei Links von mir, wo wirklich so ein Problem exakt nachprogrammiert wurde: Einmal in Java Flashpixx.de und einmal in C Flashpixx.de Phil
freak13 Geschrieben 25. Juni 2009 Autor Geschrieben 25. Juni 2009 uiih da hab ich ja noch einiges vor mir! Ich sag dann nur mal dankeschön ^^
flashpixx Geschrieben 25. Juni 2009 Geschrieben 25. Juni 2009 Ich empfehle aber, dass Du es zunächst einmal selbst versuchst und eben bei Problemen Dir die Code anschaust. Es macht keinen Sinn meine Codes zu kopieren, denn wenn man Dich dann über die Codes quizzed wird man schnell herausfinden, ob Du es selbst gemacht hast oder eben nicht HTH Phil P.S.: Falls Fragen sind, einfach posten
freak13 Geschrieben 25. Juni 2009 Autor Geschrieben 25. Juni 2009 (bearbeitet) Keine Sorge, ich habe nicht vor die Quellcodes zu kopieren, es ist ja nicht so das man mir nur fragen dazu stellen könnte, deine Seite ist ja auch für jedermann sichtbar, von daher ist das Risiko noch größer....der C-Code wurde mir so auch schon abgenommen(auch wenn nicht so elegant wie deiner), aber in Java hapert es noch XD Ich komme gerne auf dein Angebot zurück, falls noch Fragen bestehen sollten. Dankeschön nochmal ^^ Bearbeitet 25. Juni 2009 von freak13
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden