Probleme bei kleinem Mathecode

Status
Nicht offen für weitere Antworten.

shino

Mitglied
Java:
/* Programmieren 1; Uebung 6; Aufgabe 2 */
class Rational {
	private int p;
	private int q;	
	public Rational(int p, int q) { 
		this.p = p;
		if (p == 0) { q = 0 ;}
		if (q < 0) { p *= -1; this.q = -q; }
			else {this.q = q;}
	}
	public Rational add(Rational rat) {
		return new Rational(this.p * rat.q + this.q * rat.p, this.q * rat.q);
	}
	public Rational multi(Rational rat) {
		return new Rational(this.p * rat.p, this.q * rat.q);
	}
	public int getNum() {
		return p;
	}
	public int getDenum() {
		return p;
	}
	public double getRatDouble() {
		return (double) p / (double) q;
	}
}
public class Mathe {
	public static void main (String[] args) {
	
	// Implementieren der Potenz 
		public static int pow(int x,int y)
		{

 			int potenz = 1;

			for (int i=0; i<y; j++) {potenz = potenz*x;}

			return potenz;

		}
	
	// Implementieren der Fakultät 
		public long factorial (int b) 
		{
			long n = (long) b; 
			long fakultaet;
			for (int i=1; i<=n; i++) { fakultaet = fakultaet*i;}
			return fakultaet;
		}
		
	// Implementieren des Sinus
		public static int sin(int x)
		{
			int genauigkeit = 1e-10;
			int n = 1;
			while ( pow(x,n)/factorial(n) > genauigkeit ) { sinus = pow(x,n)/factorial(n); n++; }
			return sinus;
		}
		
	// Berechnungen 
	if (args.length = 1) {System.out.println("Zu wenig oder zu viele Argumente, bitte Eingabe ueberpruefen.");}
	
	int num = Integer.parseInt(args[0]);
	int denum = Integer.parseInt(args[1]);
	int fak = Integer.parseInt(args[2]);
	
	Rational r =  new Rational(num,denum);
	double r2 = r.getRatDouble();
	int r3 = r2;
	int out1=pow(r3,fak);
	int out2=factorial(fak);
	int out3=sin(r3);
	System.out.println("Potenz: " + out1);
	System.out.println("Fakultaet: " + out2);
	System.out.println("Sinus: " + out3);
	}	
}

hallo zusammen,

ich hab diesen code gebastelt. ich muss ne aufgabe bearbeiten, bei der man keine methoden aus der java api brauchen kann.
ich muss zwei zahlen (a, b) einlesen, wobei a eine rationale zahl sein soll. schlussendlich soll es die potenz von a^b, die fakultät von b und den sinus von a ausgeben.

wenn ich den code nun kompiliere, gibt er mir die fehlermeldungen:
Code:
----------
1. ERROR in Mathe.java (at line 31)
	public static int pow(int x,int y)
	                     ^
Syntax error on token "(", ; expected
----------
2. ERROR in Mathe.java (at line 31)
	public static int pow(int x,int y)
	                           ^
Syntax error on token ",", ; expected
----------
3. ERROR in Mathe.java (at line 31)
	public static int pow(int x,int y)
	                                 ^
Syntax error on token ")", delete this token
----------
4. ERROR in Mathe.java (at line 39)
	public long factorial (int b) 
	                      ^
Syntax error on token "(", ; expected
----------
5. ERROR in Mathe.java (at line 39)
	public long factorial (int b) 
	                            ^
Syntax error on token ")", ; expected
----------
6. ERROR in Mathe.java (at line 48)
	public static int sin(int x)
	                     ^
Syntax error on token "(", ; expected
----------
7. ERROR in Mathe.java (at line 48)
	public static int sin(int x)
	                           ^
Syntax error on token ")", ; expected
----------
7 problems (7 errors)

die fehlermeldungen sagen mir alle ich soll an diesen 7 stellen ein semikolon einfügen. aber wenn ich das tue, geht mein code doch kaputt am ende?

kann mir jemand helfen?
 

eRaaaa

Top Contributor
du schreibst methoden in methoden (hier im falle: in die main methode ?!?!)

Java:
 public static void main (String[] args) {  //<-- MAIN
    
    // Implementieren der Potenz 
        public static int pow(int x,int y)   // <-- neue methode ?!?!?!
        {
 
            int potenz = 1;
 
            for (int i=0; i<y; j++) {potenz = potenz*x;}
 
            return potenz;
 
        }

in dem beispiel, sollte allerdings desweiteren noch ein fehler kommen, denn (wenn ich mich nicht verguckt habe), kennt er j ja garnicht.
 

shino

Mitglied
achso :) na dann wird einiges klarer ;) danke für die superschnelle antwort, vielleicht krieg ich das ja nun heut noch hin :D
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben