Was mach ich diesmal falsch?
-
@It0101 Also jede Spalte bekommt einen Datensatz aus der Struct.
Somit steht jede Spalte aus der Tabelle für eine Variable aus der Struct.
Und diese bekommen dann halt in jeder Zeile neue Werte zugewiesen.
6 Werte für ArtNr, 6 für Bez (Bezeichnung), usw.
Diese Werte geb ich dann ein.
Ergo sie werden in den Feldern abgelegt.
(Die Ausgabe ist korrekt, weswegen ich mal davon ausgehen, dass mein Vorgehen so weit nicht falsch ist. Ebenfalls ein Zeichen dafür, dass es die Variablen aus der Struct nicht überschrieben werden...)
Jetzt haben die letzten beiden Spalten noch keine Werte zugewiesen bekommen.
Diese werden dann jeweils mit Werten aus den schon belegten Feldern berechnet.
Denn die Rechnungen kommen ja erst NACH der Werteingabe in die ersten 6 Spalten, womit die Werte zur Berechnung allesamt bekannt sein sollten...
-
@DirkB Wo siehst du das denn bitte?
Das i steht ja nur in der ersten Klammer, womit du mit ArtNr nur die Felder [1][0], [2][0], [3][0], [4][0] & [5][0] belegst... Denn dadurch bleibt die Spalte für ArtNr immer die selbe...
-
@JTR666 sagte in Was mach ich diesmal falsch?:
Der gibt an den Stellen nur völlig komische Werte aus, mit denen ich nichts anfangen kann.
Dann gib dir doch mal die eingegebenen Werte wieder aus.
Mitcout
oder schau sie dir im Debugger an.
Dann weißt du erstmal, ob es auch die erwarteten Werte sind.
-
@DirkB Ich habe sie ausgegeben und die stimmten alle...
-
@JTR666 sagte in Was mach ich diesmal falsch?:
@DirkB Wo siehst du das denn bitte?
Das i steht ja nur in der ersten Klammer, womit du mit ArtNr nur die Felder [1][1], [2][1], [3][1], [4][1] & [5][1] belegst... Denn dadurch bleibt die Spalte für ArtNr immer die selbe...Ja aber das Element [1][1] ist eine komplette struct genauso wie [1][2], [1][3], ...
jedes dieser Elemente enthält alle Member ( von SpaltName bis BestVorschlag )
-
@DirkB Aaahhh, okay...
Ich dachte dass man das mit der Zuweisung .ArtNr als Beispiel verhindern und man sich nur die angegebene Variable der Struct rauspicken würde...
-
@DirkB Wieso klappt dann die Ausgabe so gut?
Das, wundert mich jetzt. Denn dann muss der das doch so machen, dass jedes Feld im Array 9 Plätze (für jede Variable aus der Struct eins) hat und nur den belegten Platz nimmt...
Aber das müsste er doch bei der Berechnung hinterher doch auch machen können...
-
@JTR666 Soll jetzt nicht so klingen, dass ich dir nicht glaube - im Gegenteil!
Ich frag mich nur was er macht, wenn er es ganz offensichtlich so macht wie du es sagst
-
@JTR666 sagte in Was mach ich diesmal falsch?:
Aber das müsste er doch bei der Berechnung hinterher doch auch machen können...
Ja.
cin >> Tabelle[i][5].TagVerbr; cin >> Tabelle[i][6].BestDauer; Tabelle[i][7].MeldBest = Tabelle[i][3].HoeBest - Tabelle[i][6].TagVerbr*(Tabelle[i][7].BestDauer - 2); //Meldebestand berechnen (die Werte kennt er ja, da sie davor eingegeben wurden.)
wenn du immer den gleichen Index verwenden würdest. Für z.B. TagVerbr nimmst du aber einmal 5 und ein anderes mal 6.
-
@manni66 Meinst du wegen der Inkrementierung von i?
-
@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]!