Abstrakte datatyper C#-version
|
|
|
- Andreas Brandt
- 10 år siden
- Visninger:
Transkript
1 Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9
2 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype (ADT) og beskriver den abstrakte datatype sekvens eller (ordnet) liste. Datastrukturer En datastruktur er en systematisk måde at organisere en mængde af data på. Datastrukturer kan være persistente, dvs. lagret på disk eller interne, dvs. lagret i memory. Vi betragter her kun interne datastrukturer. Endvidere skelner man mellem statiske og dynamiske datastrukturer. En statisk datastruktur har en fast størrelse under hele programafviklingen, mens en dynamisk datastruktur kan ændre størrelse efter behov under programudførelsen. En datastruktur er en fysisk organisering af en datamængde. Klassiske datastrukturer er bl.a.: Array statisk Kædet liste dynamisk Træstruktur oftest dynamisk Hashtabel kan være statisk eller dynamisk Vi ser i første omgang kun på arrays. Et array er et sammenhængende segment af memory, hvor elementerne er indekserede, dvs. kan tilgås udfra deres position. Elementerne er af samme type. Datastrukturer har brug for en række algoritmer til indsættelse, sletning, søgning af data. En datastruktur samt algoritmer til at operere på dataene er en realisering af en abstrakt datatype. Datatyper Generelt er en datatype givet ved en værdimængde og et sæt af tilhørende operationer. Endvidere er der behov for en datastruktur til at repræsentere datatypens værdimængde: Værdimængde (Hvilke værdier kan typen indeholde?) Operationer (Hvilke operationer er lovlige at udføre på elementer af datatypen?) Datarepræsentation (Hvordan repræsenteres datatypen i hukommelsen) 2/9
3 Alle programmeringssprog tilbyder indbyggede datatyper værdier, datarepræsentation og lovlige operationer defineres af sproget. Fx. har C# indbygget standardtyper som bool med værdierne true og false, og operationer som and ( && ), or ( ) og not (! ) de såkaldte logiske operationer. Denne type anvendes meget i forbindelse med programmering af kontrolstrukturer (selektioner og iterationer). En anden standardtype er int, hvis værdier er heltal, og operationerne er regneoperationer, sammenligninger mm. Alle variable erklæres af programmøren som tilhørende en type (som regel ikke i Scriptsprog). Compileren til de fleste sprog undersøger, at man kun bruger lovlige operationer. Udover de indbyggede typer giver C# mulighed for, at man kan definere sine egne typer. Disse typer kaldes ofte abstrakte datatyper. En vigtig gruppe adt er er de såkaldte Collections, som indkapsler en datastruktur. Formålet hermed er, at skjule datastrukturens implementation, så denne kan ændres, uden at det påvirker resten af systemet. Man opnår det, der kaldes dataabstraktion. Sagt på en anden måde, så adskiller man hvad fra hvordan. Nedenstående figur (fra Carrano ea.: Data Abstraction and Problem Solving with Java, Addison-Wesley) illustrerer princippet: Figure 3.7 ADT operations provide access to a data structure adt Datastruktur+ algoritmer 3/9
4 Princippet er, at programmer kan anvende adt en alene udfra kendskab til operationernes specifikationer. Man behøver altså ikke at bekymre sig datastrukturen og de algoritmer, som realiserer operationerne på datastrukturen. ADT en sekvens En meget udbredt adt er sekvens eller ordnet liste ofte blot liste. Den findes i de fleste moderne programmeringssprogs bibliotek, således også i C#, hvor den hedder Ilist, og har en realisering, som hedder ArrayList. En sekvens er en samling af værdier, som står i en eller anden rækkefølge. Man kan altså tale om første værdi, sidste værdi eller syvende værdi. Ligeledes er det muligt at indsætte og slette værdier på en bestemt plads. Praktiske varianter af sekvenser er utallige, fx. en sekvens af studerende ved et erhvervsakademi, en sekvens af bøger i et bibliotek, en sekvens af tegn (kaldes ofte en streng) i et program, der arbejder med tekster. Vi vil i første omgang koncentrere os om et simpelt eksempel, nemlig sekvenser af heltal. Vi har kaldt typen SeqInt. Værdimængden for SeqInt Værdimængden for datatypen SeqInt er følger af heltal. Her er en række forskellige eksempler: [1, 3, 5] [1, 5, 3] [-1, 34, 56] [1] [2, 65, 8, 999, 434, 0, 12, 1, -5, 78, 9] [] (en tom sekvens, men dog stadig en sekvens). Elementerne i en sekvens refereres via deres index. Første element har index 0. I det følgende vil vi realisere SeqInt vha. C# s ArrayList: Operationer på ArrayList Følgende operationer kan udføres på en variabel s af typen ArrayList: Definerer en sekvens s. Nulstiller s. ArrayList s= new ArrayList(); s.clear(); 4/9
5 s.insert(i,e); Indsætter elementet e på pladsen med index i og rykker eventuelle efterfølgende elementer. s.removeat(i); Fjerner elementet med index i og rykker eventuelle efterfølgende elementer tilbage. s.add(e); Tilføjer elementet e som det sidste element. Udover disse operationer, som er implementeret som metoder, har ArrayList et par operationer mere: s.count; Returnerer en int indeholdende antallet af elementer i s. s[i] tilgår det i te element, således at int x= s[i]; placerer værdien af det i te element i x, og s[i]= x; ændrer værdien af det i te element til x. Det skal slutteligt nævnes, at ArrayList har en lang række andre operationer, som vi ikke vil fordybe os i her. Se dokumentationen. Eksempel på brug af SeqInt På næste side ses et lille program, som opretter en SeqInt, sætter nogle tal ind i sekvensen, udskriver sekvensen, bruger et par operationer og udskriver sekvensen igen. 5/9
6 using System; using System.Collections; class TestSeqInt { private static ArrayList sekvens = new ArrayList(); static void Main(string[] args) { for(int i= 0; i<10; i++) sekvens.add(i); Udskriv(sekvens); Console.ReadLine(); sekvens[4]=1111; Console.WriteLine(sekvens[4]); Console.ReadLine(); sekvens.insert(4,44); Udskriv(sekvens); Console.ReadLine(); } public static void Udskriv(ArrayList s) { for(int i= 0; i<s.count; i++) Console.WriteLine(s[i]); } } Output fra dette program bliver: Oprindelig sekvens Ændring af element 4 Efter indsættelse af 44 på plads 4 6/9
7 Vi vil prøve at lave en metode mere, som arbejder på sekvenser. Metoden skal tælle antal store tal i en sekvens: Vi giver den navnet countbigones. Metoden skal returnere et heltal - nemlig antallet af store tal - og have en sekvens som parameter. Vi vedtager, at i denne sammenhæng er et tal stort, hvis det er større end 20. En algoritme, som løser opgaven, kan udvikles udfra følgende idé: Kik på hvert element i sekvensen, hvis tallet er større end 20, så tæl en variabel op med én. Alle elementer skal undersøges, så der er tydeligvis tal om en sweep-algoritme. Elementerne skal ikke ændres, så vi kan bruge foreach-løkken i C#: public static int CountBigOnes(ArrayList s) { int antal= 0; foreach(int x in s) if(x>20) antal++; return antal; } Placeres denne metode i klassen TestSeqInt kan den kaldes fra Main() med: Console.WriteLine(CountBigOnes(sekvens); Andre abstrakte datatyper I det følgende vil vi kort kikke på en række andre hyppigt anvendte abstrakte datatyper. Stak Stakken er en abstrakt datatype, som gemmer data efter LIFO (Last In First Out)-princippet. De almindelige operationer er: Push(e), som placerer elementet e øverst på stakken Top(), som returner det seneste placerede element fra stakken uden at ændre stakken Pop(), som fjerner (og evt. returnerer) det seneste placerede element fra stakken. 7/9
8 Endvidere vil stakken som regel have operationer, som kan oplyse, om den er tom, og hvor mange elementer den indeholder. Stakke implementeres ofte ved at anvende en sekvens eller en kædet liste. Kø End kø fungerer efter FIFO (First In Last Out)-princippet. Operationer er bl.a.: Enqueue(e), som placerer elementet e sidst i køen Front(), som returnerer det forreste element (det element, som har været i køen længst) uden at ændre køen Dequeue(), som fjerner (og evt. returnerer) det forreste element (det element, som har været i køen længst) Som stakken har køen som regel også operationer, som kan oplyse, om den er tom, og hvor mange elementer den indeholder. Også køer implementeres ofte ved at anvende en sekvens eller en kædet liste. Dictionary Sekvenser, stakke og køer er eksempler på det, man kalder positionsbasere ADT er, idet elementer lagres og hentes ud igen i en eller anden rækkefølge. Dicionary eller Map, som ADT en også kaldes, er der imod værdibaseret, idet elementerne kendes ud fra deres værdi. Dictionary lagrer par af nøgler og værdier: (key, value). Fx kan nøglen være et telefonnummer og værdien et objekt med kontaktoplysninger (navn, adresse, etc.). Almindelige operationer på et dictionary er: Insert(key, value), indsætter et nyt element i dictionaryet (ofte med pre-betingelse, at key ikke findes i forvejen) Contains(key), returnerer sand, hvis dictionaryet indeholder et element par med den angivne key. Ændrer ikke dictionaryet. Retreive(key), som returner værdien svarende til den angivne key (ofte med prebetingelse, at key findes). Ændrer ikke dictionaryet. Delete(key), sletter elementparret med den angivne key. Som stakken og køen har dictionary som regel også operationer, som kan oplyse, om den er tom, og hvor mange elementer den indeholder. Endvidere kan der være mulighed for at iterere gennem dictionaryet i nøgleorden. 8/9
9 De fleste moderne programmeringssprog (også C#/.NET) tilbyder en række standardklasser og interfaces, som realiserer disse ADT er. I.NET findes de i namespacet System.Collections og i.net2 i en forbedret og udvidet version i namespacet System.Collections.Generics. Opgave Undersøg hvilke ADT er, der tilbydes i System.Collections og/eller System.Collections.Generics. 9/9
Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Videregående Programmering for Diplom-E Noter
Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til [email protected]. Besvarelsen skal
Skriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Objektorienteret design med arv og polymorfi:
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret
PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;
PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;
Rekursion C#-version
Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet
Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.
19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel
BRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
JavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Ugeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Objektorientering. Programkvalitet
1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Kursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Programmering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Python programmering. Per Tøfting. MacFest
Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer
Hashing og hashtabeller
Datastrukturer & Algoritmer, Datalogi C Forelæsning 12/11-2002 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt
Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Programmering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Lær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
SWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Hvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
3 Algebraisk Specifikation af Abstrakte Datatyper.
3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Design by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen [email protected] Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Eksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem
Eksamensopgaver datalogi, dlc 2011 side 1/5 1. Lodtrækningssystem Der skal fremstilles et program, som kan foretage en lodtrækning. Programmet skal kunne udtrække en eller flere personer (eller andet)
A Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Specialeforsvar: Fundamentet for et fleksibelt container bibliotek
Specialeforsvar: Fundamentet for et fleksibelt container bibliotek Foundations of an adaptable container library Bo Simonsen Datalogisk Institut, Københavns Universitet Denne præsentation, afhandlingen,
Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
DANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Løsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
Tree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Introduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Tredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
METODER ARV KLASSER. Grundlæggende programmering Lektion 5
METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen
Anvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer
1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO
DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =
Eksempel: et ordresystem note 5 Lagdeling s. 1
Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar
Software Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Klasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læseplan for valgfaget teknologiforståelse. (forsøg)
Læseplan for valgfaget teknologiforståelse (forsøg) Indhold Indledning 3 Trinforløb for 7.- 9. klassetrin 4 Design 4 Programmering 5 Indledning Valgfaget teknologiforståelse er etårigt og kan vælges i
Kursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
Singleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Skriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =
Bits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
