Problem mit FreePascal

  • Einen wunderschönen Mittag alle miteinander,
    ich habe folgendes Problem:
    Ich besuche zur Zeit die 12 Klasse und es läuft auch eigentlich alles ganz Rund.... das einzige Problem ist der Informatik-Unterricht! Informatik ist für mich ein Pflichtfach und ich muss es noch bis in die 13. hinein belegen, ich hab aber leider nicht den geringsten Schimmer davon, geschweige denn Zeit und Lust es zu lernen!
    Ich hab das seit 2 Jahren und am Anfang liefs gut und es hat echt Spass gemacht (Nicki der Roboter :P ),
    dann folgte ein Lehrerwechsel und wir sind einfach mal eben rüber zu Pascal gesprungen, was dazu führte, dass 3/4 des Kurses nichts mehr gerafft hat.

    Jetzt sollen wir ein Programm schreiben (in FreePascal), in dem man verschiedene Sortierverfahren auswählen und verwenden kann (Bubblesort, Quicksort, Insertion Sort und Selection Sort).
    Mein Problem ist, dass ich keine Ahnung von Pascal habe und da ich es nur noch ein halbes Jahr belegen muss, habe ich natürlich auch mangelnde Amitionen es mir noch zu Gemüte zu führen.
    Meine Frage:
    Kann mir irgendjemand, dem das vllt. sogar Spass machen würde, das Programm schreiben? Wir haben auch von unserem Lehrer eine Art "Rohling" bekommen in den man wohl nur noch die Algorithmen einfügen muss.
    Ich weiß dass das hier kein "Hausaufgaben-erledigungs-Forum" ist, aber ich wäre durchaus bereit mich irgendwie erkenntlich zu erweisen in Bereichen wo ich mich vllt. besser auskenne..

    Naja, hier der Rohling (den ich leider auch schon nicht verstehe :P)

    ----------------------
    PROGRAM TestSortieren;
    USES CRT, sort;
    CONST NN = 1000 ;
    TYPE TInhalt= INTEGER;
    TYPE TFeld = ARRAY [ 0 .. NN ] OF TInhalt;
    TYPE TTest = RECORD
    Sorierung : STRING [2];
    AnzahlVergleich : INTEGER;
    AnzahlZuweisung : INTEGER;
    Feldumfang : INTEGER;
    END ;

    TYPE TDatei = FILE OF TTest;

    FUNCTION zufallsbelegung( N : INTEGER ) : TFeld;
    VAR i : INTGER; feld : TFeld;
    BEGIN
    feld[0] := N;
    FOR i := 1 TO feld[0] DO <zufallszuweisung auf feld[i]:= ... >
    zufallsbelegung := feld;
    END ;

    FUNCTION menue : STRING;
    BEGIN
    <Darstellen der moeglichen Sortierarten>
    <Waehlen der beabsichtigten Sortierart -> menue:=... >
    END ;

    PROCEDURE sortierung ( a : CHAR; feld : TFeld );
    VAR test : TTest; ok : BOOLEAN;
    TestDatei : FILE OF Test ;
    BEGIN ok := TRUE;
    CASE upcase(a[1]) OF
    'B' : IF upcase(a[2]) = 'U' THEN
    BEGIN
    Test.Sortierung := 'BU'; {bubble-sort}
    Test.Feldumfang := fdeld[0];
    <feld nach bubblesort sortieren lassen
    und dabei die Anzahl der Vergleiche
    und die Anzahl der Zuweisungen bestimmen:
    Test.AnzahlVergleich := ...
    Test.AnzahlZuweisung := ... >
    END ;
    'D' : IF upcase(a[2]) = 'I' THEN
    BEGIN
    Test.Sortierung := 'DI'; {direct insertion}
    Test.Feldumfang := fdeld[0];
    <feld nach bubblesort sortieren lassen
    und dabei die Anzahl der Vergleiche
    und die Anzahl der Zuweisungen bestimmen:
    Test.AnzahlVergleich := ...
    Test.AnzahlZuweisung := ... >
    END ELSE
    IF upcase(a[2]) = 'S' THEN
    BEGIN
    Test.Sortierung := 'DS'; {direct selection}
    Test.Feldumfang := fdeld[0];
    <feld nach bubblesort sortieren lassen
    und dabei die Anzahl der Vergleiche
    und die Anzahl der Zuweisungen bestimmen:
    Test.AnzahlVergleich := ...
    Test.AnzahlZuweisung := ... >
    END ELSE ok := FALSE;
    'Q' : IF upcase(a[2]) = 'S' THEN
    BEGIN
    Test.Sortierung := 'QS'; {Quicksort}
    Test.Feldumfang := fdeld[0];
    <feld nach bubblesort sortieren lassen
    und dabei die Anzahl der Vergleiche
    und die Anzahl der Zuweisungen bestimmen:
    Test.AnzahlVergleich := ...
    Test.AnzahlZuweisung := ... >
    END ;
    ELSE ok := FALSE;
    END {case};
    IF ok THEN < Benennen der Testdatei; oeffnen der Testdatei;
    An das Ende der TestDatei springen;
    Speichern des Ergebnisses in der TestDatei;
    writeln(' Die gewnschte Sortierart ',a,' ist durchgefhrt und abgespeichert: ', Test.AnzahlVergleich,' Vergleiche, ',TestAnzahlZuweisung,' Zuweisungen.');>
    ELSE writeln(' Die gewnschte Sortierart ',a,' ist nicht vorgesehen.');
    END ;


    VAR wunsch : STRING [2];
    feld : TFeld ;
    N : INTEGER;

    BEGIN

    REPEAT
    <Feldbelegung -> feld:=zufallsbelegung(N) >;
    <gewuenschte Sortierrung ermitteln -> wunsch:= menue >
    WHILE NOT ( UPCASE(wunsch[1]) IN ['N', 'Q'] DO
    BEGIN
    sortierung( wunsch, feld );
    ...
    wunsch := menue ;
    END ;
    write(' Sind weitere Sortiertests gewnscht? '); readln( wunsch );
    UNTIL UPCASE(wunsch[1] IN ['N','Q'];

    readln;
    < Auswertung der TestDatei >
    readln;

    END .
    ------------------------

    ich habe auch mal die .pas-Datei bei Rapidshare hochgeladen
    http://rapidshare.com/files/399624270/SortTest.pas.html


    Es wäre echt wunderbar wenn sich irgendjemand hier erweichen könnte mir zu helfen
    Lieber Gruß
    Kernseife

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!