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
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:
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
kann mir jemand erklären was die Zeile "n=help"; in der ersten while Schleife bewirkt bzw. worfür ich sie brauche?
man ich habe schon bei der 2 Aufgabe Probleme :(... Frage bei der ersten Aufgabe da musste ich nachdem case den Buchstaben 'A' angeben. Bei den Zahlen aber nicht. Wieso werden Zahlen normal und Buchstaben unter ' ' geschrieben?
[2012S] 1. Hausübung, Beispiel 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");
}
\n~~~
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
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?
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.
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);
}
\n~~~
Irgendwie check ich das nicht... Wie krieg ich es her, dass sich in Bsp 3 die Spaltenanzahl ändert? Mit der Zeilenanzahl hab ich keine Probleme...
das ist der quellcode meiner 1. hü hf
- 1 Download Nur für Studenten!
Martin @Martin
Wirtschaftsingenieur... · Technische Universit...
wie is des eig. mit der absicherung bei einer float zahl (wenn wer 1.5 eingibt statt 1,5??)
meine eingabe funktioniert im moment so: