![]() |
unendlich viele zahlen
also ich hab ein großes problem.
im informatikuntericht haben wir folgenden code:
Delphi-Quellcode:
und wir sollen jetzt statt nur fünf zahlen eine variable einsetzen, dass man eine beliebige anzahl von zahlen sortieren kann (37, 105, 1398 zahlen oder mehr)
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; type zahl=array [1..5] of integer; var z:zahl; i,j,x: integer; begin for i:=1 to 5 do begin write (i, 'Zahl'); readln (z[i]); end; for j:=1 to 4 do begin for i:=j+1 to 5 do begin if z[j]<z[i] then begin x:=z[i]; z[i]:=z[j]; z[j]:=x; end; end; writeln; for i:=1 to 5 do write (z[i]); readln; { TODO -oUser -cConsole Main : Hier Code einfügen } end; end. ich weiß leider nicht, wie das gehen soll. bin totaler delphineuling. :( brauche schnell hilfe! |
Re: unendlich viele zahlen
Statt statischen einen dynamischen Array nehmen:
Delphi-Quellcode:
Dann kann man die größe zur Laufzeit verändern
type zahl=array of integer;
Delphi-Quellcode:
Achtung Index beginnt dann bei 0 nicht 1.
SetLenght( Zahl, <Größe>);
[Edit: Tippfehler korrigiert] |
Re: unendlich viele zahlen
udn wie würde das im quelltext aussehen? (also komplett?)
habs gerade versucht zu ändern, stell mich aber anscheinend zu dumm an .. |
Re: unendlich viele zahlen
Zeig mal deinen angepassten Source
|
Re: unendlich viele zahlen
In Ergänzung zu meinem Vorredner mkinzler, stehen die restlichen Quellcodeteile schon in dem Text, den du hast.
Mit Readln kannst du die Anzahl auf eine weitere Variable einlesen und erstellst dann das dynamische Array und die Forschleifen musst noch an die neue Anzahl anpassen und dann bist eigentlich schon fertig. |
Re: unendlich viele zahlen
Delphi-Quellcode:
das es bei null beginnt, heißt ja nur, dass bei tausend möglichen zahlen dann 999 angegeben werden, oder?
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; type zahl=array of integer; SetLentgh= Zahl, 1000); var z:zahl; i,j,x: integer; begin for i:=1 to 5 do begin write (i, 'Zahl'); readln (z[i]); end; for j:=1 to 4 do begin for i:=j+1 to 5 do begin if z[j]<z[i] then begin x:=z[i]; z[i]:=z[j]; z[j]:=x; end; end; writeln; for i:=1 to 5 do write (z[i]); readln; { TODO -oUser -cConsole Main : Hier Code einfügen } end; end. und wenn man nur 38 eingibt geht das auch? ach man, ich versteh das nicht :( "bist du eigentlich schon fertig" das sagt ihr so leicht .. bis jetzt kann ich mit delphi gerade mal zwei zahlen addieren .. |
Re: unendlich viele zahlen
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; type zahl=array of integer; var z:zahl; i,j,x: integer; anzahl: Integer; begin Anzahl := 0; repeat write (i, '.Zahl (-1 für Ende)'); readln z; if z<>-1 then begin inc(Anzahl); SetLength( zahl, anzahl); zahl[anzahl-1] := z; until z = -1; for j:=0 to Anzahl -1 do //Index beginnt bei 0 und geht bis Anzahl -1 ... |
Re: unendlich viele zahlen
mkinzler:
du hast ein "end;" vergessen! MfG |
Re: unendlich viele zahlen
Hier ist eine alternative Lösung, die sich mehr an deinem Eingangsbeispiel orientiert. In Ergänzung zu mkinzler solltest du jetzt eigentlich das Prinzip verstehen, wie sowas gemacht wird. Wenn du Fragen hast, können diese sicherlich auch geklärt werden.
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; type zahl=array of integer; var z:zahl; i,j,x,Anzahl: integer; begin Writeln('Bitte Anzahl zu vergleichender Zahlen angeben '); readln(Anzahl); SetLength(z, Anzahl); for i:=0 to Anzahl-1 do begin write (i+1, '. Zahl'); readln (z[i]); end; for j:=0 to Anzahl-1 do begin for i:=j+1 to Anzahl-1 do begin if z[j]<z[i] then begin x:=z[i]; z[i]:=z[j]; z[j]:=x; end; end; writeln; for i:=0 to Anzahl-1 do write (z[i]); readln; { TODO -oUser -cConsole Main : Hier Code einfügen } end; end. |
Re: unendlich viele zahlen
sorry aber ich stell mich zu blöd an .. mein delphi ist nur am meckern ..
und die fehler find ich nicht. mal erwartet er '(' findet aber ',' o bwohl in der angegebenen zeile '(' steht .. also manche fehler kann ich ja deuten .. so wie fehlende 'end's und sowas. :( großes :?: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz