online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
program Hello; Type TStudRec = Record Stu_Name, Stu_Surname : String[40]; Stu_ID, Stu_Age : Integer; Stu_Gender : Char; End; TNodePtr = ^TNode; TNode = Record StudRec : TStudRec; NodePtr : TNodePtr; End; Var Head, Tail : TNodePtr; SampRec : TStudRec; Procedure AddNode(StudRec : TStudRec); Var Node : TNode; Begin Node.StudRec := StudRec; New(Node.NodePtr); If (Head=nil) Then Begin New(Head); New(Tail); Head^ := Node; End Else Begin Tail^.NodePtr^ := Node; End; Tail^ := Node; End; Procedure InsertRecordByIndex(Index : Integer; StudRec : TStudRec); Var i : Integer; TempPtr : TNodePtr; Node, TempNode : TNode; Done : Boolean; Begin Done := False; If Head = nil Then Exit; i := 0; TempPtr := Head; Node.StudRec := StudRec; New(Node.NodePtr); If (Index = 0) Then Begin TempNode := Head^; Head^ := Node; Node.NodePtr^ := TempNode; Done := True; End; If not Done Then While (i < Index-1) do Begin If (TempPtr^.NodePtr^.NodePtr = nil) then Begin Done := True; Break; End; i := i + 1; TempPtr := TempPtr^.NodePtr; End; If not Done Then Begin TempNode := TempPtr^.NodePtr^; TempPtr^.NodePtr^ := Node; Node.NodePtr^ := TempNode; End; End; Procedure InsertRecordByID(ID : Integer; StudRec : TStudRec); Var TempPtr : TNodePtr; Node, TempNode : TNode; Done : Boolean; Begin Done := False; If Head = nil Then Exit; TempPtr := Head; Node.StudRec := StudRec; New(Node.NodePtr); If (TempPtr^.StudRec.Stu_ID = ID) Then Begin TempNode := Head^; Head^ := Node; Node.NodePtr^ := TempNode; Done := True; End; While not Done do Begin If (TempPtr^.StudRec.Stu_ID = ID) Then Break; If (TempPtr^.NodePtr^.NodePtr = nil) Then Begin Done := True; Break; End; TempPtr := TempPtr^.NodePtr; End; If not Done Then Begin TempNode := TempPtr^.NodePtr^; Node.NodePtr^ := TempNode; TempPtr^.NodePtr^ := Node; End; End; procedure DisplayList; Var TempPtr : TNodePtr; Done : Boolean; Begin Done:=false; if Head = nil Then Exit; TempPtr := Head; While not Done do Begin If (TempPtr^.NodePtr^.NodePtr = nil) Then Begin Writeln(TempPtr^.StudRec.Stu_Name); Done := True; Break; End; Writeln(TempPtr^.StudRec.Stu_Name); TempPtr := TempPtr^.NodePtr; End; end; Procedure InitLinkedList; Begin Head := nil; Tail := Head; End; begin InitLinkedList; SampRec.Stu_Name:='dan'; SampRec.Stu_Surname:='araneta'; SampRec.Stu_ID:=1; SampRec.Stu_Age:=19; SampRec.Stu_Gender:='M'; AddNode(SampRec); SampRec.Stu_Name:='mark'; SampRec.Stu_Surname:='juanites'; SampRec.Stu_ID:=2; SampRec.Stu_Age:=19; SampRec.Stu_Gender:='M'; AddNode(SampRec); SampRec.Stu_Name:='Donson'; SampRec.Stu_Surname:='Sadava'; SampRec.Stu_ID:=3; SampRec.Stu_Age:=19; SampRec.Stu_Gender:='M'; AddNode(SampRec); SampRec.Stu_Name:='Karla'; SampRec.Stu_Surname:='Lidres'; SampRec.Stu_ID:=4; SampRec.Stu_Age:=19; SampRec.Stu_Gender:='F'; AddNode(SampRec); DisplayList; end.

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue