[Prog] Portfolio opdracht 1 : Sorteeralgoritmen

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Shinta
WOZ
Posts: 1122

Portfolio opdracht 1 : Sorteeralgoritmen

Post#1 » Fri Oct 21, 2005 8:15 pm

Ter controle van je eigen werkje (ik herhaal : TER CONTROLE), gelieve deze code dus niet te gebruiken om zelf op te sturen en zo ons beide te kl*ten.
De code is illustratief voor het gebruik van de procedures, lay-out en commentaar.

Sorts.Tool :

Code: Select all

- Sorts.Tool
(*
	Auteur : Kristof Overdulve
	Datum : 21/10/2005
Werkwijze : In dit programma gaan we een array sorteren aan de hand van een Insertion Sort algoritme, beschreven in de opgave van de opdracht. Om dit te verwezenlijken maken we gebruik van de reeks bestaande procedures "LeesRij" en "DrukRij" uit de module "Sorts.Mod" die respectievelijk dienen om getallen in te lezen en om ze af te drukken. We creëren zelf de procedure "InsertionSort" die het algoritme om de arrays te sorteren beschrijft en "Insertion" die de verschillende benodigde procedures oproept en er waardeparameters aan toekent.
*)

Builder.Compile \2wvs
	OutExt.Mod
	Sorts.Mod
~

Builder.Compile \f*

System.Free
	OutExt.Mod
	Sorts.Mod
~

Sorts.Insertion 
	1.2 
	45.3 
	0.33 
	5.21 
	8.2 
	-3.5 
	2.35 
	7.88 
	5.12 
	6.23 
	2.36 
	55.8 
	-5.66 
	0.0 
	6.66 
	3.2
~
Sorts.Mod :

Code: Select all

MODULE Sorts;

(* 
  Doel : Reeks Portfolio opdracht 2 : Sorteeralgoritmes :
Vorm de module Sorts.MOD om zodat de Insertion Sort geimplementeerd wordt. 
  Auteur : Kristof Overdulve
  Datum : 21/10/2005
*)

  IMPORT
    In, OutExt;
    
  CONST
    max = 25;
    
  TYPE
    GetallenRij = ARRAY max OF REAL;


  PROCEDURE LeesRij(VAR x: GetallenRij; VAR n: INTEGER);
  (*
  	Omschrijving : Leest een aantal getallen in.
  	Parameters :
  		x : De array waarin de getallen opgeslagen zijn.
  		n : Het aantal getallen in die array.
  	Returntype : -
  	Algoritme : -
  *)  		
  
    
 	VAR
      i: INTEGER;
    
  BEGIN
    In.Open;
    i := 0;
    WHILE In.Done DO
      In.Real(x[i]);
      INC(i);
    END;
    n := i - 1;
  END LeesRij;


  PROCEDURE DrukRij(x: GetallenRij; n: INTEGER; s: ARRAY
									OF CHAR);
  (*
  	Omschrijving : Drukt de array af.
  	Parameters :
  		x : De array waarin de getallen opgeslagen zijn.
  		n : Het aantal getallen in die array.
  		s : De naam van het gebruikte sorteeralgoritme.
  	Returntype : -
  	Algoritme : -
  *)  		
  
    VAR
      i: INTEGER;

  BEGIN
OutExt.String("De geordende array "); OutExt.String(s); OutExt.String(" is: ");
    	OutExt.Ln;
    	FOR i := 0 TO n - 1 DO
      OutExt.RealFix(x[i], 13, 5);
      OutExt.Ln;
    	END;
  END DrukRij;
  
  
  PROCEDURE InsertionSort(VAR a : GetallenRij; n : 
									INTEGER);
  (*
Omschrijving : Sorteert een gegeven aantal getallen in een array.
  	Parameters :
  		a : De array waarin de getallen opgeslagen zijn.
  		n : Het aantal getallen in die array.
  	Returntype : -
  	Algoritme : InsertionSort sorteeralgoritme
  *)  		
  
  	VAR
  		index, index2 : INTEGER;
  		hulpvariabele : REAL;
  
  BEGIN
  	FOR index := 1 TO n DO
  		hulpvariabele := a[index];
  		index2 := index;
WHILE ((index2 > 0) & (a[index2-1] > 
	  hulpvariabele)) DO 
  			a[index2] := a[index2-1];
  			DEC(index2);
  		END;
  		a[index2] := hulpvariabele;
  	END;
  END InsertionSort;
  
  
  PROCEDURE Insertion*;
  (*
  	Omschrijving : Dit is de hoofdprocedure.
  	Parameters : -
  	Returntype : -
  	Algoritme : -
  *)  		
  
  	VAR
  		getallen : GetallenRij;
  		aantalGetallen : INTEGER;
  
  BEGIN
  	LeesRij(getallen, aantalGetallen);
  	InsertionSort(getallen, aantalGetallen);
  	DrukRij(getallen, aantalGetallen, "(InsertionSort)");
  END Insertion;


BEGIN
  OutExt.Open;
  OutExt.Clear;
END Sorts.

M.V.G. Kristof
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...

User avatar
j0lle
WOZ
Posts: 396

Post#2 » Fri Oct 21, 2005 8:17 pm

gij ze gene juste jong :-)
nice work!
qwertyuiop

User avatar
Shinta
WOZ
Posts: 1122

Post#3 » Fri Oct 21, 2005 8:42 pm

XenoPhobian wrote:gij ze gene juste jong :-)
nice work!
euh ja :wink: eerst ff de sorteeralgoritme zelf opgezocht op google en dan omgezet van C naar Oberon :oops: .
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...

User avatar
Nick
Prosenior
Posts: 1850
Contact:

Post#4 » Fri Oct 21, 2005 8:54 pm

Wrom zouk iet kopiëre dak ni kan ... ;)

Da zou pas achterlijk zen
To Woef or not to Woef, that is the question!

WINAK Scriptor 2006-2007
WINAK Vice-Praeses 2007-2008
WINAK Praeses 2008-2009
WINAK Cantor 2009-2010
... en kortom: Eeuwig WINAKer 8)

User avatar
j0lle
WOZ
Posts: 396

Post#5 » Fri Oct 21, 2005 8:55 pm

Shinta wrote:
XenoPhobian wrote:gij ze gene juste jong :-)
nice work!
euh ja :wink: eerst ff de sorteeralgoritme zelf opgezocht op google en dan omgezet van C naar Oberon :oops: .
bwah das een goei manier :p
als ge schemas moet ebbe van die sorteeralgoritmes.. :-|

en nick: idd :-)
qwertyuiop

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#6 » Fri Oct 21, 2005 8:56 pm

Goed!
Ik heb het nog net iets anders gedaan, maar komt op hetzelfde neer.

User avatar
Nickman
Posts: 391
Contact:

Post#7 » Mon Oct 24, 2005 8:19 pm

Heb de oefening ook afgemaakt ;).
Is eigenlijk niet zo moeilijk (als oberon wil meewerken :D)
greetz ;)
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
j0lle
WOZ
Posts: 396

Post#8 » Mon Oct 24, 2005 9:22 pm

das idd een makkelijke opdracht
maar dan nog... zoekalgoritmen.. blah
qwertyuiop

User avatar
EagleEye812
Posts: 406

Post#9 » Mon Oct 24, 2005 10:02 pm

Ik heb mijne me 2 for lussen gedaan ipv me for en while :x

maar t macheert wel :p
Last edited by EagleEye812 on Tue Oct 25, 2005 9:59 am, edited 1 time in total.
[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#10 » Mon Oct 24, 2005 11:03 pm

EagleEye812 wrote:Dit is mijne volledige code daarvan

Code: Select all

  PROCEDURE Sorteer*;
	(*
		Description: Sorteren via het insertion sort algoritme.
		Parameters: -
		Returntype: -
		Algorithm: rij inlezen, elk element (beginnend vanaf het tweede element)
				   met het volgende vergelijken en zo sorteren zoals beschreven
				   in het pdf bestand.
	*)
  	VAR
  		rij : GetallenRij;
  		lengte : INTEGER;
  		i, x : INTEGER; (* lusvariabelen *)
  		j : INTEGER;
  BEGIN
  	LeesRij(rij, lengte);
  	FOR i := 1 TO (lengte - 1) DO
  		j := i;
  		FOR x := 1 TO i DO
  			IF rij[i] <= rij[i - j] THEN
  				Wissel(rij, i, (i - j));
  			END;
 	 		DEC(j);
 	 	END;
  	END;
  	DrukRij(rij, lengte, "via InsertionSort");
  END Sorteer;
kan het nog simpeler? want er gebruiken ier mensen 2x while en ik heb da me ne For gedaan :x

(ni overnemen aub :p)
No offense ma waar is jou LeesRij en DrukRij procedure ?? :wink:
Last edited by Shinta on Tue Oct 25, 2005 11:28 am, edited 1 time in total.
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...

User avatar
EagleEye812
Posts: 406

Post#11 » Mon Oct 24, 2005 11:11 pm

Jah die staan al standaard in die Sorts.Mod da heb ik niet geschreven he, ge kunt die vinden op black board

LeesRij, DrukRij en Wissel stonden er al in en dat zijn geen sorteer algoritmen dus moet ik die niet verwijderen
[quote="zarry"][url=http://www.winak.be/forum/viewtopic.php?p=12475#12475]wickaaaah! thcikci tschiki paaaauuuuw wicked-original![/url][/quote]

User avatar
Arawn
Posts: 39
Contact:

Post#12 » Mon Oct 24, 2005 11:23 pm

:D

wanneer moe da afzijn?
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

http://antira.blackmetal.be

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

User avatar
EagleEye812
Posts: 406

Post#13 » Mon Oct 24, 2005 11:25 pm

Arawn wrote::D

wanneer moe da afzijn?
Let er op dat de opdracht ingeleverd wordt voor 23u55 op 7/11/2005.
[quote="zarry"][url=http://www.winak.be/forum/viewtopic.php?p=12475#12475]wickaaaah! thcikci tschiki paaaauuuuw wicked-original![/url][/quote]

User avatar
Yo_rik
Posts: 69

Post#14 » Tue Oct 25, 2005 11:26 am

Mijn versie van de insertionsort gebruikt ook 2 FOR-lussen en geen hulpvariabelen :D !
Ik heb de procedures LeesRij en DrukRij ook wa aangepast, om de Code Conventions wa beter te volgen 8).
Eigenlijk ist helemaal ni moeilijk :wink:
Last edited by Yo_rik on Tue Nov 01, 2005 9:16 pm, edited 3 times in total.

User avatar
Norfolk
WOZ
Posts: 780
Contact:

Post#15 » Tue Oct 25, 2005 11:28 am

Ik heb FOR met een WHILE in :)

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 11 guests