PMG/Kurs 11/Felder

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Pascal</language>
== Der Datentyp Feld (Array) ==


Neben den einfachen Datentypen gibt es auch zusammengesetzte, z.B. Felder (auch Listen, Array). 
In einem Array werden Werte gleichen Datentyps gespeichert.

Die Deklaration eines Arrays erfolgt folgendermaßen:
 var xyz: ''array''[startindex .. endindex] ''of'' Datentyp;

startindex..endindex gibt den Bereich zwischen Startwert und Endwert angeben (Randwerte werden mit eingeschlossen).
Dies entspricht dem bereitgehaltenen Speicherplatz.
Über den Index (meist mit <math>i</math> bezeichnet) kann man auf die einzelnen Werte zugreifen.

 var beispiel: ''array''[0..20] ''of'' integer;

Ein Feld wird über den Index gefüllt, z.B. für <math>i=1</math> und <math>i=5</math> so:

 beispiel[1]:=3;
 beispiel[5]:=22;

Das Feld sei dann z.B. so gefüllt ist: [10,3,6,7,9,22,...].<br>
''Bestimmen Sie die Werte, die dann die Variablen <math>a</math> und <math>b</math> nach den folgenden Anweisungen liefern!''

 a:=beispiel[0];
 b:=beispiel[2];


'''weitere Hinweise z.B. unter [http://www.delphi-treff.de/object-pascal/komplexe-datentypen/]'''


== Beispiele zu Feldern ==


=== Zufallszahlen und Felder ===

<code id="4bf2b9d355fac">
function zufall2(a:integer):integer;
begin
result:=random(a);
end;
</code>

<eval id="4bf2b9d357ee5">
var z:array[0..10] of integer;
var i:integer;
begin
for i:=0 to 5 do
begin
z[i]:=zufall2(100);
writeln(inttostr(z[i]));
end;
end.

</eval>

<font color="darkgreen">'''''zum Weiterarbeiten:'''''</font> Füllen Sie ein [[Feld mit 5 zufälligen Zahlen]]. Bestimmen Sie die Position (Index) des Maximums. Lassen Sie sich zur Kontrolle die Zufallszahlen anzeigen.

 var feld:array[0..4]of integer;
 var i,max,index:integer;
 begin
 max:=0;index:=0;
 for i:=1 to 5 do feld[i-1]:=random(100);
 for i:=1 to 5 do 
 if feld[i-1]>max then begin 
                       max:=feld[i-1];
                       index:=i;
                       end;
 for i:=1 to 5 do writeln(inttostr(feld[i-1]));
 writeln('Maximum an Position '+inttostr(index));
 end.