www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Java" - Java
Java < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Java: Korrektur
Status: (Frage) beantwortet Status 
Datum: 21:47 So 18.05.2014
Autor: Benko

Aufgabe
Schreiben Sie eine Methode cos(double x, int n), die das Ergebnis der folgenden Summenformel auf der Konsole ausgibt:
[mm] cos(x)=\summe_{i=0}^{n}(-1)^{i}*\bruch{x^{2i}}{(2i)!} [/mm]

Die Zahlen x und n sollen beim Aufruf der Methode als Parameter übergeben und vorher von der Konsole abgefragt werden.

Hinweis: Das Potenzieren von Werten geschieht über die Methode pow der Kasse Math.

Zum Beispiel: double ergebnis=Math.pow(basis,exponent);

basis und exponent sind beides Variablen von Typ double.

Hallo, hier is mein Prg. (schöne Sonntagsbeschäftigung ^^)..
Leider funzt das nich richtig bei kompilieren.
Kann mir bitte jemand einleuchtend erklären, wo ich einen Fehler gemacht habe und warum?! Wäre super nice. VG


import java.util.Scanner;

public class [mm] A1_1{ public static void main (String []args){ Scanner scan=new Scanner (System.in); System.out.println("Geben Sie einen Wert für n ein:"); int n=scan.nextInt(); System.out.println("Geben Sie einen Wert für x ein:"); double x=scan.nextDouble(); double ergebnis= cos(x,n); System.out.println(ergebnis); } public static double cos(double x,int n){ //Endberechnung int n1=n; double ergebnis=0; for(int n ; 0>=n; n--){ double ergebnis1=rechnung1(x,n); double ergebnis2=rechnung2(x,n); double ergebnis3=rechnung3(x,n); ergebnis=ergebnis+ergebnis1*(ergebnis2/ergebnis3); } return ergebnis; } public static double rechnung1(double x, int n){ double ergebnis1=Math.pow(-1,n); return ergebnis1; } public static double rechnung2(double x, int n){ double ergebnis2=Math.pow(x,2*n); return ergebnis2; } public static double rechnung3(double x, int n){ double ergebnis3 = 1; if (n >= 1){ while (n > 0) { ergebnis3 = ergebnis3 * n; n--; } return ergebnis3; } else { ergebnis3=1; } return ergebnis3; } } [/mm]


        
Bezug
Java: Nochmal Korrektur
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 21:55 So 18.05.2014
Autor: Benko

In meinem ersten Post, wurde mein Prg. leider nicht richtig formatiert übernommen, hier das "korrekte" Prg.:




1: import java.util.Scanner;
2:
3: public class A1_1 {
4: public static void main(String[] args) {
5:
6: Scanner scan = new Scanner(System.in);
7:
8: System.out.println("Geben Sie einen Wert für n ein:");
9: int n = scan.nextInt();
10:
11: System.out.println("Geben Sie einen Wert für x ein:");
12: double x = scan.nextDouble();
13:
14: double ergebnis = cos(x, n);
15:
16: System.out.println(ergebnis);
17: }
18:
19: public static double cos(double x, int n) { // Endberechnung
20: int n1 = n;
21: double ergebnis = 0;
22: for (int n; 0 >= n; n--) {
23: double ergebnis1 = rechnung1(x, n);
24: double ergebnis2 = rechnung2(x, n);
25: double ergebnis3 = rechnung3(x, n);
26: ergebnis = ergebnis + ergebnis1 * (ergebnis2 / ergebnis3);
27: }
28:
29: return ergebnis;
30: }
31:
32: public static double rechnung1(double x, int n) {
33:
34: double ergebnis1 = Math.pow(-1, n);
35: return ergebnis1;
36:
37: }
38:
39: public static double rechnung2(double x, int n) {
40:
41: double ergebnis2 = Math.pow(x, 2 * n);
42: return ergebnis2;
43: }
44:
45: public static double rechnung3(double x, int n) {
46:
47: double ergebnis3 = 1;
48: if (n >= 1) {
49: while (n > 0) {
50:
51: ergebnis3 = ergebnis3 * n;
52: n--;
53:
54: }
55: return ergebnis3;
56: } else {
57: ergebnis3 = 1;
58:
59: }
60: return ergebnis3;
61:
62: }
63:
64: }



Bezug
                
Bezug
Java: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:00 So 18.05.2014
Autor: Benko

...das Prg. hat irgendwas an meiner for-schleife auszusetzen??

Bezug
        
Bezug
Java: for Schleife
Status: (Antwort) fertig Status 
Datum: 22:23 So 18.05.2014
Autor: riju

Hallo,

schreibe die for-Schleife mal wie folgt um:

double ergebnis = 0;
for (int i = n; 0 >= i; i--) {
double ergebnis1 = rechnung1(x, i);
double ergebnis2 = rechnung2(x, i);
double ergebnis3 = rechnung3(x, i);
ergebnis = ergebnis + ergebnis1 * (ergebnis2 / ergebnis3);
}



du darfst die Variable n nicht nochmal initialisieren. Verwende dafür einfache eine neuen Laufindex.
int n1=n kannst du löschen.
Jetzt müsste es eigentlichen funktionieren

Liebe Grüße
riju

Bezug
                
Bezug
Java: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:46 So 18.05.2014
Autor: Benko

Ich danke dir, Schusselfehler meinserseits ;)

Bezug
        
Bezug
Java: Antwort
Status: (Antwort) fertig Status 
Datum: 22:31 So 18.05.2014
Autor: DieAcht

Hallo Benko,


Dein Programm kann vielleicht so funktionieren, aber du sol-
test es auf jeden Fall überarbeiten. Es ist nicht Sinn und
Zweck einer Methode nur eine simple Methode der Klasse Math
zu benutzen. Schreibe eine Methode, die die Berechnung durch-
führt. Ganz am Ende kannst du dir als Bonus mal überlegen
wie du dir bei der Berechnung der Fakultät auch nochmal
enorm viel "ersparen" kannst.


Grüß
DieAcht

Bezug
        
Bezug
Java: [code][/code]
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:45 So 18.05.2014
Autor: Event_Horizon

Hallo!

Damit das Forum Quellcode nicht zerreißt, diesen einfach in [code][/code] einschließen. Hab ich oben mal gemacht, wenngleich dabei Tabs offensichtlich ignoriert werden. Aber das Forum versucht jedenfalls nicht, daraus Formeln zu machen.

Bezug
                
Bezug
Java: jetz gehts!
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:54 So 18.05.2014
Autor: Benko

Also ich arbeite mit Eclipse. Da gibts die Funktion "Format" in "Source" zu finden.. Als ich also mein Text autoformatiert hatte, gings auch mitm posten :)
import java.util.Scanner;

public class [mm] A1_1 [/mm] {
public static void main(String[] args) {

String antwortja = new String("ja");
String antwort;
Scanner scan = new Scanner(System.in);
do {

System.out.println("Geben Sie einen Wert für n ein:");
int n = scan.nextInt();

System.out.println("Geben Sie einen Wert für x ein:");
double x = scan.nextDouble();

double ergebnis = cos(x, n);

System.out.println(ergebnis);
antwort = scan.nextLine();
System.out.println("Nochmal die Summe errechnen? ja oder  nein?");
antwort = scan.nextLine();
} while (antwort.equals(antwortja));
}

public static double cos(double x, int n) { // Endberechnung

double ergebnis = 0;
while (0 <= n) {

double ergebnis1 = rechnung1(x, n);
double ergebnis2 = rechnung2(x, n);
double ergebnis3 = rechnung3(x, n);
ergebnis = ergebnis + ergebnis1 * (ergebnis2 / ergebnis3);
n--;
}
return ergebnis;
}

public static double rechnung1(double x, int n) {

double ergebnis1 = Math.pow(-1, n);
return ergebnis1;

}

public static double rechnung2(double x, int n) {

double ergebnis2 = Math.pow(x, 2 * n);
return ergebnis2;
}

public static double rechnung3(double x, int n) {
n = 2 * n;
double ergebnis3 = 1;
if (n >= 1) {
while (n > 0) {

ergebnis3 *= n;
n--;

}

} else {
ergebnis3 = 1;

}
System.out.println("ergebnis3    " + ergebnis3);
return ergebnis3;

}

}

Bezug
                        
Bezug
Java: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:01 Mo 19.05.2014
Autor: Event_Horizon

Hallo!
Das liegt aber nicht direkt an eclipse.

Wenn das Forum Teile einer Formel zu erkennen glaubt, versucht es, diese als solche darzustellen. Dazu gehört zum Beispiel der Unterstrich _. Du hast deine Funktion A1_1 genannt, und das Forum macht daraus [mm] A1_1 [/mm]  (übrigens immernoch).

Anfangs hattest du A1_1{ geschrieben, jetzt steht da A1_1 { , es gibt also jetzt ein Leerzeichen. Geschweifte Klammern fassen in LaTeX (und damit auch im Forum, wenn es meint, da sein ne Formel) genauso wie in C/Java Blöcke zusammen.
Das Forum erkennt das A1_1{ als Formel, und weil dahinter die Klammer kommt, alles bis zur zugehörigen schließenden Klammer auch. Mit dem Leerzeichen gehört die Klammer nicht mehr zur Formel.

Es mag in diesem Fall hier helfen, aber es gibt viele Zeichen, die beim Programmieren vorkommen, und das Forum verwirren können.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.mathebank.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]