Kosinussatz-Rechner

Jats

Aktives Mitglied
Hallo Community :)

Ich habe mich heute mal hingesetzt und einfach mal drauflosprobiert ein Programm zu schreiben, das den Kosinussatz berechnen kann.

Ich hab noch nicht viel Ahnung davon, also bitte nicht hauen .
Hier sind mal meine Ansäte:

Java:
Import java.util.Scanner;

public class 3{

public static void main(String [] args){

System.out.println("Hallo Benutzer !");
System.out.println("Bitte geben sie ein, welcher Wert gesucht wird";
System.out.println(" und bestaetigen sie mit Enter ! (1 = a^2, 2 = b^2 und 3 = c^2) ");

    Scanner G = new Scanner(System.in);
    double gesucht = G.nextDouble();

System.out.println("Legen sie einen Wert fuer a fest:");
    Scanner A = new Scanner(System.in);
    double a = A.nextDouble();

System.out.println("Legen sie einen Wert fuer b fest:");

    Scanner B = new Scanner(System.in);
    double b = B.nextDouble();          //double radius = sc.nextDouble();

System.out.println("Legen sie einen Wert fuer c fest:");
    
    Scanner C = new Scanner(System.in);
    double c = C.nextDouble();

System.out.println("Legen sie einen Wert fuer Alpha fest:");

    Scanner D = new Scanner(System.in);
    int alpha = D.nextInt();

System.out.println("Legen sie einen Wert fuer Beta fest:");

    Scanner E = new Scanner(System.in);
    int beta = E.nextInt();

System.out.println("Legen sie einen Wert fuer Gamma fest:");

    Scanner F = newScanner(System.in);
    int gamma = F.nextInt();


double ergebnis1 = Math.pow(a,2)+Math.pow(b,2)-2*a*b*Math.cos(gamma);
double ergebnis2 = Math.pow(a,2)+Math.pow(c,2)-2*a*c*Math.cos(beta);
double ergebnis3 = Math.pow(b,2)+Math.pow(c,2)-2*b*c*Math.cos(alpha);


System.out.println("Der Cosinus-Satz mit ihren Variablen lautet:");

    if( gesucht == 3 )

{    
    
    System.out.println("c^2 = " + ergebnis1);

}

    else 

{

    System.out.println("b^2 = " + ergebnis2);
    System.out.println("b^2 = " + ergebnis3);

}


}

}

}

Was mir von Anfang an klar war, war, dass ich die Ausgabe am Ende nicht mit if machen kann, weil ich ja 3 Möglichkeiten habe und wenn eine nicht zutrifft, mit else ja nur nihct die richtige erkannt werden kann, sondern ich entweder beide oder gar keine Ausgeben müsste.

Ich hab es zumindest mal geschafft, die Datei von 27 auf 6 Fehler zu verbessern, aber jetzt komm ich grad nicht weiter und wüsste auch ganz gerne mal, zu was das führt ^^

Wäre nett, wenn da mal jemand drübergucken könnte :D

Hier mal die Fehler:

1ei0f.png
 
G

Gast2

Gast
Java:
public class 3 {
So darfst du deine Klasse nicht nennen.
Mach daraus z.b. Drei. Außerdem schreibt man variablen klein.
 

Jats

Aktives Mitglied
Java:
public class 3 {
So darfst du deine Klasse nicht nennen.
Mach daraus z.b. Drei. Außerdem schreibt man variablen klein.

Aah, okay :)
Ich hatte die Variablen erst klein, dann dachte ich "Fuck, die Dinger werden die ganze Zeit als Fehler markiert .. ob ich als Variable keine Zahlen nehmen darf ? Nehm ich mal die Buchstaben in Groß ^^".
Gut, danke, dann probier ich das mal aus :D

EDIT: Außerdem sollte man den import-Befehl klein schreiben und die Leertaste in Zeile 42 zwischen "new" und "Scanner" muss weg.
 
Zuletzt bearbeitet:

Jats

Aktives Mitglied
Gut, das Programm läuft soweit, aber ich habe ein "kleines" Problem ^^

Und zwar akzeptiert der Scanner es natürlich nicht, wenn der User bei einer unbekannten Variable nichts eingibt.
Wie bekomme ich das anders hin, sodass der merkt, wenn bei z.B. c nichts eingegeben wird, dass er auch dann automatisch den richtigen Kosinus-Satz nimmt ?
Muss ich dafür noch ein paar weitere classes schreiben, auf die dann, je nach Bedingung zurückgegriffen wird ?

*Entschuldigt bitte den Doppelpost*
 

JadeNinja

Mitglied
Du kannst das am ende mit den 3 fällen mit einem switch machen.
schau dir das einfach mal an:
Java:
switch (gesucht) { 
	case 1:
		System.out.println("c^2 = " + ergebnis1);
                break;
			
	case 2:
		System.out.println("b^2 = " + ergebnis2);
                break;
			
	case 3:
		System.out.println("b^2 = " + ergebnis3);
                break;
							
	default:
		System.out.println("Invalid Argument");
			}
Funktioniert eigentlich ja ganz einfach. Probiers mal aus =)
 

Jats

Aktives Mitglied
K, das Prinzip ist gut, aber wenn ich jetzt erreichen will, dass das Programm automatisch dadurch, welche Variable nicht eingegeben wurde erkennt, welchen Cos-Satz es benutzen soll, wie mache ich das ?
Muss ich dann den letzten Teil mit dem switchen benutzen oder wieder mit if arbeiten ?
Kann ich das Problem lösen, indem ich hinter jede Variable, die mit einem Scanner-Befehl versehen wurde mit if eine Bedingung schreibe, sodass er dann weiß, ob und wie er weiter machen soll ?
Würde das funktionieren ?

EDIT: Hab mal was ausprobiert..

Java:
import java.util.Scanner;

public class Drei{

public static void main(String [] args){

System.out.println("Hallo Benutzer !");
System.out.println("Bitte geben sie ein, welcher Wert gesucht wird");
System.out.println(" und bestaetigen sie mit Enter !");

    Scanner ge = new Scanner(System.in);
    int gesucht = ge.nextInt();

if( ge == 1 )

{

System.out.println("Legen sie einen Wert fuer a fest:");
    Scanner aa = new Scanner(System.in);
    double a = aa.nextDouble();

System.out.println("Legen sie einen Wert fuer b fest:");

    Scanner bb = new Scanner(System.in);
    double b = bb.nextDouble();          

//System.out.println("Legen sie einen Wert fuer c fest:");
    
    Scanner cc = new Scanner(System.in);
    double c = cc.nextDouble();

//System.out.println("Legen sie einen Wert fuer Alpha fest:");

    Scanner dd = new Scanner(System.in);
    double alpha = dd.nextDouble();

//System.out.println("Legen sie einen Wert fuer Beta fest:");

    Scanner ee = new Scanner(System.in);
    double beta = ee.nextDouble();

System.out.println("Legen sie einen Wert fuer Gamma fest:");

    Scanner ff = new Scanner(System.in);
    double gamma = ff.nextDouble();

double ergebnis1 = Math.pow(a,2)+Math.pow(b,2)-2*a*b*Math.cos(gamma);
double ergebnis2 = Math.pow(a,2)+Math.pow(c,2)-2*a*c*Math.cos(beta);
double ergebnis3 = Math.pow(b,2)+Math.pow(c,2)-2*b*c*Math.cos(alpha);

System.out.println("Der Cosinus-Satz mit ihren Variablen lautet:");
System.out.println("c^2 = " + ergebnis1);
   
}


else

{


System.out.println("Bitte geben sie zur Ueberpruefung 2 fuer b^2 oder 3 fuer a^2 ein !");
Scanner shit = new Scanner(System.in);
int shit1 = shit.nextInt();

}

if( shit1 == 2 )

{

System.out.println("Legen sie einen Wert fuer a fest:");
    Scanner aa = new Scanner(System.in);
    double a = aa.nextDouble();

//System.out.println("Legen sie einen Wert fuer b fest:");

    Scanner bb = new Scanner(System.in);
    double b = bb.nextDouble();          

System.out.println("Legen sie einen Wert fuer c fest:");
    
    Scanner cc = new Scanner(System.in);
    double c = cc.nextDouble();

//System.out.println("Legen sie einen Wert fuer Alpha fest:");

    Scanner dd = new Scanner(System.in);
    double alpha = dd.nextDouble();

System.out.println("Legen sie einen Wert fuer Beta fest:");

    Scanner ee = new Scanner(System.in);
    double beta = ee.nextDouble();

//System.out.println("Legen sie einen Wert fuer Gamma fest:");

    Scanner ff = new Scanner(System.in);
    double gamma = ff.nextDouble();
        
System.out.println("Der Cosinus-Satz mit ihren Variablen lautet:");
System.out.println("b^2 = " + ergebnis2);

}

else 

{

//System.out.println("Legen sie einen Wert fuer a fest:");
    Scanner aa = new Scanner(System.in);
    double a = aa.nextDouble();

System.out.println("Legen sie einen Wert fuer b fest:");

    Scanner bb = new Scanner(System.in);
    double b = bb.nextDouble();          

System.out.println("Legen sie einen Wert fuer c fest:");
    
    Scanner cc = new Scanner(System.in);
    double c = cc.nextDouble();

System.out.println("Legen sie einen Wert fuer Alpha fest:");

    Scanner dd = new Scanner(System.in);
    double alpha = dd.nextDouble();

//System.out.println("Legen sie einen Wert fuer Beta fest:");

    Scanner ee = new Scanner(System.in);
    double beta = ee.nextDouble();

//System.out.println("Legen sie einen Wert fuer Gamma fest:");

    Scanner ff = new Scanner(System.in);
    double gamma = ff.nextDouble();
        
System.out.println("Der Cosinus-Satz mit ihren Variablen lautet:");
System.out.println("a^2 = " + ergebnis3);

}


}

}

Die Fehler sehen wie folgt aus:

2tg7o.png
 
Zuletzt bearbeitet:

Landei

Top Contributor
Du kann doch immer vorher den Nutzer fragen, ob ein Wert bekannt ist...
"Ist a bekannt (j/n)?"
... und nur bei Antwort j den Wert a abfragt.

Am elegantesten wäre wahrscheinlich eine Swing-Oberfläche mit sechs Textfeldern (a,b,c und Winkel) und einem Berechne-Button, der die leeren Felder anhand der vollen Felder auszufüllen versucht.

Nebenbei: Mit dem Kosinussatz kann man auch alle drei Winkel ausrechnen, wenn man die drei Seiten kennt.
 

Jats

Aktives Mitglied
Du kann doch immer vorher den Nutzer fragen, ob ein Wert bekannt ist...
"Ist a bekannt (j/n)?"
... und nur bei Antwort j den Wert a abfragt.

Stimmt .. das kann ich machen .. aber wäre halt mit noch mehr Eingaben verbunden .

"Am elegantesten wäre wahrscheinlich eine Swing-Oberfläche mit sechs Textfeldern (a,b,c und Winkel) und einem Berechne-Button, der die leeren Felder anhand der vollen Felder auszufüllen versucht."

Stimme ich zu, wobei ich noch nicht weiß, wie ich grafische Benutzeroberflächen erstelle.
Denkst du, das wäre einigermaßen machbar, oder sollte ich doch lieber weiter mit dem cmd rumprobieren ?

Nebenbei: Mit dem Kosinussatz kann man auch alle drei Winkel ausrechnen, wenn man die drei Seiten kennt.

Ich weiß, aber ich mache das Teil für den Physikunterricht, wo wir im Moment mit Vektoren rechnen.
Da sehen die Ausgaben bei uns so aus, dass wir eben nicht immer jeden Winkel kennen.
Und ich habe um ehrlich zu sein auch keine Lust, eine nach Alpha, Beta oder Gamma umgeformte Formel des Kosinussatzes da mit einzubauen :D

Aber das mit dem swing interessiert mich .. denkst du, dass ich das realisieren kann ?
 

Jats

Aktives Mitglied
Alles klar, ich hab hinbekommen :)
Danke an alle, wart echt ne klasse Hilfe !

Für allle, die noch Probleme damit haben sollten ..
Java:
import java.util.Scanner;						

public class CSC 							

{

public static void main(String [] args)

{

System.out.println("Hallo Benutzer !");
System.out.println("Bitte geben sie ein, welcher Wert gesucht wird");
System.out.println("und bestaetigen sie mit Enter !");
System.out.println("1 fuer c, 2 fuer b, 3 fuer a");
Scanner ge = new Scanner(System.in);
int gesucht = ge.nextInt();

if(gesucht == 1)

{

System.out.println("Legen sie einen Wert fuer a fest:");
	Scanner aa = new Scanner(System.in);
	double a = aa.nextDouble();

System.out.println("Legen sie einen Wert fuer b fest:");

	Scanner bb = new Scanner(System.in);
	double b = bb.nextDouble();  		

System.out.println("Legen sie einen Wert fuer Gamma fest:");

	Scanner ff = new Scanner(System.in);
	double gamma = ff.nextDouble();
        
System.out.println("Der Cosinus-Satz mit ihren Variablen lautet:");
double ergebnis1 = Math.pow(a,2)+Math.pow(b,2)-2*a*b*Math.cos(gamma);
double ergebnisc = Math.sqrt(ergebnis1);
System.out.println(ergebnisc + "cm");

}

und dann immer so weiter, bis ihr alle eure Bedingungen deklariert habt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Kosinussatz liefert falschs Ergebnis Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
T BMI Rechner fehlerhaft Java Basics - Anfänger-Themen 18
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
Alan6 Java Editor BMI Rechner Java Basics - Anfänger-Themen 7
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
M Rechner programmieren Java Basics - Anfänger-Themen 3
Z BMI-Rechner Java Basics - Anfänger-Themen 1
F Trinkgeld Rechner und Promillenrechener Hilfe Java Basics - Anfänger-Themen 3
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
S Erste Schritte Java GUI - Rechner erstellen Java Basics - Anfänger-Themen 4
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
J double_Problem im ZinsesZins Rechner Java Basics - Anfänger-Themen 33
K (Taschen)Rechner Java Basics - Anfänger-Themen 8
M Abitur-Noten-Rechner Java Basics - Anfänger-Themen 2
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
thet1983 rechner anfaengerfehler? Java Basics - Anfänger-Themen 10
B BMI Rechner Java Basics - Anfänger-Themen 2
H DriveByZero Exception - BMI-Rechner Java Basics - Anfänger-Themen 12
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
C Rechner Java Basics - Anfänger-Themen 19
B Verbindung zu einen anderen Rechner Java Basics - Anfänger-Themen 2
N Datenaustausch zweier rechner Java Basics - Anfänger-Themen 4
M BMI-Rechner NumberFormatException Java Basics - Anfänger-Themen 30
Haave Postfix-Rechner: mehrere math. Operationen nacheinander ausführen Java Basics - Anfänger-Themen 8
C Bmi rechner programmieren Java Basics - Anfänger-Themen 72
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
P Einfacher Rechner Java Basics - Anfänger-Themen 2
P UPN Rechner Java Basics - Anfänger-Themen 1
F Upn-Rechner Java Basics - Anfänger-Themen 15
B mit Wecker den Rechner aus Standby/Ruhemodus holen Java Basics - Anfänger-Themen 19
R Jar Datei läuft auf neuem Rechner nicht mehr Java Basics - Anfänger-Themen 15
Developer_X Applet auf lokalem Rechner mit der EingabeAufforderung Starten Java Basics - Anfänger-Themen 44
S Was ist falsch an meinem Rechner? Java Basics - Anfänger-Themen 7
M externes Programm auf anderen Rechner ausführen lassen Java Basics - Anfänger-Themen 2
kulturfenster Wie implementiert man einen Rechner in Java? Java Basics - Anfänger-Themen 5
kulturfenster Rechner und ActionListener Java Basics - Anfänger-Themen 11
C DM -> Euro Rechner aber nur mit Operanden des Typs intege Java Basics - Anfänger-Themen 12
G Java Rechner Java Basics - Anfänger-Themen 10
G frage bluej für bmi rechner programmieren Java Basics - Anfänger-Themen 5
T Rechner-Name abfragen Java Basics - Anfänger-Themen 6
C Problem mit dem Rechner Java Basics - Anfänger-Themen 4
G Rechner aus ! Java Basics - Anfänger-Themen 5
M Exel-Rechner in Java ausgeben Java Basics - Anfänger-Themen 13
N Java Rechner Java Basics - Anfänger-Themen 3
D Java Rechner und Einlesen Problem (mit hasNext) Java Basics - Anfänger-Themen 2
W Rechner von quadratzahlen ! fehler Java Basics - Anfänger-Themen 4
P Rechner ^^ Java Basics - Anfänger-Themen 10
K BMI Rechner - wo ist der Fehler? Java Basics - Anfänger-Themen 4
D Rechner programmieren Java Basics - Anfänger-Themen 5
P Mediacenter Userinterface auf langsamem Rechner Java Basics - Anfänger-Themen 5
M Windows Projekt auf Linux Rechner Java Basics - Anfänger-Themen 2
B komische NumberFormatException beim DezimalToBinär-Rechner Java Basics - Anfänger-Themen 4
lan2711 Class Dateien auf anderen Rechner zum Laufen kriegen. Java Basics - Anfänger-Themen 5
P Program funktioniert nur bei Rechner die jdk haben Java Basics - Anfänger-Themen 4
rambozola jar-datei von cd auf rechner ohne jvm starten Java Basics - Anfänger-Themen 2
N SSH-Verbindung zu entferntem Rechner aufbauen Java Basics - Anfänger-Themen 5
L Class-Datei auf anderem Rechner Java Basics - Anfänger-Themen 9
H JDK 1.4.2 UND 1.1.8 auf gleichem Rechner Java Basics - Anfänger-Themen 15
X Programmstart auf anderem Rechner... Java Basics - Anfänger-Themen 15
C Java soll Datei auf rechner Finden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben