Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Array mit Delphi

The MOD / 3 Antworten / Baumansicht Nickles

Hi,

Ich habe 18 Interger Werte jeweils den Variable P1...P18 und PZ1...PZ18 deklariert!
Nun soll eine For-Schleife mit ihrer Schleifenvariablen "a" den Wert von P[a] und PZ[a] auslesen!

Es kommt aber immer eine Fehlermeldung, ein Array-Typ erforderlich!
Hab aber noch kein valides Array hinbekommen!!

Könnt ihr mir helfen??
Danke im vorraus

bei Antwort benachrichtigen
Andreas42 The MOD „Array mit Delphi“
Optionen

Hi!

Ganz kurz: Arrays werden in Delphi wie im alten Turbo-Pascal deklariert.

var P,PZ:array [1..18) of integer;

Details sind in der Onlinehilfe von Delphi zu finden. Dort solte es den Punkt "Sprachreferenz" (oder was in der Art; ich hab' gerade kein Delphi am anderen Ende des Tastaturkabels) geben.

Falls deine Frage nicht auf diese grundsätzliche Sache zielte, dann gib uns bitte eine andere etwas umfangreichere Erklärung (mit Beispielcode?) als Antwort.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
The MOD Nachtrag zu: „Array mit Delphi“
Optionen

For i:=1 to 18 do
begin
For y:=i to 18 do
begin
P1:=90 ;
P2:=190 ;
P3:=90 ;
P4:=190 ;
P5:=230 ;
P6:=150 ;
P7:=60 ;
P8:=60 ;
P9:=60 ;
P10:=60 ;
P11:=60 ;
P12:=30 ;
P13:=30 ;
P14:=90 ;
P15:=60 ;
p16:=60 ;
p17:=50 ;
p18:=60 ;

PZ1:=50 ;
PZ2:=50 ;
PZ3:=50 ;
PZ4:=60 ;
PZ5:=40 ;
PZ6:=40 ;
PZ7:=40 ;
PZ8:=50 ;
PZ9:=60 ;
PZ10:=70 ;
PZ11:=40 ;
PZ12:=150 ;
PZ13:=150 ;
PZ14:=150 ;
PZ15:=90 ;
PZ16:=190 ;
PZ17:=190 ;
PZ18:=150 ;



P:=P[i]+Pz[y];

If (y-i)=0 then
q:=p
else
q:=p/(y-i) ;

Also so funktioniert es nicht!!!!!


Es liegt am P[i] und P[y], laut Debuger!!
Ich habe die ganzen P,PZ als Integer und das q als Real deklariert und zusätzlich
das Array, so wie von dir beschrieben, lokal deklariert!!!
Funktioniert nicht!!!! Wenn ich die Integers stehen lasse kommt die Fehlermeldung "redefinierung" und wenn ich nur das array stehen habe kommt "undefiniert..."

Also was muss ich tun??


mfg the_mod

bei Antwort benachrichtigen
Andreas42 The MOD „For i: 1 to 18 do begin For y: i to 18 do begin P1: 90 P2: 190 P3: 90 P4: 190...“
Optionen

Hi!

Es ist nicht möglich einfach einzelne Variablen wie einen Array zu benutzen. Du musst das schon konsequent durchziehen: wenn du einen Array brauchst, dann arbeite auch durchgehend mit dem Array.

Also in Kurzform:

var
P, PZ: array [1 .. 18 of integer;
PSumme: integer;

(hier kommt was anderes)

{Initialisierung des Arrays:}
P[1] := 90;
P[2] := 180;
(usw...)

PZ[1] := 50;
PZ[2] := 50;
(usw...)

{Jetzt kommt die Schleife:}
for i:= 1 to 18
begin
PSumme:=PSumme + P[i]; {nur ein Beispiel}
end;

Die Doppeldeklaration ist daurch ausgelöst worden, weil die die Vraiable P einmal als Array und einmal als Integer nutzen wolltest und sie warscheinlich zweimal angelegt hast.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen