"We are back" « oc.at

Java Tabelle

SeVen 24.10.2015 - 22:57 7357 27
Posts

MjrSEIDL

OC Addicted
Registered: Nov 2000
Location: wien
Posts: 1178
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
Bearbeitet von MjrSEIDL am 25.10.2015, 17:24

SeVen

Little Overclocker
Registered: Apr 2006
Location: Germany
Posts: 96
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

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1542
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
Bearbeitet von Blaues U-boot am 25.10.2015, 18:58

SeVen

Little Overclocker
Registered: Apr 2006
Location: Germany
Posts: 96
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

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1542
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

OC Addicted
Registered: Nov 2000
Location: wien
Posts: 1178
das einfachste wäre wohl math.floor(math.log10(x))+1
Bearbeitet von MjrSEIDL am 25.10.2015, 21:37

SeVen

Little Overclocker
Registered: Apr 2006
Location: Germany
Posts: 96
Danke für die vielen schnellen Hilfen.:) Ich hab es nun so gelöst...

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
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=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
@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

Little Overclocker
Registered: Apr 2006
Location: Germany
Posts: 96
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=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
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

Little Overclocker
Registered: Apr 2006
Location: Germany
Posts: 96
Danke @ -=Willi=- :-)

SeVen

Little Overclocker
Registered: Apr 2006
Location: Germany
Posts: 96
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?
Bearbeitet von SeVen am 06.11.2015, 15:17
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz