Mehrdimensionale Array zusammenfassen
Mehrdimensionale Array zusammenfassen
Tach ihr,
ich bräuchte mal Hilfe bei Folgendem Problem:
Ich habe eine Array aus Array, also Steht an jeder Stelle des Mutterarray wieder ein Array. Wie kann ich auch diesem Array aus Array ein einziges großes Array machen ?
Hat da wer n Code-Snippet für mich ?
Wenn ich zum Beispiel Ein Array, dass an Stelle 1 Das Array 3, 4,5 und an Stelle 2 Das Array 6,7,8 habe, möchte ich am Ende das Array 3,4,5,6,7,8 haben
Lg DocBob
ich bräuchte mal Hilfe bei Folgendem Problem:
Ich habe eine Array aus Array, also Steht an jeder Stelle des Mutterarray wieder ein Array. Wie kann ich auch diesem Array aus Array ein einziges großes Array machen ?
Hat da wer n Code-Snippet für mich ?
Wenn ich zum Beispiel Ein Array, dass an Stelle 1 Das Array 3, 4,5 und an Stelle 2 Das Array 6,7,8 habe, möchte ich am Ende das Array 3,4,5,6,7,8 haben
Lg DocBob
Re: Mehrdimensionale Array zusammenfassen
Kopiere die Werte einfach in ein neues, eindimensionales Array.
Re: Mehrdimensionale Array zusammenfassen
Klar, aber wie genau finde ich da eine universelle Lösung für ? Ich möchte das ja für ein n-Stelliges Mutterarray haben, dass unterschiedlich lange unterarrays hat.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Mehrdimensionale Array zusammenfassen
Ein Array kann nur gleiche Elemente (also "gleichlange" Arrays haben.
Oder sind das dynamische Arrays ?
-Michael
Oder sind das dynamische Arrays ?
-Michael
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2813
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Mehrdimensionale Array zusammenfassen
Also als Ausgang beispielsweise folgendes
und rauskommen soll
Das ist doch eigentlich recht einfach. Du brauchst zwei for-Schleifen. In der ersten gehst du jedes Element des Mutter-Arrays durch, liest die Länge des Kind-Arrays aus und verlängerst dein Ausgabe-Array um diese Anzahl. Dann startet die zweite (innere) for-Schleife. Sie läuft das Kind-Array durch und kopiert jedes Element in das Ausgabe-Array. Dazu nicht vergessen einen Zähler für das Ausgabe-Array mitzuführen, der nach jedem Kopiervorgang inkrementiert wird.
Code: Alles auswählen
[b][color=#FF0000]1 2 3 4 5[/color][/b]
1 4 6 7 10
2 5 8 11
3 9 12
13
Code: Alles auswählen
1 2 3 4 5 6 7 8 9 10 11 12 13
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Mehrdimensionale Array zusammenfassen
und genau da liegt der Kasus Knaxus. Ich weiß nicht wie ich das mitschleife... Habt ihr eventuell n Codebeispiel? Ich bekomms selbst nicht hin. Die Idee wie du hatte ich auch schon, es nur eben selbstnicht hinbekommenm.fuchs hat geschrieben:Also als Ausgang beispielsweise folgendesund rauskommen sollCode: Alles auswählen
[b][color=#FF0000]1 2 3 4 5[/color][/b] 1 4 6 7 10 2 5 8 11 3 9 12 13
Das ist doch eigentlich recht einfach. Du brauchst zwei for-Schleifen. In der ersten gehst du jedes Element des Mutter-Arrays durch, liest die Länge des Kind-Arrays aus und verlängerst dein Ausgabe-Array um diese Anzahl. Dann startet die zweite (innere) for-Schleife. Sie läuft das Kind-Array durch und kopiert jedes Element in das Ausgabe-Array. Dazu nicht vergessen einen Zähler für das Ausgabe-Array mitzuführen, der nach jedem Kopiervorgang inkrementiert wird.Code: Alles auswählen
1 2 3 4 5 6 7 8 9 10 11 12 13
Re: Mehrdimensionale Array zusammenfassen
Was hast du denn schon versucht? Poste mal den Code.DocBob hat geschrieben: und genau da liegt der Kasus Knaxus. Ich weiß nicht wie ich das mitschleife... Habt ihr eventuell n Codebeispiel? Ich bekomms selbst nicht hin. Die Idee wie du hatte ich auch schon, es nur eben selbstnicht hinbekommen
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2813
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Mehrdimensionale Array zusammenfassen
Vielleicht hilft dir das hier weiter:
Code: Alles auswählen
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}CThreads,{$ENDIF}{$ENDIF}Classes;
const
Child0: array[0..2] of Byte = (1, 2, 3);
Child1: array[0..1] of Byte = (4, 5);
Child2: array[0..0] of Byte = (6);
Child3: array[0..2] of Byte = (7, 8, 9);
Child4: array[0..3] of Byte = (10, 11, 12, 13);
var
Eingabe: Array of Array of Byte;
Ausgabe: Array of Byte;
x, y, i: Integer;
b: Byte;
begin
i := 0;
SetLength(Eingabe, 5);
Eingabe[0] := Child0;
Eingabe[1] := Child1;
Eingabe[2] := Child2;
Eingabe[3] := Child3;
Eingabe[4] := Child4;
for x := 0 to (Length(Eingabe) - 1) do begin
SetLength(Ausgabe, Length(Ausgabe) + Length(Eingabe[x]));
for y := 0 to (Length(Eingabe[x]) - 1) do begin
Ausgabe[i] := Eingabe[x, y];
Inc(i);
end;
end;
for b in Ausgabe do Write(b, ' ');
ReadLn;
end.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de