29.07.2013 Views

Abstrakte datatyper – C#-version

Abstrakte datatyper – C#-version

Abstrakte datatyper – C#-version

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.

NOEA/IT <strong>–</strong> Programmeringsteknologi/<strong>C#</strong>.NET FEN/2004-02-20<br />

Alle programmeringssprog tilbyder indbyggede <strong>datatyper</strong> <strong>–</strong> værdier, datarepræsentation og<br />

lovlige operationer defineres af sproget. Fx. har <strong>C#</strong> indbygget standardtyper som bool med<br />

værdierne true og false, og operationer som and (”&&”), or (”||”) og not (”!”) <strong>–</strong> de såkaldte<br />

logiske operationer. Denne type anvendes meget i forbindelse med programmering af<br />

kontrolstrukturer (selektioner og iterationer). En anden standardtype er int, hvis værdier er heltal,<br />

og operationerne er regneoperationer, sammenligninger mm. Alle variable erklæres af<br />

programmøren som tilhørende en type (som regel ikke i Scriptsprog). Compileren til de fleste<br />

sprog undersøger, at man kun bruger lovlige operationer.<br />

Udover de indbyggede typer giver <strong>C#</strong> mulighed for, at man kan definere sine egne typer. Disse<br />

typer kaldes ofte abstrakte <strong>datatyper</strong>.<br />

En vigtig gruppe adt’er er de såkaldte Collections, som indkapsler en datastruktur. Formålet<br />

hermed er, at skjule datastrukturens implementation, så denne kan ændres, uden at det påvirker<br />

resten af systemet. Man opnår det, der kaldes dataabstraktion.<br />

Sagt på en anden måde, så adskiller man hvad fra hvordan. Nedenstående figur (fra Carrano ea.:<br />

Data Abstraction and Problem Solving with Java, Addison-Wesley) illustrerer princippet:<br />

Figure 3.7<br />

ADT operations provide access to a data structure<br />

adt<br />

Datastruktur+<br />

algoritmer<br />

3/9

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

Saved successfully!

Ooh no, something went wrong!