1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Pascal in C

  • Thunder90
  • 14. Dezember 2010 um 10:58
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Thunder90
    Punkte
    70
    Beiträge
    10
    • 14. Dezember 2010 um 10:58
    • #1

    Hallo
    Habe folgendes unter Pascal Programmiert jedoch soll das in C geschrieben werden kann mir einer helfen?

    interface
    type Value = integer;
    VProc = procedure(v : Value);
    List = ^ElemR;
    ElemR = record
    val : Value;
    next : List;
    end;
    twoLists = record
    l1 : List;
    l2 : List;
    end;
    procedure insertend ( rec : list; var first,last : list );
    function mixsort( var l : list ) : list;
    function merge ( l1, l2 : list ) : list;
    function mix ( l1, l2 : list ) : list;
    function split(l : List) : twoLists;
    function getLenght(l : List) : Value;
    ...
    function getLenght(l : list):integer;
    var counter : longint; // Variableninitialisation
    finish : boolean;
    begin
    finish := false; // Endvariable auf false setzen
    counter := 0; // Zählvariable auf 0 setzen
    while(finish = false) do // solange Ende nicht erreicht
    begin
    if(tail(l) = nil) then finish := true else // Wenn aktuelles Elemement = letztes Element
    l := tail(l); // Erstes Element entfernen und
    counter := counter + 1; // die Zählvariable erhöhen
    end; // while
    getLenght := counter; // die Länge zurückgeben
    end; //getLenght
    procedure insertend ( rec : list; var first,last : list );
    begin
    if first = nil then first := rec else last^.next := rec;
    last := rec;
    end;
    function merge( l1, l2 : list ) : list;
    var first, last, temp : list;
    begin
    first := init;
    last := init;
    while l2 <> nil do
    if l1 = nil then begin l1 := l2; l2 := nil end
    else begin
    if l2^.val > l1^.val then
    begin temp := l1; l1 := l1^.next end
    else begin temp := l2; l2 := l2^.next end;
    temp^.next := nil;
    insertend( temp, first, last )
    end;
    insertend( l1, first, last );
    merge := first
    end;
    function mixsort( var l : list) : list;
    var temp : list;
    listen : twoLists;
    n : integer;
    begin
    n := getLenght(l);
    if (l = nil) then mixsort := nil else if n>1 then
    begin
    listen := split(l);
    mixsort := merge( mixsort( listen.l1 ), mixsort( listen.l2 ));
    end
    else
    begin
    temp := l;
    l := l^.next;
    temp^.next := nil;
    mixsort := temp;
    end
    end;
    function mix (l1, l2: List) : List;
    var tmplst : List;
    begin
    tmplst := merge(l1, l2);
    mix := mixsort(tmplst);
    end; // mix

  • spinball
    Punkte
    1.192
    Beiträge
    223
    • 16. Dezember 2010 um 15:25
    • #2

    http://www.garret.ru/ptoc/Readme.htm

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum