Was mach ich diesmal falsch?
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@manni66 Meinst du wegen der Inkrementierung von i?
Nein
-
@manni66 Wie sonst? Die 5 sagt dir immer, dass es generell in der 6. Spalte liegt
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@manni66 Wie sonst? Die 5 sagt dir immer, dass es generell in der 6. Spalte liegt
Du solltest meine Antwort lesen.
-
@JTR666 sagte in Was mach ich diesmal falsch?:
Also jede Spalte bekommt einen Datensatz aus der Struct.
Somit steht jede Spalte aus der Tabelle für eine Variable aus der Struct.Nein, jede Spalte hat den KOMPLETTEN Datensatz! Du wählst mit .ArtNr dann aber nur ArtNr aus.
Und diese bekommen dann halt in jeder Zeile neue Werte zugewiesen.
6 Werte für ArtNr, 6 für Bez (Bezeichnung), usw.Du hast aber nicht 6 ArtNr-Variablen, sondern 6*9 = 54 davon!
Vielleicht noch mal deutlicher: die Anzahl der Variablen in der Stuct hat NICHTS, GAR NICHTS!! mit der Arraygröße zu tun! Die sind voneinander unabhängig.
-
@wob Ja ja, aber durch [i][5] sagst du ihm ja auf welches er sich beziehen soll.
Somit werden nur die ArtNr in dieser Spalte genommen. Die der anderen Felder bleiben leer
-
@JTR666 Ja, aber warum 5? Was soll die 5 für eine Bedeutung haben? Wenn beim Programmieren irgendwelche Zahlen wild rumstehen, die keine offensichtliche Bedeutung haben, wer soll dann verstehen, was du damit meinst?
-
@wob Das sind die Koordinaten vom Array.
Zuerst die Zeile und dann immer die 6. Spalte der Tabelle
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@wob Das sind die Koordinaten vom Array.
Zuerst die Zeile und dann immer die 6. Spalte der TabelleWas macht die 6. Spalte denn besonders? Aus welchem Grund soll das genau in der 6. Spalte stehen? Warum nicht auch mal in der 1. oder 4.?
-
@wob Weil das die Spalte für die Bestelldauer ist. Also für BestDauer
-
Ich geb's auf!
BestDauer wird durch ".BestDauer" angegeben, nicht durch [5]!
-
@wob
Ich meinte nur, dass hält am Ende bei der ausgegebenen Tabelle die 6. Spalte für die Bestelldauer BestDauer steht. Und das wollte ich dem Compiler mit Tabelle[i][5].BestDauer sagen. Denn dann wird dem BestDauer in Tabelle[i][3].BestDauer kein Wert zugewiesen..
Und da sag ich ja dass die Variable für BestDauer in sagen wir mal [1][4] leer bleibt. Die gibt es ja wie du du sagtest auch, weil ja durch das Struct jedes Feld alle Variablen aus Struct bekommt.
Aber ich hab hält gedacht dass man das durch
.BestDauer dahinter umgeht und dem Feld dann wirklich nur die Struct-Variable zuweist. Bis ich dann hier eines Besseren belehrt wurde.
Und es sind dann nur die 6 BestDauer in Spalte 6 beschriftet, die der anderen 48 nicht...
Dennoch klappt die Ausgabe bis auf das mit den Berechnungen super
-
@JTR666 sagte in Was mach ich diesmal falsch?:
Dennoch klappt die Ausgabe bis auf das mit den Berechnungen super
Also klappt es nicht, weil du den Überblick verloren hast,
denn@manni66 sagte in Was mach ich diesmal falsch?:
wenn du immer den gleichen Index verwenden würdest. Für z.B. TagVerbr nimmst du aber einmal 5 und ein anderes mal 6.
Mach Tabelle eindimensional und schmeiß bei jedem Zugriff den letzten Index weg.
-
@DirkB Ist dann etwas kürzer, stimmt.
Und dann hätte ich keine leeren Variablen^^
-
@DirkB Wozu braucht man dann eigentlich 2D-Arrays?
Ich mein der Compiler sieht ja eh nur dass man m*n Felder hat.
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@DirkB Wozu braucht man dann eigentlich 2D-Arrays?...
DU brauchst in diesem Fall keine 2D Arrays.
-
@DocShoe Ich hab halt eines der Übersicht wegen genommen. Aber es damit voll an die Wand gefahren
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@DirkB Wozu braucht man dann eigentlich 2D-Arrays?
Ich mein der Compiler sieht ja eh nur dass man m*n Felder hat.Ja, aber für den Programmierer ist der Zugriff einfacher.
Wo werden die gebraucht,
In der struct können Elemente von unterschiedlichen Typen zusammen gefasst (und benannt) werden.Wenn du aber nur einen Typ hast, reicht ein Array aus.
Wenn du mehrere Arrays davon brauchst, machst du ein Array von einem Array.
z.B. Bilder (Bitmap), Matritzen, Spiele (Schiffe versenken, Schach)
-
@JTR666 sagte in Was mach ich diesmal falsch?:
Ich hab halt eines der Übersicht wegen genommen.
Du hast BASIC in C++ programmiert.
-
@DirkB Uuups
Aber hey! Sowas sieht man auch nicht alle Tage!
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@DirkB Uuups
Aber hey! Sowas sieht man auch nicht alle Tage!BASIC hat auch Ursprünge in Fortran und es ist ja bekannt, dass:
"You can write Fortran in any language"