Pascal programm

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

  • Pascal programm

    Hallo,

    ich habe beim folgenden Pascalprogramm ein Problem
    siehe Pascal: Sortierte Zahlenfolgen zusammenfügen

    Leider funktioneirt das bei mir nicht, woran liegt das. bitte um unterstützung.
    danke

    Quellcode

    1. program felder (input, output);
    2. const
    3. GRENZE1 = 5;
    4. GRENZE2 = 8;
    5. GRENZE = 13;
    6. { GRENZE1 + GRENZE2 }
    7. GRENZE1PLUS1 = 6;
    8. GRENZE2PLUS1 = 9;
    9. GRENZEPLUS1 = 14;
    10. type
    11. tIndex1 = 1..GRENZE1;
    12. tIndex2 = 1..GRENZE2;
    13. tIndex = 1..GRENZE;
    14. tIndex1Plus1 = 1..GRENZE1PLUS1;
    15. tIndex2Plus1 = 1..GRENZE2PLUS1;
    16. tIndexPlus1 = 1..GRENZEPLUS1;
    17. tFeld1 = array [tIndex1] of integer;
    18. tFeld2 = array [tIndex2] of integer;
    19. tFeld = array [tIndex] of integer;
    20. var Feld1 : tFeld1;
    21. Feld2 : tFeld2;
    22. Feld : tFeld;
    23. i : tIndex1Plus1;
    24. j : tIndex2Plus1;
    25. k : tIndexPlus1;
    26. begin
    27. { sortierte Felder einlesen }
    28. writeln ('Bitte', GRENZE1:2, ' Werte des ersten Feldes ',
    29. 'sortiert eingeben!');
    30. for i := 1 to GRENZE1 do
    31. readln (Feld1[i]);
    32. writeln ('Bitte', GRENZE2:2, ' Werte des zweiten Feldes ',
    33. 'sortiert eingeben!');
    34. for j := 1 to GRENZE2 do
    35. readln (Feld2[j]);
    36. repeat
    37. if (i <= Grenze1) and (j <= Grenze2) then
    38. begin
    39. if Feld1[i] <= Feld2[j] then
    40. begin
    41. Feld[i+j-1]:=Feld1[i];
    42. i:=i+1;
    43. end
    44. else
    45. begin
    46. Feld[i+j-1]:=Feld2[j];
    47. j:=j+1;
    48. end;
    49. end
    50. else
    51. if (i<=Grenze1) and (j>Grenze2) then
    52. begin
    53. Feld[i+j-1]:=Feld1[i];
    54. i:=i+1;
    55. end
    56. else
    57. if (i>Grenze1) and (j<=Grenze2) then
    58. begin
    59. Feld[i+j-1]:=Feld2[j];
    60. j:=j+1;
    61. end;
    62. until (i>Grenze1) and (j>Grenze2);
    63. writeln ('Das Ergebnisfeld ist:');
    64. for k := 1 to GRENZE do
    65. write (Feld[k]:8);
    66. writeln
    67. end. { merge }
    Alles anzeigen
  • Hallo
    Kann hier keiner weiterhelfen

    Die Ausgabe musste zum Beispiel folgendemasseb aussehen

    Feld1 enthalte die Elemente 11, 14, 18, 80, 100,
    Feld2 die Elemente 8, 11, 11, 17, 22, 30, 55, 70.
    Feld enthält dann nach der Ausführung des Programms
    die Elemente 8, 11, 11, 11, 14, 17, 18, 22, 30, 55, 70, 80, 100

    Wir gehen davon aus dass die Zahlen in sortierter Reihenfolge eingegeben worden sind, dies muss nicht überprüft werden.