Wie kann ich meine Methode aufrufen?

Bitte aktiviere JavaScript!
Ich habe einfach Deine Formel t(x) genommen und an den entsprechenden Stellen die Werte berechnet.

Muss man so einen großen Umweg machen,nur um "x" als Platzhalter zu bekommen?
Das kommt darauf an. Wenn Du eine Formel (= Zeichenkette) ausgeben willst, dann besteht der String aus verschiedenen Teilen und die musst Du halt entsprechend formatieren. Es ginge wahrscheinlich auch schöner, aber da habe ich gerade keinen Nerv dazu :)

Etwas anderes ist es, wenn Du einfach nur den berechneten Wert haben willst.
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Ich habe einfach Deine Formel t(x) genommen und an den entsprechenden Stellen die Werte berechnet.


Das kommt darauf an. Wenn Du eine Formel (= Zeichenkette) ausgeben willst, dann besteht der String aus verschiedenen Teilen und die musst Du halt entsprechend formatieren. Es ginge wahrscheinlich auch schöner, aber da habe ich gerade keinen Nerv dazu :)

Etwas anderes ist es, wenn Du einfach nur den berechneten Wert haben willst.
Ich will nur das am Ende, sowas steht wie z.b 4x-4. Kann man das bewerkstelligen, ohne alles umschreiben zu müssen?
 
So?
Java:
import java.util.Scanner; // t(x) = f'(x_0)*(x-x_0)+f(x_0) = f'(x_0)*x-f'(x_0)*x_0+f(x_0)

public class Tangente {
    public static void main(String[]args) {
        Scanner x = new Scanner(System.in);
        System.out.println("Bitte geben Sie die Stelle ein.");
        int x_0 = x.nextInt();
        System.out.println("Geben Sie die Koeffizienten ein.");   
        int a = x.nextInt();
        int b = x.nextInt();
        int c = x.nextInt();
        System.out.println("Die Tangente an der Stelle "+x_0+" lautet: "+
                TangenteR(AbleitungS(x_0, a, b), Funktionswert(a, b, c, x_0), x_0));
    }
    
    public static int AbleitungX(int a) {
        int Ableitung = a*2;
        return Ableitung; 
    }
    
    public static int AbleitungX2(int b) {
        int Ableitung2 = b;
        return Ableitung2;
    }
    
    public static int AbleitungS(int x_0,int a, int b) {  
        int AbleitungS = AbleitungX(a)*x_0+AbleitungX2(b);       
        return AbleitungS;    
    }
    
    public static int Funktionswert(int a,int b,int c, int x_0) {    
        int Funktionswert = a*x_0*x_0+b*x_0+c;       
        return Funktionswert;   
    }
    
    public static String TangenteR(int AbleitungS, int Funktionswert, int x_0) {
        int rest = -AbleitungS*x_0+Funktionswert;
        String operator = rest < 0 ? "-" : "+";
        return AbleitungS +"*x"+operator+Math.abs(rest);
    }
}
 
So?
Java:
import java.util.Scanner; // t(x) = f'(x_0)*(x-x_0)+f(x_0) = f'(x_0)*x-f'(x_0)*x_0+f(x_0)

public class Tangente {
    public static void main(String[]args) {
        Scanner x = new Scanner(System.in);
        System.out.println("Bitte geben Sie die Stelle ein.");
        int x_0 = x.nextInt();
        System.out.println("Geben Sie die Koeffizienten ein.");  
        int a = x.nextInt();
        int b = x.nextInt();
        int c = x.nextInt();
        System.out.println("Die Tangente an der Stelle "+x_0+" lautet: "+
                TangenteR(AbleitungS(x_0, a, b), Funktionswert(a, b, c, x_0), x_0));
    }
   
    public static int AbleitungX(int a) {
        int Ableitung = a*2;
        return Ableitung;
    }
   
    public static int AbleitungX2(int b) {
        int Ableitung2 = b;
        return Ableitung2;
    }
   
    public static int AbleitungS(int x_0,int a, int b) { 
        int AbleitungS = AbleitungX(a)*x_0+AbleitungX2(b);      
        return AbleitungS;   
    }
   
    public static int Funktionswert(int a,int b,int c, int x_0) {   
        int Funktionswert = a*x_0*x_0+b*x_0+c;      
        return Funktionswert;  
    }
   
    public static String TangenteR(int AbleitungS, int Funktionswert, int x_0) {
        int rest = -AbleitungS*x_0+Funktionswert;
        String operator = rest < 0 ? "-" : "+";
        return AbleitungS +"*x"+operator+Math.abs(rest);
    }
}
Ja genau. Ich kann aber die Modifizierung nicht verstehen. Was hast du verändert?
 
In erster Linie TangenteR, die jetzt eine Zeichenkette zurückgibt. Das "x" im Parameter braucht es nicht, da es ja nicht als Wert übergeben wird sondern tatsächlich nur als "x" in der Zeichenkette auftritt.

Dann natürlich den Aufruf von TangenteR in main angepasst. Und noch einen kleinen Fehler in Funktionswert behoben (es soll ja x_0*x_0 und nicht x_0+x_0 berechnet werden).

That's it.
 
In erster Linie TangenteR, die jetzt eine Zeichenkette zurückgibt. Das "x" im Parameter braucht es nicht, da es ja nicht als Wert übergeben wird sondern tatsächlich nur als "x" in der Zeichenkette auftritt.

Dann natürlich den Aufruf von TangenteR in main angepasst. Und noch einen kleinen Fehler in Funktionswert behoben (es soll ja x_0*x_0 und nicht x_0+x_0 berechnet werden).

That's it.
Danke, diesen Fehler hatte ich überhaupt nicht bemerkt. Genau, die letzte Methode. Was genau müsste ich bei mir ändern?
 
Die Methode baut eine Zeichenkette zusammen anstatt den Wert vollständig auszurechnen. Das ist alles.

Du hast ja gerechnet:
Java:
int Tangente = AbleitungS*x-AbleitungS*x_0+Funktionswert;
Und wolltest aber alles außer das "x" ausgerechnet haben und dann eine Zeichenkette, die das x an den entsprechenden Stelle entält, zurückhaben.

Der Code
Java:
return AbleitungS + " * x"
Würde eine Zeichenkette liefern, die mit dem Inhalt der Variablen AbleitungS (eine Zahl beginnt) und dann " * x" (ohne Anführungszeichen) anfügt.

Beim Anfügen des rechten Teils muss man aber aufpassen, denn Du willst ja nicht das Vorzeichen ausgeben, sondern die Rechenoperation. Daher der "operator". Du kannst ja selbst mal ein wenig mit den Zeichenketten rumprobieren.
 
Die Methode baut eine Zeichenkette zusammen anstatt den Wert vollständig auszurechnen. Das ist alles.

Du hast ja gerechnet:
Java:
int Tangente = AbleitungS*x-AbleitungS*x_0+Funktionswert;
Und wolltest aber alles außer das "x" ausgerechnet haben und dann eine Zeichenkette, die das x an den entsprechenden Stelle entält, zurückhaben.

Der Code
Java:
return AbleitungS + " * x"
Würde eine Zeichenkette liefern, die mit dem Inhalt der Variablen AbleitungS (eine Zahl beginnt) und dann " * x" (ohne Anführungszeichen) anfügt.

Beim Anfügen des rechten Teils muss man aber aufpassen, denn Du willst ja nicht das Vorzeichen ausgeben, sondern die Rechenoperation. Daher der "operator". Du kannst ja selbst mal ein wenig mit den Zeichenketten rumprobieren.
Ich werde ein bisschen experimentieren. Vielen Dank für die Hilfe.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben