Operativsystem: .............................................................
Operativsystem: .............................................................
Operativsystem: .............................................................
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