Hi,
ich versuche in der Programmiersprache Pascal einem längernen Array verschieden Werte zu zuweisen.
Ein Beispiel was mir helfen würde, wenn mir jemand erklärt, wie ich bei einem
x=array[1…100]
für x= 1 bis 2 den Wert y(x)= x/2 (wobei x die Array Zahl des Arrays ist, in dem Fall 1 bzw 2)
und für x=3 bis 50 jewals y(x)=x/3
für x=51 bis 100 y(x)=y(x-20)/5
ich bitte um Lösung oder weitere Fragen, falls ich es unklar formuliert habe… verstehe nämlich die Verknüpfung von Werten in Abhängigkeit der Zahl des Arrays nicht ganz…
PROGRAM Demo;
VAR
Y : ARRAY[1 … 100] OF REAL;
X : INTEGER;
BEGIN
FOR X := 1 TO 2 DO Y[X] := X / 2;
FOR X := 3 TO 50 DO Y[X] := X / 3;
FOR X := 51 TO 100 DO Y[X] := Y[X - 20] / 5;
END.
ich hoffe mal, ich habe deine Frage richtig verstanden.
Am Einfachsten ist es, das über drei Schleifen zu erledigen:
program Wertzuweisung;
uses crt;
var x:array[1…100] of real; {das Array}
zaehler:byte; {Hilfsvariable für die
Schleife}
begin
for zaehler:= 1 to 2 do x[zaehler]:=zaehler/2;
for zaehler:= 3 to 50 do x[zaehler]:=zaehler/3;
for zaehler:=51 to 100 do x[zaehler]:=(zaehler-20)/5;
end.
Falls noch Fragen sind, helfe ich dir gern weiter.
procedure tobi(const n: integer; var x: array of double);
var
i: integer;
begin
setlength(x,n+1);
for i:=1 to 2 do begin
x[i]:=i/2;
end;
for i:=3 to 50 do begin
x[i]:=i/3;
end;
for i:=51 to n do begin
x[i]:=(i-20)/5;
end;
end;
Danke für die schnellen Lösungen,aberb das Problem wurde mir jetzt erst klar.
Ich versuch mein Problem jetzt richtig zu schldern.
Und zwar soll beim Array von 1-100 jedes Feld einen Wert bekommen, der sich auf den WERT der vorigen Felds bezieht.
Bsp:x= array 1-100
Wert von feld 1:=1
wert von feld 2=: wert von feld 1 geteilt durch 2
wert von feld 3:= wert von feld 1 geteilt durch 2 + wert von feld 2geteilt durch 2
wert von feld n(außnahme 1 und 2):=wert von feld (n-2)/2 +wert von feld (n-1)/2
so ein Programm wäre super… das kann man zwar auch als Gleichung schreiben, aber da ich auf dem Programm noch Sachen abstimmen muss, erweitern und ändern später, brauche ich das Programm.
Danke im Vorraus.
x[1]:=1;
x[2]:=x[1]*0.5;
for i:=3 to 100 do begin
x[i]:=(x[i-1]+x[i-2])*0.5;
readln
end.
Viele Gruesse
Veit
ja genau soweit komme ich auch, aber er zeigt bei mir fehler an. Irgendwas hab ich bei der definition von x und i falsch gemacht:frowning:, dabei kann man da doch nichts mehr falsch machen, bitte nochmals um Hilfe