[ need help pascal ] Zahlensortierprogram

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Korium, 21. Februar 2005 .

Schlagworte:
  1. 21. Februar 2005
    Moin moin !

    Hab da ganz schieke Hausaufgaben @ Turbopascal auf, und zwar soll ein Programm, von dem Benutzer Zahlen einlesen die er eingibt, und diese dann von klein aufsteigend sortieren und ausgeben.

    z.B. User gibt 57123 ein
    Prog gibt aus 12357

    Hab schonmal angefangen, aber da ich kA wie ich das machen soll hab hab ich das an der Stelle mal ausgelassen.

    program zahlensortierung;
    uses crt;

    var zahlen:integer;

    begin
    clrscr;
    writeln (' dann gib mal dein Zahlensortiment ein! ');
    readln (zahlen);
    ...
    end.

    ja echt kein Plan wie das funktionieren soll, wäre cool wenn jemand code vervollständigen könnte,

    greeTz
    Korium
     
  2. 21. Februar 2005
    Code:
    Program Sortieren;
    
    uses crt;
    
    Const MaxFeld = 10;
    
     a = Array[1..MaxFeld] Of integer;
    
     i,j,hilfe : Integer;
    
    Begin
     for i:=1 to MaxFeld do begin 
     Write ('Zahl eingeben : ');
     ReadLn(a[i]);
     end;
    
     for i:= 1 to (MaxFeld-1) do begin
     for j:= 2 to MaxFeld do begin
     hilfe := Feld[i];
     Feld[i] := Feld[j];
     Feld[j] := Hilfe
     end;
     end;
    
     for i:=1 to MaxFeld do begin 
     Write (a[i]+' '); 
     end;
    ReadLn;
    End.
    
    

    müsste so in etwa passen
     
  3. 21. Februar 2005
    danke, sind aber noch Fehler drinne die ich nicht ausmerzen kann, da ich noch nichts mit arrays zu tun hatte, trotzdem BIG THX!

    greeTz
    Kori
     
  4. 21. Februar 2005
    Hmm.... jetzt ist die Frage, ob das Einlesen der Zahlen so gewollt ist. Denn in deinem Code muss jede Zahl einzeln eingegeben werden, wenn ich das #1 Posting richtig verstanden habe, werden alle Zahlen auf einmal eingegeben. Ausserdem MUSS der Benutzer jetzt 10 Zahlen eingeben, was auch nicht im Sinne des Erfinders sein kann.

    Wenn ich jetzt wüsste, wie man in einer Variable (z.B. mynumber = 71938) auf jedes einzelne Zeichen (7, 1, 9, ...) zugreifen kann um das z.B. in einer temp-Variable zwischenzuspeichern, könnte ich dir evt. helfen den Sortieralgorithmus brauchste aber auf jeden Fall.
     
  5. 21. Februar 2005
    naja wenn man jetzt 837412 eingibt, kann man ja mit lenght die anzahl der zeichen abzählen, somit hätten wir das geklärt. und dann sollen die halt in 123478.. aufgezähl werden , kriegs voll nicht gebacken ;(
     
  6. 21. Februar 2005
    Das einfachste Verfahren um ein Array zu sortieren nennt sich "Bubblesort", wenn du mal nach: bubblesort pascal
    googlest, wirst du jede Menge Beispielprogramme finden!
     
  7. 22. Februar 2005
    Die Länge bringt dir aber nicht wirklich was, wenn du nicht auf die einzelnen Zeichen zugreifen kannst... gibt's nicht 'ne Funktion wie CharAtPos oder sowas? Hab seit Ewigkeiten nix mehr in Delphi gemacht...

    Wenn man sich das Listing oben anschaut, findet man das auch......
     
  8. 22. Februar 2005
    Habs gepackt ;]

    Code:
    program sortieren;
    uses crt;
    var A, B, C:integer;
    procedure tauschen (var x, Y:integer);
    var zwischenwert:integer;
    begin
    zwischenwert :=X;
    X:= Y;
    Y := Zwischenwert ;
    end;
    begin
    clrscr;
    writeln ('1zahl');
    readln (A);
    writeln ('2zahl');
    readln (B);
    writeln ('3zahl');
    readln (C);
    if A > B then tauschen (A,B);
    if B > C then tauschen (B,C);
    if A > B then tauschen (A,B);
    writeln ('',A,' - ',B,' - ',C,'');
    readkey;
    end.
    greeTz
     
  9. 22. Februar 2005
    Hättest mal zur Aufgabenstellung hinzufügen können, dass die Anzahl der Zahlen begrenzt sein soll ich dachte, ich kann "23784", aber auch "9387535093" eingeben
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.