Autor Beitrag
dezreena
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 30.05.07 13:52 
hallo leute,

ich bin Anfänger in Delphi.Ich habe Fragen über nullbasierten arrays.


Ich will meine Arrays mit 0 beginnen.Wie soll ich den code schreiben?

z.B mit VB.NET :

for i= 0 to 5

danke schon!!
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Mi 30.05.07 14:02 
user profile icondezreena hat folgendes geschrieben:
Ich will meine Arrays mit 0 beginnen.Wie soll ich den code schreiben?

Arrays sind in Delphi standardmäßig nullbasiert.
siehe dazu auch den crashkurs von christian stelzmann: www.christian-stelzm....htm#statischearrays
dezreena Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 31.05.07 14:39 
hallo azubi_20,

ich habe noch fragen über meine untere Programm.Ich habe schon initialiseren Einfallzeitpkt mit random generator.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Einfallzeitpkt[1]= 1,23
Einfallzeitpkt[2]=0,45
.
.
.
Einfallzeitpkt[10]=2,3


aber, wenn Min:=Zeitpunkt[0] in ( function minZeitpunkt), gibst es eine Werte oda nicht?
Weil ich nur initialiesieren ab i= 1 habe.


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
implementation

uses EndErgeb, ZwErgeb, BedEinr;

{Initialisierung der Systemelemente und Start der Simulation}
procedure TEingabefenster.StartButtonClick(Sender: TObject);
begin
randomize;
Zubringer:=TZubringer.initialisieren(StrToFloat(AngebotEdit.Text,StrToFloat(BelDauerEdit.Text));

naechstRufeinfall:=minZeitpkt(Zubringer.Einfallzeitpkt, Zubringer.Anzahl);
end;


(****** Methoden der Klasse TZubringer ************)
constructor TZubringer.initialisieren(einAngebot,einMittlBelDauer:Real);
var i:Byte;
begin
Anzahl:= 10;
Angebot:=einAngebot;
MittlBelDauer:= einMittlBelDauer;
for i:= 1 to Anzahl do
    Einfallzeitpkt[i]:=einfallAbstand(Angebot,MittlBelDauer);
end;


{Berechnet Einfallsabstand}
function TZubringer.einfallAbstand(A:Real; ta:Real):Real;
begin
result:=-ln(1-random)*ta/(A/Anzahl);
end;

(**************************************************************)


{sucht die niedrigste Zeit aus einem Array(0 bis Anzahl)}
function minZeitpkt(Zeitpunkt:array of Real; Anzahl:Byte):Ereignis;
var k,i:word;
    Min:Real;
begin
if Anzahl > 0 then
 begin
 k:=1;
 Min:=Zeitpunkt[0];
 for i:=1 to Anzahl-1 do
     if Min > Zeitpunkt[i] then
     begin
     Min:= Zeitpunkt[i];
     k:= i+1;
     end;
 Result.Zeitpunkt:=Min;
 Result.Nr:=k;
 end
else Result.Zeitpunkt:=Infinit;
end;


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Do 31.05.07 17:24 
Also erstmal : Versuche dich bitte in ordentlicher Rechtschreibung und Grammatik zu äußern. :mahn:
Dann würden dir bestimmt noch andere antworten.

Zu deiner Frage:
Initialisiere in deinem Array doch einfach auch das erste Element, also mit dem Index 0. Dann ist da auch ein Wert drin.

Beispiel :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
randomize;
//weise den ersten 10 Elementen einen Wert zu
for i := 0 to 9 do
  begin
    Einfallzeitpkt[i]=random(10)+1; {dem Element wird eine Zufallszahl von 1 bis 10 zugewiesen}
  end;


btw.: Vielleicht solltest du dir erstmal etwas Grundlagenwissen aneignen.