[Prog] Broncode Reeks 4

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Nickman
Posts: 391
Contact:

Post#16 » Mon Nov 21, 2005 6:05 pm

Hier is mijn code ;)
Ik heb wel overal ook mogelijkheden om ranked in te voegen enz. bijgevoegd (dacht dat dat misschien ooit wel handig kan zijn ;))
Is dan ook net iets langer... :D


UPDATE: Ik heb zonet de tweede oefening ook af gemaakt en toegevoegd.

Stack.Mod

Code: Select all

(* 
	Doel: Besisoperaties uitvoeren op een stack.
	Auteur: Nick De Frangh
	Datum: 21-11-2005
*)

	IMPORT
		OutExt;
		
	TYPE
		STACK* = POINTER TO Lijst;
		Lijst* =
			RECORD
				getal : REAL;
				next: STACK;
			END;
	
	PROCEDURE New* (n: REAL): STACK;
	(* 
      Omschrijving : Maakt een nieuwe Stack aan met als eerste element 'n'
      Parameters : 
         n : getal dat in de eerste node zal ingevuld worden
      Returntype : STACK 
      Algorithm : - 
   *)
		VAR
			Stack: STACK;
	BEGIN
		NEW(Stack);
			Stack^.getal := n;
			Stack^.next := NIL;
		RETURN(Stack);
	END New;
	
	PROCEDURE Empty* (VAR Stack: STACK);		
	(* 
      Omschrijving : Maakt een gegeven Stack leeg
      Parameters : 
         Stack : De Stack die mee gegeven wordt om leeg te maken
      Returntype : -
      Algorithm : - 
   *)
	BEGIN
		Stack := NIL;
	END Empty;
	
	PROCEDURE AddFirst* (n: REAL; VAR Stack: STACK);
	(* 
      Omschrijving : Een element op de eerste plaats van de Stack toevoegen
      Parameters : 
         n : getal dat in een node op de eerste plaats gezet zal worden
         Stack : De Stack die meegegeven wordt
      Returntype : - 
      Algorithm : - 
   *)
		VAR
			Temp: STACK;
	BEGIN
		Temp := New(n);
		
		Temp^.next := Stack;
		Stack := Temp;
	END AddFirst;
	
	PROCEDURE AddRank* (n: REAL; r: INTEGER; VAR Stack: STACK);
	(* 
      Omschrijving : Een element op een willekeurige plaats in de Stack toevoegen
      Parameters : 
         n : getal dat in een een willekeurige plaats invoegd zal worden in de Stack
         Stack : De Stack die meegegeven wordt
      Returntype : - 
      Algorithm : - 
   *)
		VAR
			Temp1, Temp2: STACK;
	BEGIN
		Temp1 := New(n);
		Temp2 := Stack;
		WHILE (Temp2^.next # NIL) & ((r-2) > 0) DO
			Temp2 := Temp2^.next;
			DEC(r);
		END;
		Temp1^.next := Temp2^.next^.next;
		Temp2^.next := Temp1
	END AddRank;
	
	PROCEDURE AddLast* (n: REAL; VAR Stack: STACK);
	(* 
      Omschrijving : Een element op de laatste plaats van de Stack toevoegen
      Parameters : 
         n : getal dat in een node op de laatste plaats gezet zal worden
         Stack : De Stack die meegegeven wordt
      Returntype : - 
      Algorithm : - 
   *)
		VAR
			Temp1, Temp2: STACK;
	BEGIN
		Temp1 := New(n);
		
		IF Stack = NIL THEN
			Stack := Temp1;
		ELSE
			Temp2 := Stack;
		
			WHILE Temp2^.next # NIL DO
				Temp2 := Temp2^.next;
			END;
				
			Temp1^.next := Temp2^.next;
			Temp2^.next := Temp1;
		END;
	END AddLast;				
		
	PROCEDURE Print* (Stack: STACK);
	(* 
      Omschrijving : De waardes van de meegegeven stack uitprinten
      Parameters : 
         Stack : De Stack die meegegeven wordt en uitgeprint zal worden
      Returntype : - 
      Algorithm : - 
   *)
	BEGIN
		IF Stack = NIL THEN
			OutExt.String("De stack is leeg.");
			OutExt.Ln;
			OutExt.Ln;
		ELSE
			OutExt.String("De Stack bevat volgende getallen:");
			OutExt.Ln;
			OutExt.String("---------------------------------");
			OutExt.Ln;
			REPEAT
				OutExt.RealFix(Stack^.getal, 3, 2);
				OutExt.Ln;
				Stack := Stack^.next;
			UNTIL Stack = NIL;
			OutExt.Ln;
		END;
	END Print;
	
	PROCEDURE DelFirst* (VAR Stack: STACK);
	(* 
      Omschrijving : De eerste Node van een stack Deleten
      Parameters : 
         Stack : De Stack die meegegeven wordt
      Returntype : - 
      Algorithm : - 
   *)	
	BEGIN
		IF Stack = NIL THEN
			HALT(60)
		END;
		Stack := Stack^.next;
	END DelFirst;	
		
	PROCEDURE DelRank* (n: INTEGER; VAR Stack: STACK);
	(* 
      Omschrijving : Een node op een willekeurige plaats van de Stack deleten
      Parameters : 
         n : getal dat de plaats aangeeft van de node die verwijderd moet worden
         Stack : De Stack die meegegeven wordt
      Returntype : - 
      Algorithm : - 
   *)
		VAR
			Temp1, Temp2: STACK;	
	BEGIN
		IF Stack = NIL THEN
			HALT(60)
		END;
		Temp1 := Stack;
		WHILE (Temp1^.next # NIL) & ((n - 2) > 0) DO
			Temp1 := Temp1^.next;
			DEC(n);
		END;
		Temp2 := Temp1^.next^.next;
		Temp1^.next := Temp2;		
	END DelRank;
		
	PROCEDURE DelLast (VAR Stack: STACK);
	(* 
      Omschrijving : De laatste node van een stack verwijderen
      Parameters : 
         Stack : De Stack die meegegeven wordt
      Returntype : - 
      Algorithm : - 
   *)
		VAR
			Temp: STACK;
	BEGIN
		IF Stack = NIL THEN
			HALT(60)
		END;
		Temp := Stack;
		WHILE Temp^.next^.next # NIL DO
			Temp := Temp^.next;
		END;
		Temp^.next := NIL;
	END DelLast;
	
	PROCEDURE GetFirst* (Stack: STACK): REAL;
	(* 
      Omschrijving : De eerste node van de Stack oproepen
      Parameters : 
         Stack : De Stack die meegegeven wordt
      Returntype : REAL
      Algorithm : - 
   *)
	BEGIN
		RETURN(Stack^.getal);
	END GetFirst;
	
	PROCEDURE GetRank* (n: INTEGER; Stack: STACK): REAL;
	(* 
      Omschrijving : Een willekeurige node van de stack oproepen
      Parameters : 
         n : getal dat aangeeft welke node opgeroepen zal worden
         Stack : De Stack die meegegeven wordt
      Returntype : REAL 
      Algorithm : - 
   *)
		VAR
			Temp: STACK;
	BEGIN
		Temp := Stack;
		WHILE (Temp^.next # NIL) & (n > 1) DO
			Temp := Temp^.next;
			DEC(n);
		END;
		RETURN(Temp^.getal);
	END GetRank;
	
	PROCEDURE GetLast* (Stack: STACK): REAL;
	(* 
      Omschrijving : De laatste node van de Stack oproepen
         Parameters : 
         Stack : De Stack die meegegeven wordt
      Returntype : REAL 
      Algorithm : - 
   *)
		VAR
			Temp: STACK;
	BEGIN
		Temp := Stack;
		WHILE Temp^.next # NIL DO
			Temp := Temp^.next;
		END;
		RETURN(Temp^.getal);
	END GetLast;

	PROCEDURE CheckEmpty* (Stack: STACK): BOOLEAN;
	(* 
      Omschrijving : Controleren of een Stack al dan niet leeg is
      Parameters : 
         Stack : De Stack die meegegeven wordt
      Returntype : BOOLEAN
      Algorithm : - 
   *)
	BEGIN
		IF Stack = NIL THEN
			RETURN (TRUE);
		ELSE
			RETURN (FALSE);
		END;
	END CheckEmpty;
	
	PROCEDURE Test*;
	(* 
      Omschrijving : Alle procedures testen
      Parameters : -
      Returntype : - 
      Algorithm : - 
   *)
		VAR
			Node: STACK;
			n: REAL;
			Test: BOOLEAN;		
	BEGIN
		OutExt.String("Ik maak een nieuwe Stack aan met het element 5");
		OutExt.Ln;
		Node := New(5);
		Print(Node);
		
		OutExt.String("Ik voeg het element 3 toe aan de Stack");
		OutExt.Ln;
		AddLast(3, Node);
		Print(Node);
		
		OutExt.String("Ik maak de stack terug leeg");
		OutExt.Ln;
		Empty(Node);
		Print(Node);
		
		OutExt.String("Check of de Stack leeg is");
		OutExt.Ln;
		Test := CheckEmpty(Node);
		IF Test = TRUE THEN
			OutExt.String("De Stack is leeg");
		ELSE
			OutExt.String("De Stack bevat nog elementen");
		END;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik voeg de elementen 2, 6, 9, 13, 5, 1 en 7 toe aan de Stack");
		OutExt.Ln;
		AddLast(2,Node);
		AddLast(6,Node);
		AddLast(9,Node);
		AddLast(13,Node);
		AddLast(5,Node);
		AddLast(1,Node);
		AddLast(7,Node);
		Print(Node);
		
		OutExt.String("Ik voeg Het element 4.2 toe als eerste element");
		OutExt.Ln;
		AddFirst(4.2, Node);
		Print(Node);
		
		OutExt.String("Ik voeg Het element 2.6 toe als 4de element");
		OutExt.Ln;
		AddRank(2.6, 4, Node);
		Print(Node);
		
		OutExt.String("Ik roep het eerste element van de stack op");
		OutExt.Ln;
		n := GetFirst(Node);
		OutExt.RealFix(n, 3, 2);
		
		OutExt.Ln;
		OutExt.Ln;
		OutExt.String("Ik verwijder het derde element van de Stack");
		OutExt.Ln;
		DelRank(3, Node);
		Print(Node);
		
		OutExt.String("Ik verwijder het eerste element van de Stack");
		OutExt.Ln;
		DelFirst(Node);
		Print(Node);
		
		OutExt.String("Ik verwijder het laatste element van de Stack");
		OutExt.Ln;
		DelLast(Node);
		Print(Node);
		
		OutExt.String("Ik roep het 3de element van de Stack op");
		OutExt.Ln;
		n := GetRank(3, Node);
		OutExt.RealFix (n, 3, 2);
		Print(Node);
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik roep het laatste element van de Stack op");
		OutExt.Ln;
		n := GetLast(Node);
		OutExt.RealFix (n, 3, 2);
		Print(Node);
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Check of de Stack leeg is");
		OutExt.Ln;
		Test := CheckEmpty(Node);
		IF Test = TRUE THEN
			OutExt.String("De Stack is leeg");
		ELSE
			OutExt.String("De Stack bevat nog elementen");
		END;

	END Test;
		
BEGIN
	OutExt.Open();
	OutExt.Clear;
END Stack.
Stack.Tool

Code: Select all

(*
	Author: Nick De Frangh
	Date: 17-11-05
*)

Builder.Compile \ws
	OutExt.Mod
	Stack.Mod
	~
	
Builder.Compile \f*

System.Free
	Stack.Mod
	OutExt.Mod
	~

OutExt.Clear


Stack.Test
Adresboek.Mod:

Code: Select all

MODULE Adresboek;
	IMPORT
		OutExt, In, Strings, Files;
	
	TYPE
		NAAM = ARRAY 30 OF CHAR;
		TEL = ARRAY 10 OF CHAR;
		GSM = ARRAY 11 OF CHAR;
		ADRSLIST* = POINTER TO Persoon;
		Persoon* =
			RECORD
				prev: ADRSLIST;
				naam: NAAM;
				tel: TEL;
				gsm: GSM;
				next: ADRSLIST;
			END;
			
	PROCEDURE New* (n: NAAM; t: TEL; g: GSM): ADRSLIST;
	(* 
      Omschrijving : Begin een nieuwe adressenlijst met als eerste entry 'n', 't' en 'g'
      Parameters : 
         n: De naam van de persoon
         t: Telefoonnummer van de persoon
         g: GSM nummer van de persoon
      Returntype : ADRSLIST 
      Algoritme : - 
   *)
   	VAR
   		First: ADRSLIST;
   BEGIN
   	NEW(First);
   	First^.prev := First;
   	First^.naam := n;
   	First^.tel := t;
   	First^.gsm := g;
   	First^.next := First;
   	RETURN(First);
   END New;
   
   PROCEDURE Empty* (VAR Lijst: ADRSLIST);
   (* 
      Omschrijving : Een adressenlijst leeg maken
      Parameters : 
         Lijst: De mee gegeven lijst
      Returntype : - 
      Algoritme : - 
   *)	
	BEGIN
		WHILE (Lijst^.prev # NIL) DO
			Lijst^.prev := NIL;
			Lijst := Lijst^.next;
		END;
		Lijst := NIL;
	END Empty;
	
	PROCEDURE Add* (n: NAAM; t: TEL; g: GSM; VAR Lijst: ADRSLIST);
	(* 
      Omschrijving : Een contactpersoon toevoegen aan een adressenlijst
      Parameters : 
         n: De naam van de persoon
         t: Telefoonnummer van de persoon
         g: GSM nummer van de persoon
         Lijst: De mee gegeven lijst
      Returntype : - 
      Algoritme : - 
   *)
		VAR
			Persoon, Temp1, Temp2: ADRSLIST;
	BEGIN
		Persoon := New(n, t, g);
		Temp1 := Lijst;
		IF (Temp1^.next = Temp1) THEN
			Temp1^.next := Persoon;
			Temp1^.prev := Persoon;
			Persoon^.prev := Temp1;
			Persoon^.next := Temp1;
		ELSE
			Temp2 := Lijst;
			WHILE (Temp1^.next # Temp2) DO
				Temp1 := Temp1^.next;
			END;
			Temp1^.next := Persoon;
			Persoon^.prev := Temp1;
			Persoon^.next := Temp2;
			Temp2^.prev := Persoon;
		END;
	END Add;
	
	PROCEDURE Delete* (VAR Lijst: ADRSLIST; Node: ADRSLIST);
		VAR
			Temp: ADRSLIST;
	BEGIN
		Temp := Lijst;
		WHILE (Temp^.next # Node) DO
			Temp := Temp^.next;
		END;
		Temp^.next^.next^.prev := Node^.prev;
		Temp^.next := Node^.next;
	END Delete;
	
	PROCEDURE Print* (Lijst: ADRSLIST);
		VAR
			Temp: ADRSLIST;
			c: INTEGER;
	BEGIN
		Temp := Lijst;
		IF Lijst = NIL THEN
			OutExt.Color(1);
			OutExt.String("De Lijst is leeg");
		ELSE
			OutExt.Color(11);
			OutExt.String("Naam:                           ");
			OutExt.String("Tel:        ");
			OutExt.String("Gsm:");
			OutExt.Ln;
			OutExt.Color(7);
			OutExt.String("-----------------------------   ");
			OutExt.String("---------   ");
			OutExt.String("----------");
			OutExt.Ln;
			OutExt.Color(3);
			REPEAT
				OutExt.String(Lijst^.naam);
				c := 0;
				REPEAT
					OutExt.String(" ");
					INC(c);
				UNTIL (32 - Strings.Length(Lijst^.naam) - c = 0);
				OutExt.String(Lijst^.tel);
				OutExt.String("   ");
				OutExt.String(Lijst^.gsm);
				OutExt.Ln;
				Lijst := Lijst^.next;
			UNTIL (Lijst = Temp);
		END;
		OutExt.Color(15);
	END Print;
	
	PROCEDURE DelNaam(VAR Lijst: ADRSLIST; n: NAAM);
		VAR
			Temp: ADRSLIST;
	BEGIN
		Temp := Lijst;
		REPEAT
			IF (Temp^.naam = n) THEN
				Delete(Lijst, Temp);
			END;
			Temp := Temp^.next;
		UNTIL Temp = Lijst;
	END DelNaam;
	
	PROCEDURE GetNaam(Lijst: ADRSLIST; n: NAAM): ADRSLIST;
		VAR
			Temp: ADRSLIST;
			Done: BOOLEAN;
			Naam: ADRSLIST;
	BEGIN
		Temp := Lijst;
		Done := FALSE;
		REPEAT
			IF (Temp^.naam = n) THEN
				NEW(Naam);
				Naam^.prev := Naam;
				Naam^.next := Naam;
				Naam^.naam := Temp^.naam;
				Naam^.tel := Temp^.tel;
				Naam^.gsm := Temp^.gsm;
				Done := TRUE;
			ELSE
				Temp := Temp^.next;
			END;
		UNTIL (Temp = Lijst) OR (Done);
		RETURN(Naam);
	END GetNaam;
	
	PROCEDURE GetLength(Lijst: ADRSLIST; naam1, naam2: NAAM): INTEGER;
		VAR
			Temp, TempL, TempR: ADRSLIST;
			c1, c2: INTEGER;
			Start: BOOLEAN;
	BEGIN
		c1 := 0;
		c2 := 0;
		Start := FALSE;
		Temp := Lijst;
		
		REPEAT 
			IF (Temp^.naam = naam1) THEN
				Start := TRUE
			ELSE
				Temp := Temp^.next;
			END;
		UNTIL (Temp = Lijst) OR (Start);
		
		IF Start THEN
			TempL := Temp;
			TempR := Temp;
			
			WHILE (TempL^.naam # naam2) DO
				TempL := TempL^.prev;
				INC(c1);
			END;
			
			WHILE (TempR^.naam # naam2) DO
				TempR := TempR^.next;
				INC(c2);
			END;
			
			IF (c1 < c2) THEN
				RETURN(c1);
			ELSE
				RETURN(c2);
			END;
		END;	
		RETURN(0);
	END GetLength;
	
	PROCEDURE Save(Lijst: ADRSLIST; bestandsnaam: ARRAY OF CHAR);
		VAR
			bestand: Files.File;
			bestandLoper: Files.Rider;
			First: ADRSLIST;
	BEGIN
		First := Lijst;
		bestand := Files.New(bestandsnaam);
		Files.Set(bestandLoper, bestand, 0);
				
		REPEAT
			Files.WriteString (bestandLoper, First^.naam);
			Files.WriteString (bestandLoper, First^.tel);
			Files.WriteString (bestandLoper, First^.gsm);
			First := First^.next;
		UNTIL First = Lijst;
		
		Files.Register(bestand);
		
		OutExt.Int(Files.Length(bestand), 0);
		OutExt.String(" bytes weggeschreven.");
		OutExt.Ln();
	END Save;
	
	PROCEDURE Open(bestandsnaam: ARRAY OF CHAR): ADRSLIST;
		VAR
			bestand: Files.File;
			bestandLoper: Files.Rider;
			Lijst: ADRSLIST;
			Naam: NAAM;
			Tel: TEL;
			Gsm: GSM;
	BEGIN
		bestand := Files.Old(bestandsnaam);
		
		IF (bestand # NIL) THEN
			Files.Set(bestandLoper, bestand, 0);
			
			Files.ReadString(bestandLoper, Naam);
			Files.ReadString(bestandLoper, Tel);
			Files.ReadString(bestandLoper, Gsm);
			
			WHILE (~bestandLoper.eof) DO
				IF (Lijst = NIL) THEN
					Lijst := New(Naam, Tel, Gsm);
				ELSE
					Add(Naam, Tel, Gsm, Lijst);
				END;
				
				Files.ReadString(bestandLoper, Naam);
				Files.ReadString(bestandLoper, Tel);
				Files.ReadString(bestandLoper, Gsm);
			END;
			
			Files.Close(bestand);
			
			RETURN(Lijst);
		ELSE 
			OutExt.String("bestand niet gevonden.");
			OutExt.Ln();
		END;
	END Open;
	
	PROCEDURE Test*;
		VAR
			Lijst, Temp: ADRSLIST;
			Naam: NAAM;
			Tel: TEL;
			Gsm: GSM;
			n: INTEGER;
	BEGIN
		In.Open();
				
		OutExt.String("Ik maak een nieuwe Lijst aan met de eerst ingelezen naam");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		In.String(Naam);
		In.String(Tel);
		In.String(Gsm);
		Lijst := New(Naam, Tel, Gsm);
		Print(Lijst);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik Voeg alle volgende namen die ingelezen zullen worden toe");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		In.String(Naam);
		In.String(Tel);
		In.String(Gsm);
		WHILE In.Done DO	
			Add(Naam, Tel, Gsm, Lijst);
			In.String(Naam);
			In.String(Tel);
			In.String(Gsm);
		END;
		Print(Lijst);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik verwijdere alle contactpersonen met de naam Joske");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		DelNaam(Lijst, "Joske");
		Print(Lijst);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik zoek de korste afstand tussen de namen 'Nick' en 'Jones'");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		n := GetLength(Lijst, "Nick", "Jones");
		OutExt.Int(n, 3);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik zoek het telefoon- en gsm nummer van Jefke");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		Temp := GetNaam(Lijst, "Jefke");
		Print(Temp);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik sla het adresboek op in adrs.txt");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		Save(Lijst, "adrs.txt");
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik maak de lijst volledig leeg");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		Empty(Lijst);
		Print(Lijst);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
		OutExt.String("Ik open het opgeslagen bestand adrs.txt");
		OutExt.Ln;
		OutExt.String("-----------------------------");
		OutExt.Ln;
		Lijst := Open("adrs.txt");
		Print(Lijst);
		OutExt.Ln;
		OutExt.Ln;
		OutExt.Ln;
		
	END Test;
	
BEGIN
	OutExt.Open();
	OutExt.Clear();
END Adresboek.
Adresboek.Tool

Code: Select all

(*
	Author: Nick De Frangh
	Date: 17-11-05
*)

Builder.Compile \ws
	OutExt.Mod
	Adresboek.Mod
	~
	
Builder.Compile \f*

System.Free
	Adresboek.Mod
	OutExt.Mod
	~

OutExt.Clear

Adresboek.Test
	"Joske" "129865845" "0123456789"
	"Joske" "129865845" "0123456789"
	"Joske" "129865845" "0123456789"
	"Mark" "034499193" "2684597683"~
Last edited by Nickman on Fri Mar 13, 2015 9:37 pm, edited 2 times in total.
Webmaster of http://www.bwf.be
Make it idiot proof and someone will make a better idiot!

[quote="zarry"][url=http://www.winak.be/forum/viewtopic.php?p=12475#12475]wickaaaah! thcikci tschiki paaaauuuuw wicked-original![/url][/quote]

User avatar
Shinta
WOZ
Posts: 1122

Post#17 » Wed Nov 23, 2005 4:43 pm

wilt iemand (die wa ver is) die linkedlists eens posten aub ...

User avatar
Nickman
Posts: 391
Contact:

Post#18 » Wed Nov 23, 2005 8:07 pm

Bedoel je die van de tweede oefening?
Ik heb daar het toevoegen, leeg maken en uitprinten al van als je die wil :)

User avatar
Shinta
WOZ
Posts: 1122

Post#19 » Wed Nov 23, 2005 9:27 pm

mijn probleem is, ik heb wel voor een foutopvanging gezorgd bij het toevoegen van een node, voor als de node NIL is, maar als de node dan daadwerkelijk NIL is (verschillende testcases geprobeerd), dan geeft die een trap alhoewel dak der normaal rekening voor zou hebben gehouden.
Mijn oefening klopt compleet, bij correct gebruik, anders niet zo, kzal da wellis vrage aan den arickx of aan die manne, kzal sowieso men code meenemen.

User avatar
EagleEye812
Posts: 406

Post#20 » Thu Nov 24, 2005 11:01 am

Ik heb probleme met de PROCEDURE Print*, ik weet niet hoe ge bepaalt hoe ge bij een circulaire :!: lijst wanneer hij moet stoppe me afdrukken?. Want hij blijft toch maar rondgaan afdrukken :p Of moet ge een begin of een temp variabele/pointer maken?

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#21 » Thu Nov 24, 2005 11:02 am

ik heb een tmp gemaakt ja

User avatar
Shinta
WOZ
Posts: 1122

Post#22 » Thu Nov 24, 2005 11:44 am

ik heb een head (begin) en ne tail (einde) , wa overbodig werk majah :?

User avatar
Shinta
WOZ
Posts: 1122

Post#23 » Thu Nov 24, 2005 11:49 pm

*Hemelsgrote zucht van opluchting* REEKS 4 is af !!!!

(Nick en eventueel DIKEA als ze dit lezen en anderen die pointers ni snappe: Ni panikeren, pointers zijn één van de moeilijkste structuren van programmeren)

User avatar
Nick
Prosenior
Posts: 1850
Contact:

Post#24 » Fri Nov 25, 2005 12:17 am

euhm ... thanks?

User avatar
Arawn
Posts: 39
Contact:

Post#25 » Fri Nov 25, 2005 12:19 am

daar zijn ze vet mee :p

User avatar
Nickman
Posts: 391
Contact:

Post#26 » Fri Nov 25, 2005 12:41 am

Mijn Reeks 4 is bijna af, alleen mijn file uitlezen wiltem ni zo graag doen :D
----------------------
Het is opgelost, gewoon een domme RETURN() vergeten :shock: :shock: :shock:

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 41 guests