List.java. List.java. Printed by Tom Smedsaas
|
|
- Solveig Sandberg
- för 4 år sedan
- Visningar:
Transkript
1 Dec 17, 08 8:35 Page 1/2 /** class List * Representerar en länkad lista av godtyckliga objekt public class List { /** class ListNode * Noder i listor protected static class ListNode { protected Object data; protected ListNode next; ListNode(Object d, ListNode n) { data = d; next = n; return data.tostring(); List.java /** class ListException * Undantagsklass för List public static class ListException extends RuntimeException { public ListException(String msg) { super(msg); protected ListNode head; // Första noden i listan /** Constructors public List() { head = null; List.java Dec 17, 08 8:35 Page 2/2 * Skapar en textrepresentation av listan genom att * använda de lagrade objektens tostring metoder. Objekten * åtskiljs av blanktecken och hela listan innesluts * av hakparenteser ([]) /** get() * Tar bort det första elementet ur listan och returnerar * dess värde. ListException Om listan är tom public Object get() { /** remove() * Tar bort första förekomst av objektet o (definierat av * equals) ur listan. ListException Om objektet inte finns i listan public void remove(object o) { head = remove(o, head); /** Tar bort första förekomst av objekt o (definierat av * equals) ur nodföljden som börjar med l. Första noden i den modifierade lista ListException Om objektet inte finns i följden protected static ListNode remove(object o, ListNode l) { /** length() * Beräknar längden av listan listans längd public int length() { return length(head); protected static int length(listnode l) { if (l==null) return 0; return 1 + length(l.next); /** add(); * Lägger in ett nytt objekt först i listan public void add(object o) { head = new ListNode(o, head); /** tostring() Wednesday November 25, 2009 List.java 1/9
2 Dec 16, 08 16:36 Page 1/1 /** Class QueueTest * Testar Queue klassen public class QueueTest { public static void main(string[] args) { Queue q = new Queue(); for ( int i=1; i<=10; i++ ) q.add(new Integer(i)); q.get(); q.get(); System.out.println("Aktuell kö: " + q); while ( q.length()>0 ) System.out.print(q.get() + " "); System.out.println(); q.add(new Integer(42)); q.remove(new Integer(42)); /* Output: vranx$ java QueueTest Aktuell kö: [ ] Exception in thread "main" List$ListException: remove illegal for queue at Queue.remove(Queue.java:24) at QueueTest.main(QueueTest.java:20) vranx$ QueueTest.java Dec 16, 08 16:15 Page 1/4 /** Symbolisk kalkylator Förvillkor för alla parser metoder förutom main, run: Tokenizern positionerad till det första obehandlade token dvs till det token som står på tur att behandlas. Eftervillkor för alla parser metoder utom main, run och statement: Tokenizern positionerad till det första obehandlade token. import java.util.*; import java.io.*; import symbolic.*; Parser.java /** class Parser public class Parser { private StreamTokenizer st private TreeMap<String, Sexpr> map; private HashSet<String> commands; private HashSet<String> unaries; // SyntaxException public class SyntaxException extends RuntimeException { public SyntaxException(String msg) { super(msg); // Constructor public Parser() throws IOException { map = new TreeMap<String,Sexpr>(); unaries = new HashSet<String>(); commands = new HashSet<String>(); st = new StreamTokenizer( new BufferedReader( new InputStreamReader(System.in))); st.eolissignificant(true); st.ordinarychar( + ); st.ordinarychar( ); st.ordinarychar( / ); st.ordinarychar( * ); st.ordinarychar( ^ ); st.ordinarychar(! ); st.ordinarychar( \ ); st.ordinarychar( & ); st.ordinarychar( " ); {char c = " ; //To fool a2ps unaries.add("&"); unaries.add("\""); unaries.add(" "); unaries.add("exp"); unaries.add("log"); unaries.add("sin"); unaries.add("cos"); commands.add("quit"); commands.add("variables"); // main() public static void main(string [] args) throws IOException { Parser p = new Parser(); p.run(); Wednesday November 25, 2009 QueueTest.java, Parser.java 2/9
3 Dec 16, 08 16:15 Parser.java Page 2/4 // run() public void run() throws IOException { while (true) try { do { System.out.print("? "); while ( st.nexttoken() == st.tt_eol ); statement(); catch (SyntaxException e) { System.out.println("*** Syntax Error: " + e.getmessage()); while ( st.ttype!= st.tt_eol ) catch (EvaluationException e) { System.out.println("*** Eval Error: " + e.getmessage()); // statement() public void statement() throws IOException { if ( st.ttype==st.tt_word && commands.contains(st.sval) ) { command(); { Sexpr d = assignment(); System.out.println("Read : " + d); System.out.println("Evaluated : " + d.eval(map)); if ( st.ttype!= st.tt_eol ) throw new SyntaxException("Expected EOL but found: " + st); // command() public void command() throws IOException { if (st.sval.equals("quit") ) { System.out.println("Bye"); System.exit(0); if ( st.sval.equals("variables") ) { System.out.println("Variables: " + map); throw new SyntaxException("Unknown command: " + st); // assignment() public Sexpr assignment() throws IOException { Sexpr result = expression(); while ( st.ttype == = ) { if ( st.ttype!= st.tt_word ) throw new SyntaxException("Expected identifier but found: " + st); { result = new Assignment(result, new Variable(st.sval)); return result; // expression() public Sexpr expression() throws IOException { Sexpr sum = term(); while ( st.ttype == + st.ttype == ) { int oper = st.ttype; if (oper== + ) sum = new Addition(sum, term()); Parser.java Dec 16, 08 16:15 Page 3/4 sum = new Subtraction(sum, term()); return sum; // term() public Sexpr term() throws IOException {.. // factor() public Sexpr factor() throws IOException { Sexpr result = primary(); while ( st.ttype == \ ) { if ( st.ttype!= st.tt_word ) throw new SyntaxException("Expected identifier but found: " + st); { result = new Differentiation(result, new Variable(st.sval)); return result; // primary() public Sexpr primary() throws IOException { Sexpr result = null; if ( st.ttype == ( ) { // ( assignment ) result = assignment(); if ( st.ttype!= ) ) throw new SyntaxException("Expected ) but found " + st); if ( st.ttype == st.tt_number ) { // number result = new Constant(st.nval); { String op = "" + (char) st.ttype; if ( st.ttype == st.tt_word ) op = st.sval; if ( unaries.contains(op) ) { // unary result = unary(op); if ( st.ttype == st.tt_word ) { // identifier result = new Variable(op); { // error throw new SyntaxException("Unexpected: " + st); // factorial while ( st.ttype ==! ) { result = new Factorial(result); return result; // unary() public Sexpr unary(string op) throws IOException { if (op.equals(" ")) return new Uminus(primary()); if (op.equals("\"")) return new Quotation(primary()); if (op.equals("&")) Wednesday November 25, 2009 Parser.java 3/9
4 Dec 16, 08 16:15 Page 4/4 return new Evaluation(primary()); if (op.equals("sin")) return new Sin(primary()); if (op.equals("cos")) return new Cos(primary()); if (op.equals("exp")) return new Exp(primary()); if (op.equals("log")) return new Log(primary()); throw new SyntaxException("Undefined operator: " + op); Parser.java Klasshierarki.java Dec 17, 08 9:32 Page 1/7 /** class Sexpr public abstract class Sexpr { public abstract Sexpr eval(map<string, Sexpr> map); public abstract String getname(); throw new EvaluationException("Can not differentiate: " + getname()); public double getvalue() { throw new RuntimeException("Internal error: getvalue()"); return 100; public boolean isconstant() { return false; public boolean iszero() { return false; public boolean isone() { return false; public boolean equals(sexpr e) { return tostring().equals(e.tostring()); /** class Atom public abstract class Atom extends Sexpr { return getname(); /** class Unary public abstract class Unary extends Sexpr { protected final Sexpr argument; public Unary(Sexpr argument) { this.argument = argument; return 50; if ( argument.priority() <= priority() ) return getname() + "(" + argument.tostring() + ")"; Wednesday November 25, 2009 Parser.java, Klasshierarki.java 4/9
5 Dec 17, 08 9:32 Page 2/7 return getname() + " " + argument.tostring(); /** class Binary public abstract class Binary extends Sexpr { protected final Sexpr left, right; public Binary(Sexpr left, Sexpr right) { this.left = left; this.right = right; return 30; // Default for some binary operators.. /** class Addition public class Addition extends Binary { public Addition(Sexpr left, Sexpr right) { return Symbolic.add( left.eval(map), right.eval(map)); return "+"; Klasshierarki.java return Symbolic.add(left.diff(x), right.diff(x)); Dec 17, 08 9:32 Klasshierarki.java Page 3/7 return "="; return 0; /** class Constant public class Constant extends Atom { private final double value; public Constant(double value) { this.value = value; return this; return "" + value; return new Constant(0); public double getvalue() { return value; public boolean isconstant() { return true; public boolean iszero() { return value==0.0; return 10; /** class Assignment public class Assignment extends Binary { public Assignment(Sexpr left, Sexpr right) { Sexpr val = left.eval(map); map.put(right.getname(), val); return val; public boolean isone() { return value==1.0; /** class Cos public class Cos extends Unary { /** class Differentiation public class Differentiation extends Binary { public Differentiation(Sexpr left, Sexpr right) { Wednesday November 25, 2009 Klasshierarki.java 5/9
6 Klasshierarki.java Dec 17, 08 9:32 Page 4/7 Sexpr val = left.eval(map); return val.diff(right); Dec 17, 08 9:32 Klasshierarki.java Page 5/7 /** class EvaluationException public class EvaluationException extends RuntimeException { return " "; public EvaluationException(String msg) { super(msg); return 40; /** class Division public class Division extends Binary { public Division(Sexpr left, Sexpr right) { return Symbolic.divide(left.eval(map), right.eval(map)); return "/"; /** class Exp public class Exp extends Unary { public Exp(Sexpr argument) { super(argument); return Symbolic.exp(argument.eval(map)); return "exp"; return Symbolic.multiply(argument.diff(x), new Exp(x)); Sexpr numerator = Symbolic.subtract( Symbolic.multiply(left.diff(x), right), Symbolic.multiply(left, right.diff(x)) ); Sexpr denominator = Symbolic.multiply(right, right); return Symbolic.divide(numerator, denominator); return 30; /** class Factorial public class Factorial extends Unary {.. /** class Log public class Log extends Unary { /** class Multiplication public class Multiplication extends Binary { /** class Evaluation public class Evaluation extends Unary { public Evaluation(Sexpr argument) { super(argument);.. public Multiplication(Sexpr left, Sexpr right) { return Symbolic.multiply( left.eval(map), right.eval(map)); return "*"; return "&"; return Symbolic.add( Symbolic.multiply(left.diff(x), right), Symbolic.multiply(left, right.diff(x)) ); Wednesday November 25, 2009 Klasshierarki.java 6/9
7 Dec 17, 08 9:32 Page 6/7 return 30; Klasshierarki.java Dec 17, 08 9:32 Klasshierarki.java Page 7/7 /** class Variable public class Variable extends Atom { private final String ident; /** class Power public class Power extends Binary { public Power(Sexpr left, Sexpr right) { return Symbolic.power( left.eval(map), right.eval(map)); public Variable(String ident) { this.ident = ident;.. return ident; return "^"; return 30; if (ident.equals(x.getname())) return new Constant(1.); return new Constant(0.); /** class Quotation public class Quotation extends Unary { public Quotation(Sexpr argument) { super(argument);.. return "\""; /** class Sin public class Sin extends Unary { /** class Subtraction public class Subtraction extends Binary { /** class Uminus public class Uminus extends Unary { Wednesday November 25, 2009 Klasshierarki.java 7/9
8 Symbolic.java Dec 16, 08 16:16 Page 1/1 /** class Symbolic public class Symbolic { public static Sexpr add(sexpr a, Sexpr b) { public static Sexpr multiply(sexpr a, Sexpr b) { public static Sexpr subtract(sexpr a, Sexpr b) { public static Sexpr divide(sexpr a, Sexpr b) { Dec 16, 08 15:45 Page 1/2 /*************************************************************************** * queue.h typedef struct node { // Noder i kön void * data; struct node *next; node, *Node; cqueues.c public static Sexpr exp(sexpr x) { if ( x.isconstant() ) return new Constant( Math.exp(x.getValue()) ); return new Exp(x); public static Sexpr log(sexpr x) { public static Sexpr sin(sexpr x) { public static Sexpr cos(sexpr x) { public static Sexpr umin(sexpr x) { public static Sexpr factorial(sexpr x) { if ( x.isconstant() ) {.. return new Factorial(x); public static Sexpr power(sexpr x, Sexpr y) { if ( x.isconstant() ) return new Constant( Math.pow(x.getValue(), y.getvalue()) ); return new Power(x, y); typedef struct queue { // köpost Node first; Node last; Node current; queue, *Queue; Queue newqueue(); // Konstruktor int isempty(queue q); // 1 om kön tom, annars 0 void put(queue q, void *data); // Lagra ett element sist i kön void *get(queue q); // Ta ut och returnera första elementet void reset(queue q); // Initiera iteratorn int more(queue q); // 1 om fler element, annars 0 void *next(queue q); // returnerar aktuellt element och stegar fram /************************************************************************** * Testprogram för kö mekanismen #include <stdio.h> #include "queue.h" int main() { Queue q = newqueue(); put(q, "Tack"); put(q, "för"); put(q, "fisken"); // Iterera över kön reset(q); while (more(q)) { printf("%s ", (char *)next(q)); printf("\n\n"); // Ta ut elementen ur kön while (!isempty(q)) printf("%s ", (char *)get(q)); printf("\n"); return 0; /* Körresultat vranx$ gcc queuetest.c queue.c vranx$ a.out Tack för fisken! Tack för fisken! vranx$ Wednesday November 25, 2009 Symbolic.java, cqueues.c 8/9
9 Dec 16, 08 15:45 Page 2/2 /**************************************************************************** * queue.c implementationsfil för köer #include <stdlib.h> #include "queue.h" /** Initierar ett köobjekt med en tom kö. * Returnetat en pekare till det skapade kö objektet Queue newqueue() { Queue q = (Queue) malloc(sizeof(queue)); q >first = q >last = q >current = NULL; return q; /** Returnerar 1 om kön är tom, annars 0 int isempty(queue q) { return q >first == NULL; cqueues.c /** Skapar ett ett nytt element med data som innehåll sist i kön void put(queue q, void *data) {.. /** Om kön tom returneras NULL, annars tas det första elementet ur kön * och dessa data returneras void *get(queue q) { if ( q >first == NULL ) return NULL; { Node n = q >first; void *d = n >data; q >first = n >next; return d; /** Initierar iteratorn till det första elementet i kön eller NULL om kön tom void reset(queue q) { q >current = q >first; /** Returnerar 1 om iteratorn kommit förbi det sista elementet int more(queue q) { return q >current!=null; /** Returnerar värdet i det aktuella elementet. * Stegar fram iteratorn (om more(q)!=0) void *next(queue q) {.. Wednesday November 25, 2009 cqueues.c 9/9
List.java. List.java. Printed by Tom Smedsaas
Mar 03, 08 17:48 Page 1/3 class List * Representerar en länkad lista av godtyckliga objekt public class List { ListNode * Noder i listor protected static class ListNode { protected Object data; protected
Läs merTentamen Imperativ och objektorienterad programmering
Tentamen Imperativ och objektorienterad programmering 2009-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Läs merObligatorisk uppgift 5
(5 oktober 2018 Symbolisk kalkylator 1 ) Obligatorisk uppgift 5 En kalkylator som hanterar uttryck symboliskt dvs värden är uttryck inte bara tal. Uppgiften exemplifierar: objektorientering återanvändning
Läs merObligatorisk uppgift 5: Symbolisk kalkylator
Informationsteknologi Tobias Wrigstad IOOP HT10 Obligatorisk uppgift 5: Symbolisk kalkylator Moment: Objektorientering med klasshierarkier, arv och dynamisk bindning samt dynamiska strukturer, undantag,
Läs merObligatorisk uppgift 5: Symbolisk kalkylator
Informationsteknologi Tom Smedsaas IOOP ht09 Obligatorisk uppgift 5: Symbolisk kalkylator Moment: Objektorientering med klasshierarkier, arv och dynamisk bindning samt dynamiska strukturer, undantag, samlingar
Läs merParsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck
Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation
Läs merObservera. Tentamen Programmeringsteknik II Skrivtid:
Tentamen Programmeringsteknik II 2016-10-19 Skrivtid: 0800 1300 Tänk på följande Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Fyll i försättssidan
Läs merObligatorisk uppgift: Numerisk kalkylator
(11 april 2016 T03.1 ) Obligatorisk uppgift: Numerisk kalkylator Följande klasser skall ingå Calculator Stokenizer Parser Till stor del given. Kompletteras bara med exceptionhantering. Given - skall användas
Läs merLägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.
Tentamen Programmeringsteknik II 2016-10-19 Skrivtid: 0800 1300 Tänk på följande Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Fyll i försättssidan
Läs merObligatorisk uppgift: Numerisk kalkylator
(12 september 2018 OU2 1 ) Obligatorisk uppgift: Numerisk kalkylator Följande klasser skall ingå Calculator Stokenizer Parser Till stor del given. Kompletteras bara med exceptionhantering. Given - skall
Läs merpublic boolean containskey(string key) { return search(key, head)!= null; }
Tentamen Programmeringsteknik II 2009-05-26 med lösningar Skrivtid: 0900-1200 Uppgifter 1. Programbilagan ListMap.java innehåller en klass som implementerar en avbildning mellan mängden strängar och mängden
Läs merObligatorisk uppgift: Symbolisk kalkylator
Informationsteknologi Programmeringsteknik II 22 augusti 2018 Obligatorisk uppgift: Symbolisk kalkylator Moment: Dynamiska strukturer (särskilt trädstrukturer), klasshierarkier, arv, dynamisk bindning,
Läs merKlassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en
Tentamen Programmeringsteknik II 2017-10-23 Skrivtid: 14:00 19:00 Inledning Skrivningen innehåller ett antal bilagor: Bilagan listsandtrees innehåller fyra klasser: Klassen List med några grundläggande
Läs merTentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.
Tentamen Programmeringsteknik II för STS 2007-03-09 Skrivtid: 1500-2000 Inga hjälpmedel. Tänk på följande OBS: För betygen 4, 5 och VG kommer något högre gränser än normalt användas. Skriv läsligt! Använd
Läs merTentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!
Tentamen Programmeringsteknik II 2013-10-22 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Läs merDet är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2013-06-05 Skrivtid: 1400-1700 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Läs merLägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.
Tentamen Programmeringsteknik II 2017-10-23 Skrivtid: 14:00 19:00 Tänk på följande Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Fyll i försättssidan
Läs merTENTAMEN 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äs merTentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.
Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något
Läs merTentamen Programmeringsteknik 2 och MN Skrivtid: Inga hjälpmedel.
Tentamen Programmeringsteknik 2 och MN2 2006-03-10 Skrivtid: 0900-1400 Inga hjälpmedel. Tänk på följande OBS: För betygen 4, 5 och VG kommer något högre gränser än normalt användas. Skriv läsligt! Använd
Läs merTentamen 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
Läs merKap J 7-1 Mer om arv. (superklass) (subklass)
Mer om arv. Kap J7-1 I Java självt är arv frekvent förekommande. Två exempel är exceptions och components (awt). Arv bygger normalt på en IS-A-relation. Button IS-A Component. NullPointerException IS-A
Läs merInterface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010
Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 interface, motivation och bakgrund Antag att vi gör en generell listklass: public class List { protected static class ListNode { public
Läs merF3: Recursive descent, tokenisering, avbildningar och undantag. Carl Nettelblad
F3: Recursive descent, tokenisering, avbildningar och undantag Carl Nettelblad 2017-04-03 Säg vad du vill göra Varför skriver vi kod? För att få datorn att göra det vi vill För att själva läsa koden För
Läs merImperativ programmering
Imperativ programmering Vad är det? Ett programmeringsparadigm att jämföras med funktionell programmering och logikprogrammering. Vanlig programmering Programmen skrivs som en sekvens av satser (kommandon)
Läs merFö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
Läs merOutline. 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
Läs merLösningar till Tentamen i Programmeringsteknik II och MN
Lösningar till Tentamen i Programmeringsteknik II och MN2 2006-03-10 1. En nyckel har en unik plats i såväl binära sökträd som i hashtabeller. Dubletter skall alltså inte lagras. Det blir ogörligt att
Läs merAtt 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
Läs merProgrammering 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
Läs merObjektorienterad 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
Läs merExempel ( )
Exempel Antag att vi vill ha en generell stack. En stack är en mekanism som man kan lagra i och hämta från enligt principen sist in, först ut (eng LIFO). Man skall alltså kunna Skapa en stack Lägga värden
Läs merFö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
Läs merLägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.
Tentamen Programmeringsteknik II 2017-05-29 Skrivtid: 0800 1300 Tänk på följande Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper. Fyll i försättssidan
Läs merTentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!
Tentamen Programmeringsteknik II 2014-01-09 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja
Läs mer(n 1)(n) 2 för n 1, dvs att tidskomplexiteten är kvadratisk i värsta fall. 0 + 1 + 2 +... + (n 1) =
LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad design Totala antalet uppgifter: 6 Lärare: Håkan Jonsson, Tomas Johansson, 491700, 491465 Resultatet anslås senast 2006-05-20 i A-huset. Tillåtna
Läs merKompilering 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
Läs merSprå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
Läs merDet finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2012-03-14 Skrivtid: 0800-1100 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Läs merFakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson
Fakulteten för ekonomi, kommunikation och IT Corba Datum: 2007-10-17 Namn: Kurs: Henrik Bäck Mathias Andersson DVGC02 Innehållsförteckning Implementation 3 IDL-fil 3 Server 3 Klient 3 Körning 3 Bilagor
Läs merObjektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Läs merBST implementering, huvudstruktur
BST implementering, huvudstruktur BST-implementering public class BinarySearchTree
Läs merLite 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
Läs merRecitation 4. 2-D arrays. Exceptions
Recitation 4. 2-D arrays. Exceptions Animal[] v= new Animal[3]; 2 declaration of array v Create array of 3 elements v null a6 Assign value of new-exp to v Assign and refer to elements as usual: v[0]= new
Läs merLä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
Läs merDet ä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
Läs merCommand line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
Läs merGrundkurs 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
Läs merFöreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Läs merObjektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
Läs merFö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
Läs merOutline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine.
Outline Objektorienterad Programmering (TDDC77) Föreläsning XIII: Kollektioner (kont.) [hashing, iteratorer], Undantag Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Collection Iterable Undantag
Läs merTENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.
1 (8) TENTMEN: lgoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. örja varje uppgift på ett nytt blad. Skriv inga lösningar i tesen. Skriv ditt idnummer
Läs merF4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Läs mer//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.
/*==================================================================== Detta program hör ihop med dokumentet EXEMPEL_AVERAGE_POINTS.PDF där det finns förklaringar. ======================================================================*/
Läs merLö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
Läs merTDDE10 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
Läs merFö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
Läs merMalmö högskola 2008/2009 CTS
Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Läs merLösningar för tenta 2 DAT043,
Lösningar för tenta 2 DAT043, 2018-06-08. Uppgift 1 public class Car{ private String model; private String year; private double price; public Car(String model, String year, double price){ this.model =
Läs merLä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
Läs merF12 - 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
Läs merOmtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Läs mer/* * * Lösningsförslag tentamen DIT950 * Datum * */ /* * -1 - */ För samtliga gäller,se föreläsningsanteckningar.
* * Lösningsförslag tentamen DIT950 * Datum 150317 * * -1 - För samtliga gäller,se föreläsningsanteckningar. * - 2 - (Diagram visas inte, kontakta mig för ev frågor) // a C c = new A(); // Compile! Sub
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XIII: Kollektioner (kont.) [hashing, iteratorer], Undantag Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Collection Iterable Hashing
Läs merDagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar
Läs merLägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.
Tentamen Programmeringsteknik II 2016-05-30 Skrivtid: 1400 1900 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
Läs merInlämningsuppgift MiniPlotter
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner
Läs merÖvning vecka 6. public void method2() { //code block C method3(); //code block D }//method2
Övning vecka 6. TDA550 - Objektorienterad programvaruutveckling IT, fk Denna vecka ska vi titta på undantag, testning, generiska enheter, samlingar och designmönstret Iterator. Uppgift 1 Exceptions a)
Läs merTDDC30. 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äs merFö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
Läs merHur ser ett Java-program ut?
(27 augusti 2012 Repetitionsmaterial 1 ) Hur ser ett Java-program ut? // Ett första Java-program som skriver // ut ett meddelande på terminalen public class HelloWorld { public static void main(string
Läs merTentamen Programmeringsteknik II
Tentamen Programmeringsteknik II 205-0-23 Inledning I bilagan finns ett antal mer eller mindre ofullständiga klasser. Några ingår i en hierarki: BasicList, List, SortedList och Queue enligt vidstående
Läs merLÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P.
Uppgift 1 (2 poäng) Utgå från följande klassdefinition : public class TempKlass public String uttext; public static int svar; LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P. 991122
Läs merOOP 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
Läs merDagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar
Läs merLägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.
Tentamen Programmeringsteknik II 2016-05-30 Skrivtid: 1400 1900 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
Läs merTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15
TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd
Läs merGrafik, grafiska användargränssnitt och rörliga bilder
(22 maj 2015 F14.1 ) Grafik, grafiska användargränssnitt och rörliga bilder Viktigt: Grafiska komponenter: Fönster, etiketter, knappar, textfält,... Tekniken med att med genom arv definiera t ex sitt eget
Läs merDAT043 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
Läs merFö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
Läs merSymboliska konstanter const
(5 oktober 2010 T11.1 ) Symboliska konstanter const Tre sätt som en preprocessormacro med const-deklaration med enum-deklaration (endast heltalskonstanter) Exempel: #define SIZE 100 const int ANSWER =
Läs mer2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa
2203$( Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 previous next Exempel: lampa Light1 #
Läs merTentamen. Lösningsförslag
Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt
Läs merDet finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Läs merTDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5 Daniel Wetterbro 23 november 2009 Sammanfattning Denna vecka ska vi titta på I/O, samlingar och generics. Övningarna är graderade
Läs merFöreläsning 3: Abstrakta datastrukturer, kö, stack, lista
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina
Läs merKlasshierarkier. Klasser kan byggas på redan definierade klasser
Klasshierarkier Klasser kan byggas på redan definierade klasser på två sätt: Klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: klassen partikel består av ett antal attribut av typen
Läs merKungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Läs merOOP 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
Läs merLösningsförslag FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 14 Lösningsförslag FYTA11 Javaprogrammering Torsdag 29 januari 2015, 09:15 13:15 Instruktioner Hjälpmedel: Papper och penna.
Läs merIdag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Läs merTDDD78 Viktiga begrepp, del 2
jonas.kvarnstrom@liu.se 2015 TDDD78 Viktiga begrepp, del 2 Identitet och likhet Är likhet och identitet samma sak? Oj, vi har samma kläder på oss idag! Nej, men likadana! Besserwisser 3 Detta är två rutor
Läs merFÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Läs merTentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2008-05-27 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:
Läs merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs merTENTAMEN 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
Läs merLösningsförslag till tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Lösningsförslag till tentamen FYTA11 Javaprogrammering Fredag 9:e januari 2009, 09:00 13:00 Uppgift 1: Leta buggar Titta på klasserna A,
Läs mer