Hilfe bei Programmierung (Allgemeines)

Simon H., Fri, 28.11.2008, 20:36 (vor 5600 Tagen)

mein Problem ist, dass meine if else anweisung nicht läuft und miR immer wieder der Fehler angegeben wird: "else without if". Ich nehme dabei Bezug auf meine else Anweisung ganz am Ende. Hab irgendwie schon alles ausprobiert aber es funktioniert nicht. Eine kleine Hilfe würde MIR sehr Helfen :)

import java.io.*;
public class Heberle {
public static void main(String[] args)
throws IOException {
BufferedReader konsein = new BufferedReader(
new InputStreamReader(System.in));
float B,H,t,d,b,h;
double D,A,e1,e2;

System.out.println
("nQuerschnittswerte unsymmetrischer Balkenquerschnittn");
System.out.println
("---------------------------------------------------n");


// Einlesen der Größen B,H,t,d,
System.out.print("Bitte geben Sie die Groesse B in m ein ... ");
B = Float.parseFloat(konsein.readLine());
System.out.print("Bitte geben Sie die Groesse H in m ein ... ");
H = Float.parseFloat(konsein.readLine());
System.out.print("Bitte geben Sie die Groesse d in m ein ... ");
d = Float.parseFloat(konsein.readLine());
System.out.print("Bitte geben Sie die Groesse t in m ein ... ");
t = Float.parseFloat(konsein.readLine());

//Berechnung ob t bzw d kleiner B bzw H ist, wenn nicht Fehleranzeige
D = t;
if (D>H)
{System.out.println("Achtung!! t muss kleiner sein als H!");
System.exit(0);}
D = t;
if (D>B)
{System.out.println("Achtung!! t muss kleiner sein als B!");
System.exit(0);}
D = d;
if (D>H)
{System.out.println("Achtung!! d muss kleiner sein als H!");
System.exit(0);}
D = d;
if (D>B)
{System.out.println("Achtung!! d muss kleiner sein als B!");
System.exit(0);}

// Berechnung der Fläche
b=B-d;
A=d*H+b*t;
{System.out.println("nDie Flaeche A ist "+A+"n");
}
// Berechnung des Schwerpunktes
A=d*H+b*t;
h=H-t;
e1=((t*B*B)+(h*d*d))/(2*A);
{System.out.println("nDer Schwerpunktabstand horizontal ist "+e1+"n");
}


// HIER IST IRGENDWO DER WURM DRIN^^
A=d*H+b*t;
h=H-t;
t=H-h;
e2=((d*H*H)+(b*t*t))/(2*A);
if (e2<t);
{System.out.println("nDer Schwerpunkt liegt im Flanschbereich "+e2+"n");}
else
System.out.println("nDer Schwerpunkt liegt nicht im Flanschbereich "+e2+"n");

}
}

eventuell eine Lösung...

jef, Fri, 28.11.2008, 21:46 (vor 5599 Tagen) @ Simon H.

e2=((d*H*H)+(b*t*t))/(2*A);
if (e2<t);
{System.out.println("nDer Schwerpunkt liegt im Flanschbereich

nach if (e2<t) kein semikolon, könnte was bringen :)

Stimmt!

Breitzke, Sun, 30.11.2008, 15:01 (vor 5598 Tagen) @ jef

e2=((d*H*H)+(b*t*t))/(2*A);
if (e2<t);
{System.out.println("nDer Schwerpunkt liegt im Flanschbereich


nach if (e2<t) kein semikolon, könnte was bringen :)

Stimmt! Wird das ";" gelöscht, läuft das Programm und auch richtig!
Jetzt fehlen nur noch die Flächenmomente...

Wäre es hilfreich, wenn ich mit einigem zeitlichen Abstand die Musterlösungen
in's Netz stellen würde?

Lösungen

Simon H., Sun, 30.11.2008, 17:00 (vor 5598 Tagen) @ Breitzke
bearbeitet von Simon H., Sun, 30.11.2008, 17:04

e2=((d*H*H)+(b*t*t))/(2*A);
if (e2<t);
{System.out.println("nDer Schwerpunkt liegt im Flanschbereich


nach if (e2<t) kein semikolon, könnte was bringen :)


Stimmt! Wird das ";" gelöscht, läuft das Programm und auch richtig!
Jetzt fehlen nur noch die Flächenmomente...

Wäre es hilfreich, wenn ich mit einigem zeitlichen Abstand die
Musterlösungen
in's Netz stellen würde?

Das wäre eine super Sache :)

p.s.: Danke für den Tipp mit dem ";". warum ich das selber nicht gesehen habe weiß ich auch nicht!! Aber jetzt funktioniert es astrein

Musterlösungen zu A3 & A4 im Netz

Breitzke, Mon, 01.12.2008, 19:09 (vor 5597 Tagen) @ Simon H.

Wäre es hilfreich, wenn ich mit einigem zeitlichen Abstand die
Musterlösungen
in's Netz stellen würde?


Das wäre eine super Sache :)

Ok, habe die Musterlösungen zu den Aufgaben 3 und 4 in's Netz gestellt.
Das sind natürlich nur Vorschläge, man kann die Aufgaben auch auf andere Art richtig programmieren...

*Achtung Achtung*

Jörg R., Sat, 29.11.2008, 08:23 (vor 5599 Tagen) @ Simon H.

Moin moin,

bei mir liegt die Javazeit schon etwas zurück, aber evtl. kann ich dir weiterhelfen.

Für mathematische Berechnungen brauchst du die Klasse "Math" und den Datentyp "double" (double > float).
Du könntest dies für alle Variablen verwenden. Müsste Frau Breizke auch im Skript vermerkt haben.:-D


Den folgenden Quelltext habe ich meinen alten Unterlagen entnommen und sollte funktionieren!

import java.io.*;
public class riechers_QW {
public static void main(String[] args)
throws IOException //Hiermit wird die gesamte Method
//gegen einen "Absturz" gesichert!

{
BufferedReader eingabe = new BufferedReader(
new InputStreamReader(System.in));

System.out.println("n"); //Erläuterung zum Programm
System.out.println(" Querschnittswerte unsymmetrischer Balkenquerschnitte");
System.out.println("******************************************************");
System.out.print("n");


double B,H,d,t,h,b,A,e1,e2,iy,iz,iyz;//Hier werden Werte eingelesen

System.out.print("Bitte geben Sie die Gesamtbreite B ein: ");
B = Integer.parseInt(eingabe.readLine());

System.out.print("Bitte geben Sie die Gesamthoehe H ein: ");
H = Integer.parseInt(eingabe.readLine());

System.out.print("Bitte geben Sie die Stegbreite d ein: ");
d = Integer.parseInt(eingabe.readLine());

System.out.print("Bitte geben Sie die Flanschhoehe t ein: ");
t = Integer.parseInt(eingabe.readLine());


//Definition der Abbruchfälle

if (d>B && t>H) {
System.out.println("nAchtung - Fehler !");
System.out.println("nBerechnung nicht moeglich, weil die eingegebene ");
System.out.println("nStegbreite groesser als die Gesamtbreite ist und ");
System.out.println("ndie Flanschhoehe groeßer als die Gesamthoehe ist.");
}

else {

if (d>B) {
System.out.println("nAchtung - Fehler !");
System.out.println("nBerechnung nicht moeglich, weil die eingegebene");
System.out.println("nStegbreite groeßer als die Gesamtbreite ist. ");
}

else {

if (t>H) {
System.out.println("nAchtung - Fehler !");
System.out.println("nBerechnung nicht moeglich, weil die eingegebene");
System.out.println("nFlanschhoehe groeßer als die Gesamthoehe ist. ");
}

else {


//Berechnung der Variablen h,b,A,e1,e2

h=H-t;
b=B-d;
A=(t*B)+(h*d);

e1=(t*Math.pow(B,2)+h*Math.pow(d,2))/(2*A);
e2=(d*Math.pow(H,2)+b*Math.pow(t,2))/(2*A);


//Ausgabe der Werte für A und e1

System.out.println("nDie Querschnittsflaeche betraegt: "+A);
System.out.println("nDer Schwerpunktabstand e1 - horizontal: "+e1);


//Berechnung der Variablen iy,iz,iyz

iy=((d*Math.pow(H,3)+b*Math.pow(t,3))/3)-(A*Math.pow(e2,2));
iz=((h*Math.pow(d,3)+t*Math.pow(B,3))/3)-(A*Math.pow(e1,2));
iyz=-1*(d*H*(e1-d/2)*(e2-H/2)+b*t*(e2-t/2)*(e1-d-b/2));


//Berechnung der Schwerpunktposiiton

if (e2<t) {
System.out.print("nDer Schwerpunkt liegt im Flanschbereich!");
}

else {

if (e2>t) {
System.out.print("nDer Schwerpunkt liegt nicht im Flanschbereich");
System.out.println("nsondern im Stegbereich!");
}

else {

if (e2==t) {
System.out.println("nDer Schwerpunkt liegt genau zwischen dem");
System.out.println("nSchwer- und Flanschbereich!");
}

else {
}

}
}


//Ausgabe der Werte für e2,iy,iz,iyz

System.out.println("nDer Schwerpunktabstand e2 - vertikal: "+e2);
System.out.println("nIy = "+iy);
System.out.print("Iz = "+iz);
System.out.print("n");
System.out.println("nIyz = "+iyz);

System.out.println("n");
System.out.println("n!! ENDE !!");
System.out.print("n");

//Die letzten drei else - Bedingungen (aus der Abbruchdefinition)
//müssen noch beendet werden!

//Und die Public Class + der Buffered Reader muss beendet werden!

}
}
}

}
}

RSS-Feed dieser Diskussion
powered by my little forum