Autor Beitrag
hansebanger
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 05.07.09 16:50 
Hallo!!
Wir haben in unserem Informatik-Unterricht gerade das Thema Array. Das haben wir Namen, Vornamen, Alter, usw. von Schülern gefüllt, die wir dann alphabetisch sortiert haben. Jetzt sollen wir ein Suchprogramm erstellen, bei dem wir den Namen suchen können und uns dir restlichen Angaben liefert. Bis zum Sortieren bin ich gekommen.
Unser Lehrer hat uns so ein Blatt mit "Iterative und rekursrive Mglkeiten von Binäre Suche" gegeben, das aber nich funktioniert...

Könnte mir jemand mal ein Beispielprogramm bitte geben mit einem Array gefüllt mit Zahlen und mann kann dann sagen, wo die Zahl ist...wenns möglich ist, auch ein Suchprogramm für das Studentenprogramm...

MfG,
Hansebanger

P.S.: Hier die zwei SUchmöglichkeiten

Das wäre iterativ:
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:
function binsearch(k:integer):integer;
var m,l,r:integer;
begin
l:=1;
r:=10;
repeat
m:=(l+r)div 2;
if k< semester[i].name
then r:=m-1
else l:=m+1
until (k=semester[i].name or (l>r);
if k= semester[i].name
then binsearch:=m
else binsearch:=0
end;


und das rekursiv:
procedure binsearch (l,r,k:integer);
var m:integer;
begin
m:=(l+r) div 2;
if m=1 then label1.caption:='Ferdisch'
else
begin
if k < semester[i].name
then binsearch(l,m,k)
else if k>semester[i].name
then binsearch (m,r,k)
else label1.caption:='Fisch';
end;
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 05.07.09 16:57 
hallo und :welcome: im DF!

Damit wir den Quelltext besser lesen können setz ihn bitte in die delphi-Tags ([delphi][/delphi]) und rück deinen code bitte schön ein.

danke ;)

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 05.07.09 16:59 
Beim nächsten Mal reicht beim Tippfehler in der Überschrift auch ein Thread. Diesen kannst du nämlich noch immer über das Scheren-Symbol im ersten Post korrigieren. ;)
martin300
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 186
Erhaltene Danke: 2



BeitragVerfasst: So 05.07.09 21:08 
Hallo,

hier ein kleines Beispiel:
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:
procedure TForm5.Button1Click(Sender: TObject);
const
  Name : Array [0..2of String = ('Henkel','Meier','Braun');
  Vorname : Array [0..2of String  = ('Sophie','Peter','Manuel');
  Alter : Array [0..2of Integer = (10,13,12);
var
  i: Integer;
  str : String;
  NameSuche : String;
begin

  // Alle Daten ausgeben
  memo1.Lines.Add('Ausgabe der Daten:');
  for i := 0 to 2 do
  begin
    str := Name[i] + ' ' + Vorname[i] + ' ' + inttostr(Alter [i]);
    memo1.lines.add(str);
  end;

  // Daten von 'Peter' ausgeben
  NameSuche := 'Peter';
  str := '';

  for i := 0 to 2 do
  begin
    if Vorname[i] = NameSuche then
    begin
      str := Name[i] + ' ' + Vorname[i] + ' ' + inttostr(Alter [i]);
    end;
  end;

  // Ausgabe der Daten von 'Peter'
  memo1.Lines.Add('Ausgabe der Suche:');
  if str <> '' then
    memo1.Lines.Add(str);

end;


Es wäre interessant zu wissen, wie die Daten im Array gespeichert sind. memo1 ist die TMemo Komponente und dient zur Anzeige.
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: So 05.07.09 21:39 
I-wie kommt mir das aus meinem Informatikunterricht bekannt vor "Wie geht das? Was steht da?".
Irgendwie haben alle Informatikkurse irgendwelche Probleme mit ihren Schülern.

Eine Array ist wie ein Container mit Schubladen.
ausblenden Delphi-Quelltext
1:
Alter: array[0..2of Integer;					

Wäre demnach eine Schublade mit 3 Fächern (Das 0te fach, das 1te und das 2te).
In jeder Schublade kannst du Ganzzahlen reintun.
Und auslesen geht das ganz einfach mit:
ausblenden Delphi-Quelltext
1:
Showmessage(IntToStr(Alter[0]));					

Wobei in den eckigen Klammern die Position der Schublade steht.