Forum / Grundlagen des Programmierens / Hausübung Bsp 1.5

Hausübung Bsp 1.5

kann sich jemand bitte das programm durchschauen und mir ev helfen herauszufinden wo der fehler is???

Scanner eingabe=new Scanner(System.in); final int E = 210; double I; double f;

    System.out.println("Bitte wählen Sie die passende Querschnittsform");
    System.out.println("Kreis [k]");
    System.out.println("Quadrat [q]");
    System.out.println("I-Träger [i]");
    
    //wenn "q" oder "i" gewählt
    String form=eingabe.next();
    if (form.equals("q")||form.equals("i"))
    {System.out.println("Bitte geben Sie die Seitenlänge in mm an");}        
    
    
    //wenn"k" gewählt
    if (form.equals("k"))
    System.out.println("Bitte geben Sie den Durchmesser in mm an.");
    
    //als variable "a" definieren
    double a=eingabe.nextDouble();
    
    //berechnung von I=Flächenträgkeit.
    
    //wenn q
    //I=a^4/12
    if (form.equals("q"))
    {I=("a^4/12");}  
    
        
    //wenn i
    //I=10a^4/144
    if (form.equals("i"))
    {I=("10a^4/144");} [COLOR="#FFFF00]->hier ist ein Fehler
    
    //wenn k
    //I=(a^4*pi)/12
    if (form.equals("k"))
    {I=(a^4*pi)/12;}  ->hier ist ein Fehler
    
    //abfrage der länge
    System.out.println("Bitte geben Sie die Länge in mm an");
    //als variable "l" definieren
    int l =eingabe.nextInt();
    
    
    //abfrage der kraft
    System.out.println("Bitte geben Sie die Kraft in N an");
    //als variable "F" definieren
    int F =eingabe.nextInt();
    
    //abfrage der Lagerungsart
    System.out.println("Bitte geben Sie die Art der Lagerung an");
    System.out.println("Beidseitig gelagert, Krafteinwirkung mittig [a]");
    System.out.println("Kragträger mit Last am Endpunkt [b]");
            
            
    //berechnung der Maximalen durchbiegung (f) durchbiegung
    String lagerung=eingabe.next();
    //wenn a
    //f=(F*l^3)/(48*E*I)
    if (lagerung.equals("a"))
    {f=(F*l^3)/(48*E*I);
        System.out.println("Die maximale Durchbiegung beträgt f");
    }
    //wie verweist man auf eine variable???
    
    //wenn b
    //f=(F*l^3)/(3*E*I)
    if (lagerung.equals("b"))
    {f=(F*l^3)/(3*E*I);
    System.out.println("Die maximale Durchbiegung beträgt f");
    }
Michael ±0

Java erkennt ^ nicht so einfach als Potenz. Du musst entweder aaa*a schreiben oder die Funktion math.pow(a,4) verwenden. Außerdem wird Java "pi" nicht als 3,14... erkennen, sondern als Variable

Bertram ±0

danke erst mal.

leider war das nur die halbe miete...

das andere is das er mir bei den besagten zeilen folgende Fehlermeldung ausgibt: incompadible types, required: double found: java.lang.string

was soll ich da ändern???

das andere betrifft {f=(Fl^3)/(48E*I); System.out.println("Die maximale Durchbiegung beträgt f"); }

hier berechnet er mir f nicht und gibt f nicht als Zahl in der System.out.println an. wie schreib ich das so dass er f als variable erkennt?

Michael ±0

Du musst die Anführungszeichen weglassen, sonst wird der Ausdruck als string interpretiert. I=("a^4/12"); ist falsch I=math.pow(a,4)/12; ist richtig

Damit math.pow funktioniert, musst du noch eine library importieren, und zwar java.lang.math

Zum zweiten: System.out.println("Die maximale Durchbiegung beträgt " + f); wäre richtig. Das steht übrigens in den VO-Folien der 2. VO drinnen, falls du nochmals nachschauen willst.

Bertram ±0

so, programm rennt, gibt mir aber nicht das richtige ergebnis. ich poste den ganzen schmafu noch mal in der hoffnung das irgendwer den fehlern findet...

Scanner eingabe=new Scanner(System.in); final int E = 210000; double I=0; double f;

    boolean i;
    do {
   
            
    
    System.out.println("Bitte wählen Sie die passende Querschnittsform");
    System.out.println("Kreis [k]");
    System.out.println("Quadrat [q]");
    System.out.println("I-Träger [i]");
    
    //wenn "q" oder "i" gewählt
    String form=eingabe.next();
    if (form.equals("q")||form.equals("i"))
    {System.out.println("Bitte geben Sie die Seitenlänge in mm an");}        
    
    
    //wenn"k" gewählt
    if (form.equals("k"))
    System.out.println("Bitte geben Sie den Durchmesser in mm an.");
    
    //als variable "a" definieren
    double a=eingabe.nextDouble();
    
    //berechnung von I=Flächenträgkeit.
    
    //wenn q
    //I=a^4/12
    if (form.equals("q"))
    {I=(Math.pow(a,4)/12);}
    
        
    //wenn i
    //I=10a^4/144
    if (form.equals("i"))
    {I=((10*Math.pow(a,4))/144);}
    
    //wenn k
    //I=(a^4*pi)/12
    if (form.equals("k"))
    {I=(Math.pow(a,4)*Math.PI)/12;}
    
    
    
    //abfrage der länge
    System.out.println("Bitte geben Sie die Länge in mm an");
    //als variable "l" definieren
    int l =eingabe.nextInt();
    
    
    //abfrage der kraft
    System.out.println("Bitte geben Sie die Kraft in N an");
    //als variable "F" definieren
    int F =eingabe.nextInt();
    
    //abfrage der Lagerungsart
    System.out.println("Bitte geben Sie die Art der Lagerung an");
    System.out.println("Beidseitig gelagert, Krafteinwirkung mittig [a]");
    System.out.println("Kragträger mit Last am Endpunkt [b]");
            
            
    //berechnung der Maximalen durchbiegung (f) durchbiegung
    String lagerung=eingabe.next();
    //wenn a
    //f=(F*l^3)/(48*E*I)
    if (lagerung.equals("a"))
    {f=(F*Math.pow(l,3))/(48*E*I);
        System.out.println("Die maximale Durchbiegung beträgt  " +f);
    }
    
    
    //wenn b
    //f=(F*l^3)/(3*E*I)
    if (lagerung.equals("b"))
    {f=(F*Math.pow(l,3))/(3*E*I);
    System.out.println("Die maximale Durchbiegung beträgt  " +f);
    }
    //abfrage ob noch mal berechnen
    System.out.println("Wollen sie die Berechnung noch ein mal starten? (J/N)");
   char entry=eingabe.next().charAt(0);
   if (entry=='J'||entry=='j')
       i=true;
   else i=false;
   
   
   
   }   
    while (i==true);
    
    
    

}

Bertram ±0

hat sich erledigt, danke

Wolfgang ±0

Hab die Beiträge in die allgemein HÜ1 Diskussion verschoben, damit alles beisammen ist.

boards.studify.at/threads/424-2012S-1-Haus%C3%BCbung

/closed

Sorry, die Kommentarfunktion ist geschlossen.