| Autor |
Beitrag |
Platinum
Hält's aus hier
Beiträge: 12
|
Verfasst: Do 07.05.09 09:01
Hallo miteinander,
ich will ein array an meine function übergeben, aber ich hab irgendwo einen Syntaxfehler und komme nicht dahinter :X Ich hoffe mir kann jemand helfen, bin zwar schon über www.delphi-forum.de/...function+%FCbergeben gestolpert,das hat mich aber leider nicht weitergebracht
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:
| program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
function BinSuche(l,r:extended; x:integer; var a: TMyArray):boolean; Var m:integer;
begin While (l<=r) do begin m:=TRUNC((l+r)/2); writeln(m); writeln(l,r,a[10]); if x=a[m] then result:=true; if x<a[m] then BinSuche(m+1,r,a,x) else BinSuche(l,m-1,a:Tmyarray,x); readln; end; if l>r then result:=false; end;
Type TmyArray : array[1..10] of integer; Var x,i:integer; l,r:extended; gefunden:boolean; a:Tmyarray; begin x:=7; l:=1; r:=10; for i:= TRUNC(l) to TRUNC(r) do a[i]:=i;
gefunden:=BinSuche(l,r,a,x); if gefunden then writeln('Die Zahl',x,'wurde gefunden'); if not gefunden then writeln('Die gesucht Zahl ist nicht vorhanden');
readln;
end. |
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Do 07.05.09 09:16
Vielleicht hilft es, den Type vor der Funktion, wo er verwendet wird, zu definieren.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Platinum 
Hält's aus hier
Beiträge: 12
|
Verfasst: Do 07.05.09 11:03
Nein,leider auch nicht 
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Do 07.05.09 11:05
Hallo,
kann es sein, dass du deine Parameter nicht kennst  . Vielleicht solltest du mal die Variablen bennen.
Platinum hat folgendes geschrieben : | 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:
| program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
function BinSuche(l,r:extended; x:integer; var a: TMyArray):boolean; Var m:integer; begin While (l<=r) do begin m:=TRUNC((l+r)/2); writeln(m); writeln(l,r,a[10]); if x=a[m] then result:=true; if x<a[m] then BinSuche(m+1,r,a,x) else BinSuche(l,m-1,a:Tmyarray,x); readln; end; if l>r then result:=false; end;
Type TmyArray : array[1..10] of integer; Var x,i:integer; l,r:extended; gefunden:boolean; a:Tmyarray; begin x:=7; l:=1; r:=10; for i:= TRUNC(l) to TRUNC(r) do a[i]:=i;
gefunden:=BinSuche(l,r,x,a); if gefunden then writeln('Die Zahl',x,'wurde gefunden') else writeln('Die gesucht Zahl ist nicht vorhanden');
readln;
end. | |
Edit: Noch ein Style-Update  .
|
|
Platinum 
Hält's aus hier
Beiträge: 12
|
Verfasst: Do 07.05.09 16:50
x] Vor lauter Code die Variablen nicht mehr sehn
Danke sehr, konnte meinen Code vervollständingen und noch 2 Fehler entdecken  Falls jemand zufällig über Google hier rein stolpert: Binäre, rekursive Suche in Delphi
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: 56: 57: 58: 59: 60: 61: 62:
| program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
Type TmyArray = array[1..10] of integer; Var x,i:integer; l,r:extended; gefunden:boolean; a:Tmyarray;
function BinSuche(l,r:extended; x:integer; var a: TMyArray):boolean; Var m:integer; gefunden2:boolean; begin
While (l<=r) and not gefunden2 do begin m:=TRUNC((l+r)/2); writeln('Wert der Mitte: ',m); if x=a[m] then gefunden2:=true; if x>a[m] then begin l:=m+1; BinSuche(l,r,x,a) end else begin r:=m-1; BinSuche(l,r,x,a); end; end; if l>r then result:=false;
if gefunden2=true then result:=true; end;
begin x:=7; l:=1; r:=10; for i:= TRUNC(l) to TRUNC(r) do a[i]:=i;
gefunden:=BinSuche(l,r,x,a);
if gefunden = true then writeln('Die Zahl "',x,'" wurde gefunden') else writeln('Die gesucht Zahl ist nicht vorhanden');
readln;
end. |
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Do 07.05.09 23:09
Das ist aber ganz schön falsch:
Delphi-Quelltext 55: 56: 57: 58: 59: 60: 61: 62:
| { ... } if gefunden = true then writeln('Die Zahl "',x,'" wurde gefunden') else writeln('Die gesucht Zahl ist nicht vorhanden');
readln;
end. |
Richtig wäre:
Delphi-Quelltext 55: 56: 57: 58: 59: 60: 61: 62:
| { ... } if gefunden then writeln('Die Zahl "',x,'" wurde gefunden') else writeln('Die gesucht Zahl ist nicht vorhanden');
readln;
end. |
Dazu schau dir am Besten mal das hier an. Und um dich mal etwas zu demoralisieren: Damit hast du einen typischen Anfängerfehler gemacht  .
P.S.: Nimms nicht so ernst, am Anfang haben wir das alle mal gemacht.
|
|
jaenicke
      
Beiträge: 19336
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 07.05.09 23:46
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 08.05.09 00:24
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Platinum 
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 08.05.09 16:11
hm..,ok  merk ich mir für die zukunft :] (aber das programm macht bereits was es soll, von daher bin ich schon glücklich  )
In der funktion hab ichs aber richtig gemacht x]
|
|
|