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... Zitieren
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 Zitieren
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 ^^ Zitieren
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 Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.