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
Sollte beim zweiten Bsp. die BMI berechnung in einer extra Methode erfolgen oder kann dies in der main methode erfolgen(sprich man hat 2 methoden, main und z.B: bmirechner)? Finde nämlich die Angabe ein wenig verwirrend :D
Hallo Leute, meine Lösung zu 1.2: Denkt ihr dass so was als "Verwendung der if/else Struktur" zählt? :D
Danke :)
package bmi;
import java.util.Scanner; //import
public class Bmi {
public static void main(String[] args)
{
boolean nochmals = true;
do
{
System.out.println("Willkommen zum BMI-Rechner!\nGeben Sie bitte Ihr Gewicht in Kilogramm an.");
Scanner zahlen = new Scanner(System.in);
float gewicht = zahlen.nextFloat();
System.out.println("Jetzt geben Sie bitte Ihre Körpergröße in Meter an.");
float groesse = zahlen.nextFloat();
System.out.println("Ihr BMI hat den Wert von " + bmi(gewicht, groesse) + ".\n Wollen Sie den Vorgang nochmals wiederholen? (Y/N)");
Scanner janein = new Scanner(System.in); //float+string kann man mit einem scanner nicht lesen
char antwort = janein.nextLine().charAt(0);
if (antwort == 'Y') nochmals = true;
else nochmals = false;
}
while(nochmals == true);
}
public static float bmi(float kg, float m)
{
float bmi = kg/(m*m);
return bmi;
}
}
\n~~~
@Daniel: Brauchst keine extra Methode machen, kannst alles in die Main-Methode schmeißen.
lg flo
Ich oute mich dann mal gleich als der Tutor vom Rep. Hallo!
Der letzte Punkt beim BMI Beispiel mit der Methode hätte eigentlich raus gehört, da ja Methoden erst diese Woche durchgenommen werden. Es wird hoffentlich für die meisten kein Beinbruch sein, dass der Satz drinnengeblieben ist. Bis zum Abgabegespräch müsst ihr ja sowieso wissen was eine Methode ist, weiters werden Methoden am Mittwoch vorgestellt. Sorry, hab ich beim umstellen der Hausübungsbeispiele übersehen (Die Stoffreihenfolge hat sich dieses Jahr "etwas" geändert.).
Die Endlosschleife ist im übrigen dadurch gefordert, dass das Programm nach jeder Berechnung fragen soll, ob es eine neue Berechnung starten soll oder nicht.
lg flo
Wie du die Schleife löst ist dein Ding, du solltest wissen wie es funktioniert und die Übersicht über den Code haben. Ich persönlich bevorzuge die while schleife mit einem boolean der bei Bedarf auf false gestellt wird. Ist einfach einfacher. Rekursion kommt dann eh explizit zur 3. Hausübung (soviel kann ich verraten), spare dir also noch deine Kräfte ;)
Bei Beispiel drei machst du am besten einfach drei Klassen (so wie im Repetitorium) und schreibst in jede eine Lösung rein. Alle drei Klassen in ein Package und das Projekt (und somit das Jar-File) bleibt übersichtlich.
Das hochladen funktioniert wie jede andere TUWEL Abgabe auch, es gibt einen Dialog in dem man sein fertiges Jar-File hochlädt und den Rest übernimmt TUWEL. Ich mache noch ein kleines Video zu dem Thema in den Osterferien, derzeit komme ich einfach nicht dazu.
lg flo
P.S.: Ich bin ja auch nur ein ganz normaler (Langzeit-)Student, also keine Angst. Und so wie es derzeit im TUWEL Forum ausschaut kann ich hier wohl mehr helfen ;)
Beispiel 1.1
Have fun with it ;)
import java.util.Scanner;
public class Beispiel_11 {
public static void main(String[] args) {
System.out.println("Hello! Please choose a language.");
System.out.println("Deutsch (D)");
System.out.println("Englisch (E)");
System.out.println("Latein (L)");
Scanner scanner = new Scanner(System.in);
char Language = scanner.next().charAt(0);
switch (Language) {
case 'D':
System.out.println("Hallo Welt!");
break;
case 'E':
System.out.println("Hello World!");
break;
case 'L':
System.out.println("Salve, munde!");
break;
default:
System.out.println("Holy Guacamole, something went wrong!");
System.exit(0);
break;
}
}
}
\n~~~
PS: Code könnt ihr einfach erzeugen indem ihr ~~~\n~~~\nhere goes your code\n~~~\n~~~ schreibt oder in der erweiterten Ansicht (Button 'Erweitert') euren Code markiert und auf die Raute (Hashtag :D) klickt.
Grüße
Alex
[QUOTE=coffeeholic;2483]@Daniel: Brauchst keine extra Methode machen, kannst alles in die Main-Methode schmeißen.
lg flo
Im Tuwel Forum steht wieder, dass sich die Berechnung in einer eignen Methode befinden soll mit Rückgabewert BMI.
Kann ichs jetzt in der Main Methode lassen oder nicht? Lg
Michael @holunder
Wirtschaftsingenieur... · Technische Universit...
naja gut es is vltn bissl blöd zu sagen, dass ich keinen quellcode will. das problem bei mir besteht hauptsächlich darin, dass ich eben die befehle ned kenn um ne methode neu aufzurufen. wie ich ne schleife basteln soll seh ich ja im internet, aber ich hab dann oft das problem , dass ich ned weiss was ich für befehle reinwerfen darf und welche ned, bzw welche arten an befehlen es überhaupt gibt. ich guck zwar immer mit alt+leertaste was er mir alles vorschlägt, aber helfen tuts auch nur selten :/ . und jetz steh ich eben da, die HÜ sagt ich solls mit ner if schleife machen und ich hab ein schema im kopf ca so:
Scanner eingabe_sc = new Scanner(System.in); char eingabe = eingabe_sc.next().charAt(0);
if(eingabe == Y) { ...befehl um BMI messung erneut durchlaufen zu lassen .. } else { System.out.println("Tschüss"); System.exit(0); }
hoff es isn bissl verständlicher worans hapert bei mir sry :/