also das Thema mit den 10$ hat sich erledigt.. es hat sich diesbezüglich keiner gemeldet und wir haben die Lösung jetzt zusammen im Tutorium gemacht.
Der Haken ist nur, dass unsere Dozentin alle Quellcodes durch ein Prgramm namens Jpleg jagt, um so Plagiate herauszufinden. Zu meiner ehrenrettung muss ich sagen, dass ich es versucht habe, allerdings im Tutorium gemerkt habe, dass ich auf dem falschen Weg war. Und das waren ALLE. Keiner von uns hätte diese Aufgabe lösen können. wir waren zu 8. und nicht nur die die eh nix checken sondern schon mit die besten im Kurs. Nunja jetzt habe ich das Programm hier,m allerdings muss ich es so umformen, dass das Programm keine Strukturgleichheit feststellt. Es bringt nix die Variablem umzubennen oder Zeilen zu vertauschen, das Programm achtet einzig und alleine auf die Struktur. Kann mir vielleicht jemand helfen wie ich cie Struktur verändern kann???
Hier meine Lösung:
import java.util.Scanner;
public class RationaleZahl{
private int zaehler;
private int nenner;
Scanner sc = new Scanner (System.in);
public RationaleZahl(){
zaehler=0;
nenner =1;
}
public RationaleZahl(int zaehler, int nenner)
{this.zaehler=zaehler;
this.nenner=nenner;
}
public int getZaehler() {
return zaehler;
}
public void setZaehler(int zaehler) {
this.zaehler = zaehler;
}
public int getNenner() {
return nenner;
}
public void setNenner(int nenner) {
this.nenner = nenner;
}
public RationaleZahl addiere (RationaleZahl z){
int x;
x= zaehler*z.getNenner()+nenner*z.getZaehler();
int y;
y= nenner*z.getNenner();
return new RationaleZahl (x,y);
}
public RationaleZahl subtrahieren (RationaleZahl z){
int x;
x= zaehler*z.getNenner()-nenner*z.getZaehler();
int y;
y= nenner*z.getNenner();
return new RationaleZahl (x,y);
}
public RationaleZahl multiplizieren (RationaleZahl z){
int x;
x= zaehler*z.getZaehler();
int y;
y= nenner*z.getNenner();
return new RationaleZahl (x,y);
}
public RationaleZahl dividieren (RationaleZahl z){
int x;
x= zaehler*z.getNenner();
int y;
y= nenner*z.getZaehler();
return new RationaleZahl (x,y);
}
public String ausgeben (){
return zaehler + " / "+ nenner;
}
public void kuerzen() {
int i,
n= Math.abs(nenner),
z= Math.abs(zaehler);
while (z > 0){
if( z < n ){
i= n;
n= z;
z= i;
}
z= z - n;
}
nenner= nenner / n;
zaehler= zaehler / n;
}
}
UND
import java.util.ArrayList;
import java.util.Scanner;
public class Start {
static Scanner sc = new Scanner(System.in);
public static void main (String []args){
ArrayList <String> ergebnisse =new ArrayList<String>();
String condition;
do{
System.out.print("Bitte geben Sie nun einen Bruch ein: ");
RationaleZahl rz1 = einleseBruch();
System.out.print("Bitte geben Sie nun den Operator an: ");
String op = einlesenOp();
System.out.print("Bitte geben Sie erneut einen Bruch ein: ");
RationaleZahl rz2 = einleseBruch();
RationaleZahl rzE = null;
switch (op){
case "+": rzE = rz1.addiere(rz2);break;
case "-": rzE = rz1.subtrahieren(rz2);break;
case "*": rzE = rz1.multiplizieren(rz2);break;
case "/": rzE = rz1.dividieren(rz2);break;
}
rzE.kuerzen();
System.out.println(rz1.ausgeben()+" "+op+" "+rz2.ausgeben()+" = "+rzE.ausgeben());
ergebnisse.add(rz1.ausgeben()+" "+op+" "+rz2.ausgeben()+" = "+rzE.ausgeben());
System.out.print("erneute Berechnung? (j/n): ");
condition = sc.next();
}while (!condition.equalsIgnoreCase("n"));
System.out.println();
System.out.println("~~~~~~~~~~~~~~~~");
System.out.println("Berechnet wurden: ");
for (String out : ergebnisse) {
System.out.println(out);
}
System.out.println();
System.out.println("Auf Wiedersehen!");
}
public static RationaleZahl einleseBruch(){
Scanner sc = new Scanner(System.in);
String eingabe=sc.nextLine();;
String[] bla = eingabe.split("/");
bla[0]=bla[0].trim();//selbe für bla 1
bla[1]=bla[1].trim();
return new RationaleZahl(Integer.valueOf(bla[0]),Integer.valueOf(bla[1]));
}
public static String einlesenOp(){
Scanner sc = new Scanner (System.in);
return sc.nextLine();
}
}
Bitte helft mir das Programm umzustrukturieren. Hab das selber noch nich ganz gecheckt deshalbe tue ich mir da schwer :/