26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

if(i%11==0)metode11();<br />

if(i%12==0)metode12();<br />

Console.Read();<br />

}<br />

[Conditional("DEBUG")]<br />

private static void debug_init(){<br />

//i stedet for Console.Out kan saettes en file stream!:<br />

TextWriterTraceListener listener=new TextWriterTraceListener(Console.Out);<br />

Debug.Listeners.Add(listener);<br />

}<br />

Her har vi flyttet initialiseringen/opstarten af Debug klassen til en metode og sat en [Conditional]<br />

attribut foran metoden. Dette bevirker, at kun hvis der er defineret en DEBUG vil metoden blive<br />

udført – programmet skal altså kompileres med csc /d:DEBUG (og ikke /d:debug!!) program.cs<br />

eller koden skal indledes med en #def DEBUG.<br />

Løbende kontrol: Debug.Assert():<br />

Et program eller en metode (en algoritme) kan verificeres ved at man på passende steder indlægger<br />

et checkpoint hvor man kontrollerer at en bestemt variabel har den korrekte værdi. Dette har en helt<br />

afgørende betydning i forbindelse med at bevise at algoritmer er korrekte. Til dette formål kan<br />

bruges en Debug.Assert(), som tager to parametre: Et boolsk testudtryk som – helst - skal være<br />

sandt og en besked som systemet viser i en messagebox, hvis testbetingelsen viser sig at være falsk!<br />

Nedenstående eksempel bruger igen en simpel sorteringsmekanisme. Vi starter med 4 ord og<br />

sorterer forfra. Når vi har fundet det ’mindste’ ord, flytter vi det over i en sorteret liste. Hver gang vi<br />

flytter et ord over i den sorterede liste, skal summen af elementerne i den sorterede liste og i restlisten<br />

(de usorterede ord) være konstant – nemlig 4 hele tiden. Hvis det ikke er tilfældet, er<br />

algoritmen garanteret forkert.<br />

// Debug.Assert() eksempel:<br />

using System;<br />

using System.Diagnostics;<br />

using System.Collections;<br />

class Assert {<br />

public static void Main(){<br />

string[] ord={"sommer","vinter","forår","efterår"};<br />

ArrayList sorteret=new ArrayList();<br />

for(int i=0;i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!