Autor Beitrag
Novilos
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.02.06 21:40 
Hi,
bin ein ziemlicher Anfänger, bin aber inzwischen bis zu den arrays vorgedrungen.
Aber ich versteh die Hilfe in Delphi 3.0 bezüglich Arrays nicht genau und darum wollte ich fragen, ob mir jemand erklären kann, wie man arrays deklariert und wie man elemente hinzufügt/entfernt.
Das wäre ein große Hilfe für mich
Danke im Vorraus
Mfg
Novilos
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mo 13.02.06 21:53 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
arr : array[1..100of integer;

//Hinzufügen
arr[gewünschter_index]:=1909;


Entfernen - wenns keine dynamischen sind, dann ist der Speicherplatz reserviert (glaub ich) - dann ist nichts mit Entfernen. Du kannst höchstens den String als '' machen oder integer auf 0 setzen.

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mo 13.02.06 22:02 
hallo!

einen array typ deklarieren:
ausblenden Delphi-Quelltext
1:
2:
TYPE Ta = Array[-100..100of Boolean;
VAR a, b: Ta;


Ansonsten wozu man arrays beispielsweiße benutzt:

Die konventionelle Möglichkeit um 15 Zufallszahlen zu erzeugen...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var z1,z2,z3,z4,z5,z6,z7,z8,
    z9,z10,z11,z12,z13,z14,z15: integer;
BEGIN
randomize;  // auf antrag von Koller 
 z1  := random(100
 z2  := random(100
 z3  := random(100
 z4  := random(100
 z5  := random(100
 z6  := random(100
 z7  := random(100
 ...
 z15 := random(100
end;

Und die selbe aufgabe mit einem Array:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
..
var a: array[1..15of Integer;
    i: byte;
begin
randomize;  // auf antrag von Koller  
for i := 1 to 15 do
  z[i] := random(100);
;)


Zuletzt bearbeitet von Marc. am Mo 13.02.06 22:11, insgesamt 1-mal bearbeitet
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mo 13.02.06 22:05 
Hast du nicht randomize vergessen? :mrgreen: :P

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Fädas
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 73

Win XP
Delphi 5
BeitragVerfasst: Mo 13.02.06 22:25 
// EDIt: egal vergesst es einfach
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mo 13.02.06 22:28 
was sollen wir vergessen?
wie wäre es, wenn du ihm anstelle von sinnloser kritik, erklärst, was es sich mit arrays auf sich hat? :roll: :wink:
Fädas
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 73

Win XP
Delphi 5
BeitragVerfasst: Mo 13.02.06 22:32 
Ich wollte sagen, dass du wohl randomize geschrieben hast, aber das hast du ja einfach später verändert, oder?
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mo 13.02.06 22:34 
ah,
ich hatte zunächst randomize; vergessen, nachdem mich koller aber, darauf so freundlich hingewießen hatte, habe ich es einfach editiert :lol:
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mo 13.02.06 22:37 
user profile iconNoTVerYEvilPzYchO hat folgendes geschrieben:
ah,
ich hatte zunächst randomize; vergessen, nachdem mich koller aber, darauf so freundlich hingewießen hatte, habe ich es einfach editiert :lol:


Sorry falls das falsch rübergekommen ist. :wink:

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Fädas
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 73

Win XP
Delphi 5
BeitragVerfasst: Mo 13.02.06 22:43 
KP, war nur am Anfang zu blöd das Kommentar zu sehen ^^
Novilos Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.02.06 23:08 
Hi,
erstmal vielen Dank für die Antworten!
Hab das mit dem Reinschreiben und Deklarieren verstanden.
Jetzt noch: Wie liest man sie aus? Wenn ich z.B. das dritte Element in einem Editfeld ausgeben will o.Ä.?
MfG
Novilos


Zuletzt bearbeitet von Novilos am Mo 13.02.06 23:16, insgesamt 1-mal bearbeitet
Fädas
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 73

Win XP
Delphi 5
BeitragVerfasst: Mo 13.02.06 23:11 
ausblenden Delphi-Quelltext
1:
edit1.text:=arr[3];//ausgeben des dreitten Elements im Array					
Novilos Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.02.06 23:15 
ok gut das klappt soweit!
Noch eine Frage :)
Kann man einstellen, dass keine Zahl doppelt vorkommen darf?
Hab mal die ersten 8 alle in Edits ausgegeben und da waren manchmal einige doppelt.
Mfg
Novilos
Fädas
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 73

Win XP
Delphi 5
BeitragVerfasst: Mo 13.02.06 23:22 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
for i:=1 to 6 do //Array füllen mit 0 d.h: alle 6 Elemente kriegen die 0 zugewiesen(muss nicht sein)
begin
zahl[i]:=0
end;

randomize;

repeat
a:=random(49)+1;      
b:=random(49)+1;
c:=random(49)+1;
d:=random(49)+1;
e:=random(49)+1;
f:=random(49)+1;
until (b<>a)and(c<>a) and (c<>a)and(c<>b)and(d<>a)and(d<>b)and(d<>c)and(e<>a)and(e<>b)and(e<>c)and(e<>d)and(f<>a)and(f<>b)and(f<>c)and(f<>d)and(f<>e);
//Die schleife läuft solange, bis alle variablen ungleich sind


vielleicht geht das auch kürzer(ist aber eigentlich nicht so viel)
Novilos Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.02.06 23:34 
yeah super!
Vielen Dank euch!
Ihr habt mir sehr geholfen!
Bis zu nächsten Frage
Mfg
Oli
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Di 14.02.06 00:05 
ich glaub zu arrays soltle man noch erwähnen das es mehr dimensionale gibt, alle beispiele bisher waren eindimesionale

ausblenden Delphi-Quelltext
1:
2:
var  
arr : array[1..100,1..100of integer;


dies ist ein zweidimensionaler, wenn ich mich nicht irre kann man das ziemlich bis fast in die unendlichkeit forsetzen, das macht z.b. sinn für ein 2D spielfeld, was aus einzelnen feldern besteht, so hat man in dem beispiel zugriff auf 10000 variablen vom typ integer. und das alles von hand zu dimensioniern wäre doch ein wenig aufwendig ;D
und es ist recht einfach auf arrays mit zählschleifen zuzugreifen, da man statt der zahl arr[1,1] z.b. schreiben, kann arr[var1,var2]