Java Tabelle - Seite 2

Seite 2 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/java-tabelle_244388/page_2 - zur Vollversion wechseln!


MjrSEIDL schrieb am 25.10.2015 um 17:17

imho wesentlich schöner mit hashmap zu lösen als mit switch... aber ne art von list braucht man imho trotzdem oder man definiert halt 5 variablen für strings die man nachher zusammenbastelt...

würde incrementell mit % für die jeweilige ziffer vorgehen und dann int division

also sowas in der art:

Stack<int> ziffern=new Stack<int>();
while (zahl>0){
ziffern.push(zahl%10)
zahl /= 10
}

und dann halt der reihe nach pullen... wobei du halt, wofern die 2te, 5te, 8te ziffer ne 1 ist nen eigenen switch brauchst


SeVen schrieb am 25.10.2015 um 18:07

Hättest du dafür nen kleines Beispiel wie du das meinst (Blaues U-boot)? Ich brauche doch nur die Zahlen 10-999.


Blaues U-boot schrieb am 25.10.2015 um 18:56

für 10-999 ist es einfach:
pseudocode:
-anzahl der stellen bestimmen
-wenn 3
----hunderterstelle berechnen
----hunderterstelle mit switch überprüfen und passenden string ausgeben
----"and" ausgeben, wenn die letzten 2 stellen ungleich 0
----zahl auf letzten 2 stellen reduzieren

-wenn zahl >9
----sonderfälle 10-19 mit switch ausgeben
----wenn kein sonderfall. die zehnerstelle berechnen und mit switch passenden string ausgeben

-einerstelle berechnen
-wenn >0
----einerstelle mit switch ausgeben


so ca. würds ich machen, bin aber kein experte


SeVen schrieb am 25.10.2015 um 19:18

Leider bin ich totaler Anfänger und weiß nicht genau wie ich herausbekomme wieviele Stellen eine Zahl hat. Wahrscheinlich was mit Modulo %, richtig?


Blaues U-boot schrieb am 25.10.2015 um 21:21

gibt viele möglichkeiten:
-bei dem beispiel einfach: if(x>99 && x<1000)
allgemeiner:
-den integer in nen string umwandeln und dann die länge abfragen
-in ner schleife mit einer um zehnerpotenzen wachsende zahl vergleichen
-in ner schleife durch 10 dividieren bis x%10=x
-usw.

den modulo operator wirst du aber definitiv brauchen für den rest der aufgabe ;)


MjrSEIDL schrieb am 25.10.2015 um 21:33

das einfachste wäre wohl math.floor(math.log10(x))+1


SeVen schrieb am 25.10.2015 um 22:24

Danke für die vielen schnellen Hilfen.:) Ich hab es nun so gelöst...


Denne schrieb am 26.10.2015 um 07:21

War gestern Abend den ganzen Tag unterwegs und konnte nicht antworten.
Funktioniert dein Code? Er ist zwar nicht sonderlich hübsch, aber das war mein Code am Anfang auch nicht :D


-=Willi=- schrieb am 26.10.2015 um 10:56

@SeVen: Lies mal die Regeln zum Formattieren von Code von Oracle oder Google. Ich seh da viele unsinnige Leerzeichen. Lieber jetzt angewöhnen als später umgewöhnen.


SeVen schrieb am 26.10.2015 um 20:24

Er funktioniert einwandfrei. Denke aber auch das da einige Dinge drin sind, die überflüssig sind.
@-=Willi=- : Wo finde ich das zum Nachlesen? Hast du nen direkten Link wo ich das gut verstehen kann?
Hat noch jemand einen Tipp, wo die verschiedenen Schleifen die es gibt gut erklährt werden?
Wieder ein großes Dankeschön für die netten Antworten!


-=Willi=- schrieb am 26.10.2015 um 21:40

Google: https://google.github.io/styleguide...l#s4-formatting
Oracle: http://www.oracle.com/technetwork/j...ions-150003.pdf

Es geht halt drum dass sich für jede Programmiersprache ein gewisser Standard etabliert hat, wie Code zu formattieren ist.

Ein if hat z. B. in Java immer so auszusehen wenn du nicht die Wut der "Seniors" auf dich ziehen willst :D.

Code: JAVA
if (condition) {
  // code
}
- Ein Leerzeichen nach "if"
- Keine Leerzeichen zwischen der Condition und den Klammern
- Öffnende geschwungene Klammer auf der gleichen Zeile wie das if

etc.


SeVen schrieb am 27.10.2015 um 19:14

Danke @ -=Willi=- :-)


SeVen schrieb am 06.11.2015 um 14:58

Huhu,

ich habe noch eine eine Frage:

ich möchte ein Array einlesen, also ich gebe zwei Zahlen für Zeile und Spalte mit Leerzeichen ein und es soll dann eine Tabelle in der eingegeben Größe herrauskommen. Wie kann ich das bewerkstelligen?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025