Java Programm für Schule schreiben?

7 Antworten

Das könntest du mit einer For-Schleife machen.

Oder du benutzt den "Anfänger" Weg mit System.out.println

Woher ich das weiß:Berufserfahrung

Isendrak  08.01.2020, 17:28

Der zweite Satz ergibt reichlich wenig Sinn...

Inwiefern soll System.out.println der "Anfänger"-Weg sein?

Oder anders gefragt: Wäre der "Profi"-Weg über JNI (oder vergleichbares) die jeweiligen plattformspezifischen Syscalls aufzurufen nur um etwas Text auszugeben? o.O

0

for(int i = 0; i < 20; i++) {

System.out.println("****+"); // pro Zeile wird ausgegeben ****+

}

Das sollte gehen.

sonst könntest Du auch stattdessen nutzen:

System.out.print("****+"); // hier wird alles in einer Zeile ausgegeben

Ist zumindst der einfachste Weg - ich werd jetzt hier keine hochkomplexen Modulo-Sachen einbauen, um intelligent zu wirken, für so ne einfache Sache


ralphdieter  08.01.2020, 18:22
Ist zumindst der einfachste Weg

und geht damit völlig an der Aufgabe vorbei! Da steht doch ausdrücklich Java-Programm, also objektorientiert: Sternchen und Plus kann man prima als Klassen mit gemeinsamem Interface implementieren. Und wie kannst Du nur 100 Zeichen ausgeben, ohne sie zuvor in einer ArrayList zu speichern?

Wie Du siehst, sind erst mal ein paar tausend Zeilen zu schreiben, bevor es dann endlich an den komplizierten algorithmischen Teil geht:

System.out.print(sternUndPlusArray[0].getItf().toString());
System.out.print(sternUndPlusArray[1].getItf().toString());
System.out.print(sternUndPlusArray[2].getItf().toString());
...
0
chilly10  08.01.2020, 18:57
@ralphdieter

Was ist denn das bitte für nen Beitrag...

Java heißt nicht objektorientiert... Java ist ne Programmiersprache; objektorientiert, imperativ,... sind Stile, wobei der erste von Objekten, deren Vererbung usw. ausgeht und der andere eher in Ablaufbeschreibung mündet, jedoch auch in der Objektorientierung Anwendung findet... Also, wenn Du danach gehst, dass niemand mehr imperativ schreiben soll... hehe

1
ralphdieter  08.01.2020, 19:53
@chilly10
Java ist ne Programmiersprache

Ach so! Mir kommt's immer so vor, als sei es eine Religion.

Was ist denn das bitte für nen Beitrag

Genau das dachte ich auch, als ich Deine Antwort las: Nur zwei Zeilen Code, die das Problem ohne Umschweife lösen? — Solche Antworten sind bei Java-Fragen extrem selten. Und wenn, dann werden sie sofort von OO-Experten und Groß-/Kleinschreibwächtern niedergemetzelt.

Eigentlich war mein Kommentar als Posse gedacht. Aber nach dem Absenden habe ich mich doch ernsthaft gefragt, ob so mancher fleißige Schüler tatsächlich einen riesigen Haufen Müllcode abgibt, der in einem 100-Zeilen-System.out.print()-Finale gipfelt. Ich befürchte, das passiert wirklich und wird mit voller Punktzahl honoriert...

0
chilly10  08.01.2020, 19:58
@ralphdieter

Stimmt, das sind dann die Experten, die sich beim Spaghetti-Code die Augen zuhalten, weil man den Schülern beibringt Dinge so komplex zu gestalten, dass Du dann am Ende in der eigentlichen Software-Komplexität nicht mehr durchsiehst, auch weil zu viele Ebenen in der Programmierung sind und man alles in die Tiefe verschleift und verschachtelt. Mit Religion hab ichs hingegen nicht immer so... wegen interkultureller Belange seitens der Anderen oder meiner eigenen Leute - die haben immer ganz andere Erwartungen usw. :D, aber... kein Ding/ ist normal :D Glücklicherweise muss man beim Quellcode so gut wie nix auswendig aufsagen. Das ist ja das Coole.

1
Simon221585  08.01.2020, 17:27

for(int i = 0; i < 100; i++) {

if(i != 0 && i % 5 == 0) {

if(i > 5) {

System.out.print("*");

}

System.out.print("+");

} else {

System.out.print("*");

}

}

fix

0
Kiboman  08.01.2020, 17:24

So einfach?

Das ist sicher nicht Ziel seiner Aufgabe :))

Aber ich würde es probieren, rein aus Spaß.

0
chilly10  08.01.2020, 17:26
@Kiboman

Was willst Du für ein paar Sterne hinzaubern? Man kann's auch hyperkompliziert machen, aber ist das nötig? Softwareentwicklung zielt darauf ab Dinge so einfach wie möglich zu formulieren, komplex wird Software an sich mit der Zeit und dem Wachsen des Funktionsumfangs. Brauchst bloß bei github einige Sachen angucken - greifst Dir an den Kopf wie umständlich und unsortiert viele ihren Code schreiben. Da ist nicht die Funktion zum Teil komplex, sondern die umständliche Schreibweise. Sieht aus wie Chaos-Queens Vermächtnis da teils aus. Schlanker, übersichtlicher Code ist da besser. Alles andere ist Spaghetti-Fraß - solche Probleme haben heutige Softwareentwickler mit altem Code, weil das aussieht wie'n Krieggebiet und keiner sich da rantraut etwas zu erneuern.

1
Simon221585  08.01.2020, 17:28
@chilly10

Ist einfach genug. Man kann auch gleich 5 Sterne und ein Plus in die Zeile schreiben, dann braucht man aber nicht programmieren. Dann hat man als Anfänger die Logik nicht verstanden und macht es sich so einfach wie möglich.

0
Isendrak  08.01.2020, 17:31
@Kiboman
So einfach?

Ja, so einfach. ^^

Der Code erfüllt die Aufgabenstellung (so wie sie formuliert wurde) wortgenau.

Sollte der Lehrer solch einen Code als nicht akzeptabel einstufen, sollte er evtl. mal darüber nachdenken, seine Aufgabenformulierungen zu optimieren.

0
chilly10  08.01.2020, 18:07
@Simon221585

nicht programmieren, meinste so:

<p>****+****+****+****+****+****+****+****+****+****+</p>
?

0
Simon221585  08.01.2020, 18:10
@chilly10

Wie gesagt meinen Kommentar ignorieren, wollte eigentlich auf meine eigene Antwort antworten!!!!!!

0

Da hast du Recht.

Die Aussage war von mir nicht ganz richtig.

Allerdings wo ich Java angefangen habe, hätte ich System.out.println verwenden, was für die Schule vielleicht besser wäre.

ja, kann ich. Werd ich aber nicht - zumindest nicht so.

Hast du denn einen Ansatz, hast du schon Code?

Weißt du, wie du da dran gehen kannst?

For schleife

i Modulo 5 == 0 Print "+"