sortieren in Turbo Pascal

  • Benötige Hilfe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • sortieren in Turbo Pascal

    hallo,

    wir sollen eine Art Einkaufsprogramm machen und zur Zeit sind wir dabei das sortieren einzubinden. Dabei wird der Artikelname und darauf Stückzalh und Preis abgefragt. In der Endausgabe werden die Artikel alphabetisch sortiert, jedoch schaffe ich es nicht dass er auch die entsprechenden Stückzahlen und Preise dann auch mitsortiert. Wenn man zb "zwei" und "eins" eingibt dreht er diese zwar in der Ausgabe um, jedoch macht er dies dann nicht mit dem Preis und Stückzahl. Hoffe ihr könnt helfen :)


    Brainfuck-Quellcode

    1. PROGRAM einkaufsliste;
    2. USES crt;
    3. VAR anzahl :integer;
    4. artikel :ARRAY[1..50] OF string;
    5. stueck :ARRAY[1..50] OF integer;
    6. preis :ARRAY[1..50] OF real;
    7. summe :real;
    8. tausch :string;
    9. zaehler,zaehler1 :integer;
    10. {---------------------------------------------------------}
    11. PROCEDURE sortieren;
    12. BEGIN
    13. For Zaehler1:=1 To anzahl Do
    14. For Zaehler:=(zaehler1+1) To anzahl Do
    15. If artikel[zaehler1] > artikel[zaehler] Then
    16. Begin
    17. Tausch:=artikel[zaehler1];
    18. artikel[zaehler1]:=artikel[zaehler];
    19. artikel[zaehler]:=Tausch;
    20. End;
    21. END;
    22. {---------------------------------------------------------}
    23. PROCEDURE eingaben;
    24. BEGIN
    25. writeln('Artikelzahl eingeben...');
    26. readln(anzahl);
    27. FOR zaehler:= 1 TO anzahl DO
    28. BEGIN
    29. writeln('Name des ',zaehler,'. Artikels eingeben...');
    30. readln(artikel[zaehler]);
    31. writeln('Stckzahl eingeben...');
    32. readln(stueck[zaehler]);
    33. writeln('Preis eingeben...');
    34. readln(preis[zaehler]);
    35. END;
    36. END;
    37. {---------------------------------------------------------}
    38. PROCEDURE ausgabe_liste;
    39. BEGIN
    40. writeln('------------------------------------------------------------------');
    41. writeln(' Nr.: Artikel Stck Einzelpreis/euro Gesamtpreis/euro ');
    42. writeln('------------------------------------------------------------------');
    43. BEGIN
    44. FOR zaehler:= 1 TO anzahl DO
    45. writeln(zaehler,artikel[zaehler]:15,stueck[zaehler]:15,preis[zaehler]:15:2,((stueck[zaehler])*(preis[zaehler])):15:2);
    46. writeln
    47. END;
    48. END;
    49. {---------------------------------------------------------}
    50. PROCEDURE ausgabe_summe;
    51. BEGIN
    52. summe:= 0;
    53. FOR zaehler:= 1 TO anzahl DO
    54. summe := summe + stueck[zaehler] * preis[zaehler];
    55. writeln('Summe: ',summe:54:2,' Euro');
    56. END;
    57. {------------------------HP-------------------------------}
    58. BEGIN
    59. clrscr;
    60. eingaben;
    61. clrscr;
    62. sortieren;
    63. ausgabe_liste;
    64. ausgabe_summe;
    65. readln
    66. END.
    Alles anzeigen
  • du hast ja auch nicht den preis und die stueckzahl mitgetauscht in deiner sortierroutine

    If artikel[zaehler1] > artikel[zaehler] Then
    Begin
    Tausch:=artikel[zaehler1];
    artikel[zaehler1]:=artikel[zaehler];
    artikel[zaehler]:=Tausch;
    ** das dann auch mit steuckzahl und preis **
    Tausch:=stueckzahl(zaehler1];
    stueckzahl[zaehler1]:=stueckzahlartikel[zaehler];
    stueckzahlartikel[zaehler]:=Tausch;

    Tausch:=preis(zaehler1];
    preis[zaehler1]:=preis[zaehler];
    preis[zaehler]:=Tausch;


    End;



    so ungefaehr , dann aenern sich name , steuckzahl und peis immer gelichzeitig und bleiben so immer zusammen

    gruss
    bobb
  • DAs ist ja mal nen geniales Hilfsmittel obwohl ich es noch etwas siniger finde wenn die Sachen auf dem Einkaufszettel stehen würden wie ich sie auch im Supermarkt finde. Z.B. Obst und Gemüse ganz oben dann Brot usw.. Aber so schon ne super hilfe.