Zum Inhalt springen

Aufgabe: Rechner


freak13

Empfohlene Beiträge

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von freak13
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...