# Probleme bei kleinem Mathecode



## shino (30. Okt 2009)

```
/* 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: 

```
----------
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 (30. Okt 2009)

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


```
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 (31. Okt 2009)

achso  na dann wird einiges klarer  danke für die superschnelle antwort, vielleicht krieg ich das ja nun heut noch hin


----------

