Programmering, minneshjälp för den glömske
|
|
- Stig Hedlund
- för 8 år sedan
- Visningar:
Transkript
1 Programmering, minneshjälp för den glömske Philip Larsson Programmering - bra att veta 1.1 Inmatning Inmatning sker med klassen Scanner. Scanner hör till paketet java.util så detta måste importeras. // Read/scan from keyboard Scanner s = new Scanner(System.in); // Read next int to nand next string to str int n = s.nextint(); String str = s.nextline(); Vi kan koppla Scanner objektet till att läsa in från textfiler istället Scanner sf = new Scanner(new File("in data.txt")); Men, då vi använder anropet new File måste vi samtidigt använda Javas felhanteringsmekanism. Scanner sf = null; try{ sf = new Scanner(new File("in data.txt")); catch (FileNotFoundException e) { System.err.println("Could not open file!"); System.exit(1); 1.2 Random För att använda klassen Random måste vi importera: import java.util.random; Vi använder random på följande sätt: // skapar en slumptalsgenerator rng Random rng = new Random(); // slumpar tal
2 int dice = rng.nextint(6) + 1; 1.3 Formatera utskrifter med printf Om man ska skriva ut blandat text och värden kan det vara smidigare att använda printf. int a = 13; int b = 37; System.out.printf("The value of a is %d and the value of b is %d", a, b); %d är en styrkod i exemplet ovan. Men det finns flera: %[bredd]d - heltal, där bredd är antal positioner som talet ska skrivas i. Utelämnas bredd skrivs talet ut i så många positioner som behövs %[bredd].[antal decimaler]f - reella tal (eng floating number) %[bredd]s - strängar double pi = Math.PI; System.out.printf("Pi = %.3f ", pi); String firstname = "Leonardo"; System.out.printf("First name : %s", firstname); 1.4 Foreach loop ArrayList<Person> plist = new ArrayList<Person>(); for (Person p : plist) { System.out.println(p.getName()); Läses som för varje Person p i plist. 1.5 compareto int compareto(string other) denna.compareto(other); Jämför strängen med en annan sträng, returnerar: ett negativt heltal om denna sträng kommer före den andra i alfabetisk ordning 0 om då båda strängarna är lika ett positivt heltal om denna sträng kommer efter den andra i alfabetisk ordning other: den sträng vi jämför med. 2
3 1.6 Stringbuilder Objekt av klassen String är oföränderliga - det innebär att det saknas operationer för exempelvis ändring, insättning och borttagning av tecken inuti strängen. Dessa operationer finns istället i klassen StringBuilder, som alltså beskriver en sträng som vi kan ändra i. Nedan visas ett par metoder i StringBuilder: class StringBuilder: /* Creates a new, empty StringBuilder */ String Builder() /*Creates a new StringBuilder with the same content as a given String. s: the string this StringBuilder shall include from the beginning. * / StringBuilder(String s) / * Extends the string with a string. str: the string to be added * / StringBuilder append(string str) / * Removes the characters inside the string. start: index of the first character to be deleted, end: index of the character after the last character to be deleted. * / StringBuilder delete(int start, int end) Exempel: String firstname = "Bosse"; StringBuilder sb = new StringBuilder(firstName); sb.append(" Bus"); String name = sb.tostring(); 1.7 StringTokenizer StringTokenizer används för att plocka ut delar av en sträng. För att använda StringTokenizer måste vi importera java.util. class StringTokenizer: / * Creates a StringTokenizer that pick out the parts of a given string. * The parts in the string is assumed separated by spaces and tabs. * s: the string that we must dismantle. * / StringTokenizer(String s) / * Creates a StringTokenizer that pick out the parts of a given string. * s: the string that we will dismantle, * delimiters: the character that separates the string parts. * / StringTokenizer(String s, String delimiters) / * Counts how many parts are left in the current string. * / int counttokens() 3
4 / * Determine if there are more elements in the current string. * / boolean hasmoretokens() /* Returns the next part of the current string, provides execution error if there are no more parts in the string. * / String nexttoken() Exempel: /*Plockar ut orden ur en String */ String s = "I m gonna pop som tags"; StringTokenizer st = new StringTokenizer(s); System.out.println("There is " + st.counttokens() + " words at this line."); while (st.hasmoretokens()) { System.out.println(st.nextToken()); 1.8 Skyddsnivåer public: Attribut och metoder som vi skriver public framför kan anropas och användas varifrån som helst. Ingen markering: Attribut och metoder som vi inte skriver något framför kan bara anropas och användas av andra klasser i samma katalog. private: Attribut och metoder som vi skriver private framför kan bara anropas och användas inifrån den egna klassen. protected: Klassen själv, andra klasser i samma paket, och this i subklasser har tillgång till dem. 1.9 Vektorer En vektor är ett slags objekt med ett bestämt antal värde, där varje värde har ett givet index. En vektor har alltid en bestämd storlek, och denna anges när vi skapar den. String[] names; names = new String[5]; Listor är i allmänhet betydligt enklare att arbeta med, men vi har dock själva större kontroll på vad som händer i datorn när vi använder vektorer. Om vi i förväg vet vilka värden som skall ligga i en vektor så kan vi ge den sitt startvärde direkt. String[] workdays = {"mon", "tue", "wed", "thu", "fri"; 1.10 Vektorer med flera index - matriser Vi kan ha vektorer med mer än ett index, en matris! 4
5 double[][] value = new double[3][3]; 1.11 Överskuggning och Överlagring Överskuggning innebär att vi ersätter en gammal (ärvd) operation med en ny som har samma signatur - vi får alltså ingen ny operation. Överlagring innebär att vi lägger till en ny operation som har samma namn som en ärvd operation, men annan signatur. (t.ex olika antal parametrar eller olika typer på sina parametrar) Vi kan även använda den överskuggade operationen när vi överskuggar med hjälp av super. public void forward(int n){ super.forward(n); count += n; Vi skriver super.forward(n) för att få kompilatorn att förstå att det är operationen forward(int) i superklassen som skall anropas. Om vi hade skrivit forward(int) hade vi anropat oss själva - sådana anrop kallas rekursiva och är väldigt användbara i många sammanhang, men här hade det bara inneburit at operationen hade anropat sig själv tills minnet tar slut (och vi får java.lang.stackoverflowerror) Abstrakta klasser En klass kan ärva från en abstrakt klass precis på samma sätt som man ärver från andra klasser, men en abstrakt klass skiljer sig lite: Man kan inte skapa ett objekt av den abstrakta klassen, om någon försöker så får denna kompileringsfel. En abstrakt klass kan ha abstrakta metoder 1 Observera att bara kan ärva (extends) ett objekt 2. Det finns flera poänger med abstrakta klasser: Vi behöver inte längre skriva någon kod i de operationer som vi ändå inte kan implementera på något vettigt sätt. Den som ärver klassen upptäcker om någon av de abstrakta operationerna har glömts bort eller deklarerats felaktigt - även detta skulle ge upphov till kompileringsfel. abstract class Bank { // Variabler private double cash; 1 En abstrakt metod är en metod utan implementation, och de måste implementeras av subklasser. 2 Medans man kan implementera flera interface 5
6 // Abstrakta metoder public abstract void setup(); public abstract int getnbrofaccounts(); public abstract string getbankname(); // Vanliga metoder public double getcash() { return cash; 1.13 Exceptions Det finns två slag av Exceptions: Unchecked Exceptions Ð används då felet beror på programmeraren Ex: NullPointerException eller ArrayIndexOutOfBoundsException Checked Exceptions Ð används då felet inte beror på programmeraren Ex: FileNotFoundException om man försöker öppna en fil som inte finns När man anropar en metod som genererar en checked exception måste man ta hand om det. Normalt fångar man det i en try-catch-sats: Scanner scan = null; try { // open file with file name filename scan = new Scanner(new File(fileName)); catch (FileNotFoundException e) { System.err.println("Couldn t open file " + filename); System.exit(1);... use scan... Om exception inträffar, avbryts exekveringen av satserna i try-blocket och satserna i catch-blocket exekveras. I satsen catch(exception e) kan t.ex. följande metoder användas för att få mer information: e.printstacktrace(); som skriver ut information om raden där felet inträffat och den/de metodanrop som lett till denna rad. e.getmessage(); som returnerar en sträng med meddelande om felets art. Generera egna exceptions: throw new IllegalArgumentException("amount to deposit < 0"); Mönstret är: 6
7 throw new ExceptionClass(); throw new ExceptionClass(message); Detta gör att exception-objekt skapas, exekvering av metoden avbryts. Javasystemet letar efter fångade catch-block. Exempel: /** * Deposits the specified amount. * pre: The specified amount is >= 0 * post: The specified amount is added to balance n The amount to deposit IllegalArgumentException if the specified amount is < 0 */ public void deposit(int n) { if (n < 0) { throw new IllegalArgumentException("amount to deposit < 0"); balance = balance + n; 2 Sökning 2.1 Linjärsökning int pos; for (pos = 0; pos < n; pos++) { if (v[pos] == value) { break; Denna sökmetod kallas linjärsökning eftersom vi söker stegvis genom vektorn, element för element. I värsta fall, dvs då det sökta elementet antingen inte finns, eller finns sist i vektorn, måste vi söka igenom hela vektorn. Skulle det sökta värdet finnas behöver vi göra i genomsnitt n/2 jämförelser. Söktiden är linjär, eller O(n). 2.2 Binärsökning Om den vektor vi söker i är sorterad kan vi skriva betydligt effektivare algoritmer än den ovan. Ett exempel är att gissa ett tal och sedan gaffla sig fram. Vi börjar i mitten och delar successivt in återstående alternativ i så lika delar som möjligt. Vi inför två variabler, min och max för att hålla reda på inom vilka indexgränser det sökta värdet kan finnas. Därefter bestämmer vi mittpunkten i intervaller, mid, och undersöker det värdet som ligger där. Vi får tre fall: 7
8 Värdet i mittpunkten är större än det största värdet. Vi kan då konstatera att det sökta värdet måste finnas mellan min och min -1, så vi ändrar max till mid -1 och gör ett nytt försök. Värdet i mittpunkten är mindre än det sökta värdet. Vi vet då att värdet måste finnas mellan mid +1 och max, så vi ändrar min till mid +1 och gör ett nytt försök. Vi hittar det sökta värdet, vilket gör att vi kan avbryta sökningen och konstatera att värdet finns i index mid. Exempel: public static int binarysearch(int[] a, int n, int value){ int min = 0; int max = n-1; while (min <= max) { int mid = (min+max)/2; if (a[mid] > value){ max = mid-1; else if (a[mid] < value) { min = mid + 1; else { return mid; return -1; Om vi i varje steg eliminerar hälften av de återstående elementen och från början har n 2 k element i vektorn behövs k varv för att vi bara skall ha en möjlig kandidat kvar. Det största antalet varv i loppen blir därför proportionellt mot log 2 n (man brukar skriva O(logn)), en avsevärd förbättring jämfört med linjärsökning. Skillnaden är inte så stor vid sökningar i mindre vektorer, men om vi skulle söka efter en person i en vektor med hela svenska befolkningen skulle linjärsökning kräva i snitt jämförelser, medan det med binärsökning skulle räcka med mindre än 25 jämförelser. 3 Sortering I Java finns det ett smidigt sätt att sortera vektorer: Arrays.sort(v); om vi skall sortera hela heltalsvektorn v. 3.1 Urvalssortering Den kanske enklaste metoden att sortera är att börja med att leta upp det minsta värdet i vektorn och sätta in det först. Därefter letar vi upp det näst minsta elementet (som är det minsta av de återstående elementen) och sätter in det näst först, och så fortsätter vi att leta upp och sätta in det tredje minsta, fjärde minsta, etc, tills alla element är i rätt ordning. 8
9 public static void selectionsort(int[] a, int n) { for (int i = 0; i < n; i++) { int smallest = i; for (int k = i+1; k < n; k++) { if (a[k] < a[smallest]) { smallest = k; int tmp = a[i]; a[i] = a[smallest]; a[smallest] = tmp; För att få ett mått på hur effektiv denna metod är kan vi räkna antalet jämförelser som behövs för att sortera en vektor med n tal. I första varvet i den yttre for-loopen gör vi n 1 jämförelser (de görs inuti den inre for-loopen), i det andra varvet i den yttre for-loopen gör vi n 2 jämförelser, etc. Totalt får vi: T (n) = (n 1) + (n 2) = n(n 1) 2 = O(n 2 ) jämförelser. dvs om vi dubblar antalet element i vektorn så krävs det ungefär fyra gånger fler jämförelser för att sortera elementen. 3.2 Bubbelsortering En annan sorteringsmetod är bubbelsortering. Den är inte särskilt effektiv men den är ganska lätt att förstå och tillhör allmänbildningen. Metoden bygger på att vi upprepade gånger går igenom vektorn bakifrån och låter tal som är mindre än sina föregångare byta plats med dessa. När vi i något var inte längre behöver byta plats på två element är vi färdiga. I varje varv kan vi gå ett steg kortare eftersom de minsta talen efterhand samlas i vektorns början. 4 Lista, stack och kö 4.1 Listor En lista är en ordnad följd av element. Det finns en före-efter-relation mellan elementen Begrepp som första element i listan", "efterföljaren till visst element i listan"är meningsfulla. Det finns alltså ett positionsbegrepp. Vi kan skapa en Lista med interfacet list: List<String> names; och på så vis vänta med att välja vilken typ av lista vi vill ha. Två exempel på olika klasser som implementerar List. 9
10 ArrayList, som är särskilt bra på att snabbt hämta värden med get-operationen. Insättningar bör man bara göra sist i listan, då insättningar i andra positioner orsaker flyttningar av element. LinkedList, som är särskilt bra på att sätta in och ta bort element i början av listan. Vi skapar en lista såhär: List<String> names = new ArrayList<String>(); Observera: // works but considered ugly: ArrayList<String> names = new ArrayList<String>(); // better! : List<String> names = new ArrayList<String>(); 4.2 Kö En kö kallas även FIFO-lista. First In First Out. Insättningar göras alltid sist i följden, och bortagning avser alltid första elementet. Analogi: En (vanlig) kö när man handlar mat på ICA Stack En stack kallas även LIFO-lista. Last In First Out. Operationer sker på toppen av stacken, dvs. nya element läggs till längst upp, och element tas bort längst upp. Analogi: En tallriks dispenser, en hög med papper. 5 Bra att veta 5.1 Klassen Object Det finns en klass Object, som är alla klassers moder, om vi inte uttryckligen ärver någon annan klass så ärver vi automatiskt klassen Object. Klassen Object innehåller inte särskilt mycket av intresse, men följande kan vara bra att känna till: tostring public String tostring() ger en sträng som beskriver objektet. Denna operation anropas automatiskt om vi skulle försöka skriva ut ett objekt, och implementationen i klassen Object skriver ut klassnamnet och ett heltal (objektets hash-kod) 10
11 Metoden equals används för att jämföra om två objekt är lika. public boolean equals(object obj); Metoden returnerar true om och endast om de jämföra objekten är identiska. Om man istället vill att innehållet inuti objekten ska jämföras måste man skugga equals. public boolean equals(object obj){ if (obj instanceof Person){ return idnbr == ((Person) obj).idnbr; else{ return false; Observera att parametern till equals måste vara av typen Object, annars blir det inte skuggning. Därför måste också typomvandlig till Person ske när man ska använda obj:s idnbr. Uttrycket obj instanceof Person returnerar true om obj:s typ är av Person eller någon subklass till Person. Uttrycket obj instanceof Person returnerar false om obj har värdet null. Förutom operationerna ovan innehåller även Object en operation int hascode() som ger en så kallad hash-kod, dvs ett slags numeriskt fingeravtryck för ett objekt. Detta innebär att alla objekt har en hashkod. 5.2 Interfaces Ett interface(svenska: gränssnitt) är som ett skal med metoder som den som implementerar måste använda. En klass kan implementera flera interface. public interface InterfaceName{ //here is public abstract methods public class ClassName implements InterfaceName{ // attributs, methods, constructor as usual, but all methods in InterfaceName must be included Om det skiljer mycket mellan metoderna i klasserna så använd interface istället för en superklass. 11
12 5.3 Kodningskonventioner Enligt Javas kodningskonvention skall man skriva klasser med stor begynnelsebokstav, ex namnet Account istället för account. Av historiska skäl väljer man i allmänhet att skriva konstanter med stora bokstäver. public final int GOLDEN_NUMBER = 42; 5.4 iterator ArrayList a1 = new ArrayList(); Iterator itr = a1.iterator(); 5.5 Principer Klasser och objekt gör det möjligt för oss att skriva våra program så att de blir lättare att förstå än om vi bara använder ett huvudprogram och underprogram - detta är särskilt viktigt i större programsystem. att utnyttja klasser och objekt på rätt sätt är dock långtifrån trivialt, och mycket har skrivits om hur man gör. Cohesion, som talar om hur väl en klass eller ett paket (ofta använder man namnet modul ) hänger ihop - en klass eller ett paket som gör precis en sak har hög kohesion, medan en klass eller ett paket som har flera olika relaterade uppgifter har låg cohesion. Våra program blir betydligt enklare att förstå, modifiera och återanvända om de ingående klasserna och paketen har hög kohesion, dvs om de gör en eller några få saker vardera. Coupling, som anger hur en klass beror av andra klasser. I ett system med låg coupling kommunicerar objekt med hjälp av enkla protokoll (specifikationer), de varken kan eller behöver känna till det inre tillståndet hos varandra. Ett system med låg coupling gör det möjligt för oss att ändra i en klass utan att andra klasser påverkas i någon större utsträckning, i ett system med hög coupling kan däremot en ändring i en klass ge upphov till en lång kedja av ändringar i andra klasser. Andra problem med låg coupling är att det är svårt att förstå vare enskild klass utan att förstå alla de klasser som den interagerar med, och dessutom att det är svårt att testa individuella klasser. När vi skriver lite större program bör vi sträva efter att ha hög kohesion och låg coupling - ofta får vi automatiskt låg coupling om vi har hög kohesion. Att program ibland blir lite effektivare om vi ökar graden av coupling motiverar sällan den ökade komplexiteten som det ger upphov till. Det finns ett antal principer som kan hjälpa oss att ge våra program bättre struktur: Separation-of-concerns: När vi designar våra system bör vi försöka dela ner dem i mindre delar (klasser), där de olika delarna har så lite gemensam funktionalitet som möjligt - detta är ett sätt att öka de ingående delarnas cohesion. 12
13 Single-responsibility: En klass skall helst bars ha en enda, väldefinierad uppgift, och alla dess operationer bör ha med denna uppgift att göra. För varje ny uppgift en klass får ökar risken att klassen behöver ändras - genom att hålla antalet ansvarsområden för en klass nere ökar vi dess cohesion. Information-hiding: Om vi gör det omöjligt att se det inre av våra klasser (genom att vi private-deklarerar attribut och lämpliga operationer) så riskerar ingen annan att koppla sin klass för hårt till det inre tillståndet i vår klass - vi tvingar alltså på användaren lägre coupling. Open-closed principle: En klass bör vara öppen för utvidgningar, men stängd för ändringar. Detta innebär bland annat att vi inte bör lägga till nya operationer i en klass som redan används, utan att vi stället utvidgar den till nya subklasser. Ofta designar vi våra grundläggande klasser för att våra så allmänna som möjligt (gärna abstrakta), och använder överskuggning för att få objekt av subklasser att bete sig annorlunda än objekt av den ursprungliga klassen. 13
Programmering fortsättningskurs
Programmering fortsättningskurs Philip Larsson 2013 03 09 Innehåll 1 Träd 1 1.1 Binära träd........................................ 1 1.2 Strikt binärt träd..................................... 1 1.3 Binärt
Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel
Föreläsning 3 Innehåll Generiska klasser Implementera generiska klasser Exceptions Dokumentationekommentarer javadoc Enhetstestning - junit Man kan deklarera en eller flera typparametrar när man definierar
EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass
EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet
Föreläsning 3 Innehåll
Föreläsning 3 Innehåll Jämföra element interfacen Comparable och och Comparator Implementera generiska klasser Exceptions Dokumentationekommentarer javadoc Enhetstestning - junit Datavetenskap (LTH) Föreläsning
Diskutera Sortera objekt
Föreläsning 3 Innehåll Diskutera Sortera objekt Metoden sort är en statisk metod i klassen Arrays. Den sorterar vektorn som skickas med som argument. Jämföra element interfacen Comparable och och Comparator
Föreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp
Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser
Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)
Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet
Föreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Föreläsning 4 Innehåll
Föreläsning 4 Innehåll Abstrakta datatypen lista Datastrukturen enkellänkad lista Nästlade klasser statiskt nästlade klasser inre klasser Listklasser i Java Implementera abstrakta datatyperna stack och
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Länkade strukturer, parametriserade typer och undantag
Länkade strukturer, parametriserade typer och undantag Programmering för språkteknologer 2 Sara Stymne 2013-09-18 Idag Parametriserade typer Listor och länkade strukturer Komplexitet i länkade strukturer
Saker du ska kunna Föreläsning 13 & 14
Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering
Objektsamlingar i Java
1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och
Repetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
TENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU
DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU lösningsförslag till tentamen 2017-06-09 Tid: 8:30-12:30. Plats: SB. Ansvarig lärare: Fredrik Lindblad,
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Repetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.
-Algoritmer och Datastrukturer- Abstrakt datatyp Datatyp för en variabel Betecknar i ett programmeringsspråk den mängd värden variabeln får anta. T ex kan en variabel av typ boolean anta värdena true och
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk
Repetition EDAA10 Objekt-orientering Java är ett objekt-orienterat programmeringsspråk Program byggs upp av klasser och objekt Objekt instantieras från klasser Klasser och objekt innehåller attribut och
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,
Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:
Föreläsning 7 Innehåll Rekursion Rekursivt tänkande: Hur många år fyller du? Ett år mer än förra året! Rekursion Rekursiv problemlösning Binärsökning Generiska metoder Rekursiv problemlösning: Dela upp
Föreläsnings 9 - Exceptions, I/O
Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public
Länkade strukturer. (del 2)
Länkade strukturer (del 2) Översikt Abstraktion Dataabstraktion Inkapsling Gränssnitt (Interface) Abstrakta datatyper (ADT) Programmering tillämpningar och datastrukturer 2 Abstraktion Procedurell abstraktion
Algoritmer. Två gränssnitt
Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;
Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Föreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:
Föreläsning 9 Innehåll
Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon
Seminarium 3 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.
Seminarium 3 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Java Collections Framework interface och klasser för samlingar av element interfacen Iterator och Iterable och foreach-sats
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Att skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Seminarium 2 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.
Seminarium 2 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Generik används för att få typsäkra datastrukturer Java Collections Framework Standardbibliotek med datastrukturer i
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004
Lösningsförslag Programmeringsmetodik, KV: Java och OOP 17 januari 2004 Examinator: Johan Karlsson Skrivtid: 9-15 Hjälpmedel: En av följande böcker: Barnes & Kölling: Objects First With Java a practical
2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
OOP Objekt-orienterad programmering
OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via
Föreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
DAT043 Objektorienterad Programmering
DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.
Tentamen 101213 - LÖSNINGSFÖRSLAG Uppgift 1. a) Ger utskriften c( ) in D b) Ger utskriften true c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. d) Ger utskriften b( )
if (n==null) { return null; } else { return new Node(n.data, copy(n.next));
Inledning I bilagor finns ett antal mer eller mindre ofullständiga klasser. Klassen List innehåller några grundläggande komponenter för att skapa och hantera enkellänkade listor av heltal. Listorna hålls
LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Fördjupad Java. Undantagshantering. Fel
Fördjupad Java 1 Undantagshantering Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.
Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i
F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander
F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder
Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt
Föreläsning 15 & 16 ARV Objektorienterad programmering (OOP) Idé: vi ser ett program som en modell av verkligheten Ursprung: Simula-67, Norsk regnesentral, 1960-talet Smalltalk-80: Xerox PARC, 1970-talet
Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts
Föreläsning 11-12 Innehåll Hantera många element Tidigare har vi använt vektorer för att lagra många element av samma tp. Eempel: Klassen ArraList Inläsning från tetfil, utskrift på tetfil int[] nbrs
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt
Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016
Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Föreläsning 2. Länkad lista och iterator
Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF
Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer
Föreläsning 1-12 Innehåll Vektorer Registrering (räkna element av olika slag) Sökning Matriser Klasserna String och StringBuilder Repetition inför delmålskontroll 2 Undervisningsmoment: föreläsning 1-12
Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag
Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har
Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER
Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Denna vecka Läsperiodens sista föreläsning Uppsamlingslabb (laboration 6 redovisas först nästa läsperiod) Ingen resurstid
Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag
Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har
Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19 1. a) En samling element där insättning och borttagning
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista
Föreläsning 4 Kö Föreläsning 4 ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista ADT Kö Grundprinciper: En kö fungerar som en kö. Man fyller på den längst bak och
Språkkonventioner och redigering av tal.
Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner
Föreläsning 2 Innehåll. Generiska klasser. Generik i Java. Varför generiska klasser Bakgrund
Föreläsning 2 Innehåll Generiska klasser Javas samlingsklasser är generiska. Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element metoden equals En generisk
Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs 2013 12 19 1. a) En samling element där insättning och borttagning
Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt
Föreläsning 7-8 Innehåll Objekt som argument Antag att vi har lagt till följande metod i klassen Square (från lab 4). Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2015-05-26 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg
Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING
Föreläsning 11 12 ALGORITMER: SÖKNING, REGISTRERING, SORTERING Seminarier: Fredagsklubben för dig som tycker att programmering är svårt (0 eller möjligen 1 poäng på delmålskontrollen) inte avsedda för
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140828 a) public class MyMax { public static void main(string[] args) { //5 ändra String till String[] System.out.println("Maximum is: " + maximum(5, 7)); //2 ändra
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Föreläsning 7-8 Innehåll
Föreläsning 7-8 Innehåll Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder Datavetenskap (LTH) Föreläsning 7-8 HT 2017 1 / 42 Objekt som argument Antag att vi har lagt
Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016
Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,
Laboration A Objektsamlingar
Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se
ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition
Seminarium 4 Köer och Stackar Innehåll ADT:erna Kö och Stack Definitioner Operationer Exempel på användning Givna klasser i Java Interfacet Queue Klassen Stack Klassen LinkedList Klassen PriorityQueue
Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet
Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig
Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och
Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält
13 Prioritetsköer, heapar
Prioritetsköer, heapar 31 13 Prioritetsköer, heapar U 101. En prioritetskö är en samling element där varje element har en prioritet (som används för att jämföra elementen med). Elementen plockas ut i prioritetsordning
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack
Chapter 4: Writing Classes/ Att skriva egna klasser.
Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad
Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2
Objektorienterad programmering E Algoritmer Linjär sökning Binär sökning Tidsuppskattningar Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk; dess syntax och semantik, bibliotek
Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009
Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Christian 5 mars 2010 Observera att poängen nedan är preliminära det är möjligt att vi korrigerar något
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Föreläsning 14. Filhantering
Föreläsning 14 Filhantering Filhantering Att hantera filer, dvs att läsa eller skriva data till en fil är en viktig del i de flesta program. Ur Javas synvinkel är filer objekt med egenskaper och metoder
Datastrukturer. föreläsning 3. Stacks 1
Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer
Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag
Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer
Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.
Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer
Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Tentamen Programmeringsteknik II Inledning. Anmälningskod:
Tentamen Programmeringsteknik II 2016-01-11 Inledning I bilagan finns ett antal mer eller mindre ofullständiga klasser. Några ingår i en hierarki: List, SortedList, SplayList och ListSet enligt vidstående
Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Laboration 2 Datastrukturer En liten uppgift Frågor 1 Laboration 2 - Datastrukturer Länkade datastrukturer Stack Kö (En. Queue) Lista
Föreläsning 2. Länkad lista och iterator
Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF