Forum / Grundlagen des Programmierens / 1. Hausübung

1. Hausübung

Ok, ich habe eine relativ einfache Frage zur Aufgabe 1.3. Man soll dort mit Hilfe von Schleifen ein rechteckmuster erzugen. Mein Programm hat aber einen kleinen Fehler.

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Geben Sie bitte ein Zeichen ein:");
        String str = sc.nextLine();
        System.out.println("Geben Sie die Anzahl der Spalten ein:");
        int i = sc.nextInt();
        System.out.println("Geben Sie die Anzahl der Zeilen ein:");
        int n = sc.nextInt();
      while (i > 0) {
      while (n > 0) {System.out.print(str); System.out.println(str);
      
      i--;n--;
                  }
\n~~~

Das ist mein aktueller Programmcode den ich verwende. Habe das Programm folgendermasen gerunt:
Geben Sie bitte ein Zeichen ein:
x
Geben Sie die Anzahl der Spalten ein:
5
Geben Sie die Anzahl der Zeilen ein:
7
xx
xx
xx
xx
xx
xx
xx

wo liegt hier mein Fehler im Code? so kompliziert is das gar neda ber mir fällt keine lösung grad ein bin für jede HIlfe dankbar
Alexander ±0

@metriod: Wie du meinst, aber wenn mich wer drauf anspricht beim Abgabegespräch habs nicht ich kopiert ;)

@Monty_aut: Ich verstehe die Frage nicht ganz, ich dachte du arbeitest ohne do-while? Zeig mal deinen Code her (bitte verwende den BB-Code "CODE" zu

Michal ±0

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor. / /*
  • @author Mike */

import java.util.Scanner;

public class Bsp5_0926990_1 {

public static void main(String args[]) {

    double f=0,I=0;
    double E=210E3;
    double pi = Math.PI;

    Scanner eingabe_sc = new Scanner(System.in);
   
    System.out.println("Geben sie die Querschnittsgröße (mm) an : ");
    double a = eingabe_sc.nextDouble();
    System.out.println("Geben sie die Balkenlänge (mm) an : ");
    double l = eingabe_sc.nextDouble();
    System.out.println("Geben sie die einwirkende Kraft (N) an");
    double F = eingabe_sc.nextDouble();

    System.out.println("Wählen Sie eine Querschnittsform:"
            + "\nQuadrat (q)"
            + "\nKreis (k)"
            + "\nI-Träger (i)");
    char traeger = eingabe_sc.next().charAt(0);
        
    switch(traeger) {
        case 'q' : 
            I = Math.pow(a,4)/12;
            break;                            
        case 'k' :
            I = Math.pow(a,4)*pi/4;
            break;
        case 'i' :
            I = Math.pow(a,4)*10/144;
            break;
        default:
            System.out.println("Fehlerhafte Eingabe!");
            break;
    }
            
    System.out.println("Geben sie die Lagerun des Balkens an:"
            + "\nBeidseitig gelagert, Kraft in der Mitte (b)"
            + "\nEinseitig eingespannt, Kraft am ende (e)");
    char lagerung = eingabe_sc.next().charAt(0);
            
    switch(lagerung) {
        case 'b' : 
            f = F*Math.pow(l,3)/(48*E*I);
            break;

        case 'e' :
            f = F*Math.pow(l,3)/(3*E*I);
            break;

        default:
            System.out.println("Fehlerhafte Eingabe!");
            break;
    }            

    System.out.println("Flächenträgheitsmoment: " + I + " mm^4");
    System.out.println("Maximale Durchbiegung:  " + f + " mm");

}

} [/CODE]

have fun...

wenn ich auch dein program verwende, gibt es am ende genau wie bei meinem dieses ergebnis, z.B.:

Maximale Durchbiegung: 7.894590431145603E-4 mm

wieso ist dort dieses E-4 ? kann jemand helfen? danke :)

Alexander ±0

Naja, was für Parameter gibst du ein? Habs nochmal probiert und nachgerechnet -> die Berechnung sollte stimmen. Das E-4 bedeutet also lediglich dass du entsprechende Werte eingegeben hast die eine derart kleine Durchbiegung ergeben.

Grüße Alex

Yigitcan ±0

Ja ich glaube das passt! vielen Dank:)

Alexandra-Cosima ±0

Hallo! Auch eine Frage bezüglich Abgabe: ich habe die Schritte aus der pdf Datei gefolgt, nun habe ich einen Folder, der besteht aus build, dist, nbproject und src und meine jar Datei ist eine executable jar Datei im Ordner dist..könnte das vllt passen? Danke

Dieter ±0

Eine kurze Frage: Beim Bsp 3 steht ja man soll ASCII Symbole verwenden Aber das sind ja eigentlich eben nur jene Symbole die in Amerika verwendet werden Heißt das jetzt wir müssen klar stellen dass da Programm bei Buchstaben wie "ö" nicht funktioninert? Oder wieso wird das extra erwähnt und sie verlangen nicht einfach dass man ein beliebiges Symbol eingeben kann dass dann ausgegeben wird? Weil sonst hätte ich einfach eine String verwendet der das entsprechende Symbol (egal welche Eingabe also auch zb "ö") speichert..

Bertram ±0

schreib mal das programm und dann versuchs mit nem ä,ö,ü. er wird dir nur fragezeichen auswerfen weil diese "extrazeichen" ne eigene programmierung erfordern würden

Dieter ±0

ja danke habs gerade ausprobiert und gemerkt XDDD haha^^

Bertram ±0

;) trial and error, das beste am programmieren :)

Alexander ±0

Hey Cosi, ja das ist das jar-File! Das einfach hochladen.

Du kannst das File e.g. mit 7-Zip entpacken und nachsehen ob jeweils eine Java und eine class Datei enthalten ist.

Liebe Grüße Alex

Klaus ±0

Moinmoin Leute :D Ich hab auch nochmal so kurz vor Abgabe ne Frage ;)

Und zwar..folgendes... Beispiel 5. Alles eingegeben, spuckt mir auch keine Fehler aus...passt scheinbar alles. Nur wenn ich Werte eingebe, krieg ich als Ergebnis sowas wie "-2.6070357E17". Das is jetzt iwie n Wert mit dem ich..bissl weniger anfangen kann, haha Ich geh mal von aus, dass das dran liegt, dass ich alles mit float deklariert hab? Reicht das, wenn ich über parse aus float wieder int mach? In einem anderen Beispiel hats so iwie funktioniert, dass ich mit Scanner ne Zahl eingeben konnte, die aber dann als String deklariert war, woraufhin ich sie als int angeschrieben hab, und über float "variableneu" = Float.parseFloat(variablealt) quasi neudefiniert hab?

Danke jedenfalls schonmal :D

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Puenos
 */
public class Bsp5_1027570_1 {
    public static void main (String[] args){
        
      
        
      System.out.println("##### Stress-Test time!: Bending! #####");
      System.out.println("");
      System.out.println("We'd also like to notify you, that this calculations will be based on steel (E=210GPa");
      System.out.println("");
      
      System.out.print("Please enter size of cross section in mm:  ");
        Scanner sc = new Scanner(System.in);
        float cs = sc.nextInt(); 
      System.out.print("Please enter length of balk in mm:  ");
        float l = sc.nextInt();
      System.out.print("Please enter applied force in N:  ");
        float fo = sc.nextInt();
        
      System.out.println("Now I need to know what cross section profile this balk has:");
        System.out.println("Square s");
        System.out.println("Circular c");
        System.out.println("I-profile i");
        
        Scanner sc2 = new Scanner (System.in);
    
        String line = sc2.nextLine();
        char eingabe = line.charAt(0);
      
            switch(eingabe) {
            
                case 's':
                    float S = (cs*cs*cs*cs)/12;
                case 'c':
                    float pi = 3.14159265f;
                    float C = (cs*cs*cs*cs)*pi/4;
                case 'i':
                    float I = 10*(cs*cs*cs*cs)/144;
        System.out.println("");    
        System.out.println("Please define bearing given balk:"); 
                
        Scanner sc3 = new Scanner (System.in);
        int E = 21*10*10*10*10*10*10*10*10*10*10;
        int i = sc.nextInt();
            if (i==1) {
               float f1 = (fo*l*l*l)/48*E*eingabe;
               System.out.println("");
               System.out.println("Calculated bending approximates with " + f1);
            } else {
              float f2 = (fo*l*l*l)/3*E*eingabe;
              System.out.println("");
              System.out.println("Calculated bending approximates with " + f2);
            
            }
    }\n~~~
Dieter ±0

Wie ist denn das bei Bsp 5 mit dem Pi? Sollen wir da einfach auf ein paar Stellen aufrunden?

Edit habs schon^^

Dieter ±0

Wie viel habt ihr zu den Aufgaben als Erklärungen dazugeschrieben? Weil ja steht man soll den Code mit sinnvollen Kommentaren erklären..

Klaus ±0

also einige schreiben statt PI oder dem E-Modul einfach die Zahlen hin.. ich finds fast sinnvoller, wenn man die definiert.. weil evtl braucht man die ja nochmal.. Und ich schreib lieber E statt 2100000000000000000000000000000000000000000000000000000000000000000000000000000000000 (übertrieben, aber joa :P)

Kommentare..kein Plan wie andre das machen.. ich schreib zu jeder Zeile was dazu. Außer sie wiederholt sich, dann lass ichs :)

Felix ±0

eine frage, müssen wir zum Beispiel bei Beispiel 1 ein Default case machen? weil in den Beispielen die hochgeladen wurden ist es so, aber in der angabe steht nichts. danke

Sorry, die Kommentarfunktion ist geschlossen.