Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi unendlich viele zahlen (https://www.delphipraxis.net/130647-unendlich-viele-zahlen.html)

resyiii 11. Mär 2009 18:08


unendlich viele zahlen
 
also ich hab ein großes problem.
im informatikuntericht haben wir folgenden code:

Delphi-Quellcode:
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.
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)
ich weiß leider nicht, wie das gehen soll.
bin totaler delphineuling. :(

brauche schnell hilfe!

mkinzler 11. Mär 2009 18:11

Re: unendlich viele zahlen
 
Statt statischen einen dynamischen Array nehmen:
Delphi-Quellcode:
type zahl=array of integer;
Dann kann man die größe zur Laufzeit verändern
Delphi-Quellcode:
SetLenght( Zahl, <Größe>);
Achtung Index beginnt dann bei 0 nicht 1.
[Edit: Tippfehler korrigiert]

resyiii 11. Mär 2009 18:14

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 ..

mkinzler 11. Mär 2009 18:16

Re: unendlich viele zahlen
 
Zeig mal deinen angepassten Source

BAMatze 11. Mär 2009 18:18

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.

resyiii 11. Mär 2009 18:22

Re: unendlich viele zahlen
 
Delphi-Quellcode:
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.
das es bei null beginnt, heißt ja nur, dass bei tausend möglichen zahlen dann 999 angegeben werden, oder?

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 ..

mkinzler 11. Mär 2009 18:29

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
...

mr_emre_d 11. Mär 2009 18:32

Re: unendlich viele zahlen
 
mkinzler:
du hast ein "end;" vergessen!

MfG

BAMatze 11. Mär 2009 18:34

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.

resyiii 11. Mär 2009 18:36

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 10:19 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz