Föreläsning 7. Föreläsning 7

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 7. Föreläsning 7"

Transkript

1 Föreläsning 7 I ett program hantera man ofta samlingar av objekt av samma typ. Klassen String Föreläsning 7 Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner för att hantera fält. Klassen String Ett fält är en numrerad samling av element, där varje element är av samma datatyp och elementen selekteras med. Ett fält är ett objekt som nås via en referens list int[] list new int[5]; Indexering sker alltid från. Oinitierade heltal får värdet. Istället för att skapa ett fält med new kan fältet skapas genom att initiera värden till fältet vid deklarationen. Antalet värden som då deklareras bestämmer fältets storlek. list list[] list[1] list[] list[] list[] int[] list,,, 1; 1 list[] list[1] list[] list[] Varje enskilt element i ett fält kan handhas individuellt via sitt : list[] 1; list[1] 5; list[] 6; list[] ; list[] ; Längden av ett fält fås av instansvariabeln length list list list[] list[1] list[] list[] list[] list.length int nrofelements list.length; 1 list[] list[1] list[] list[]

2 Tilldelning ger ingen kopia, utan en referens till samma fält! kan skapas av godtycklig typ. double [] numbers new double[]; String[] names "Adam", "Beda", "Cesar", "David", "Erik", "Fabian"; Point[] points new Point[]; listone int[] listone, 1,, 1, ; int[] listtwo listone; listtwo Klassen Point är definierad enligt: class Point private int x, y; Point(int x, int y) this.x x; this.y y; //fler metoder //Point Point[] points new Point[]; points[1] new Point(5, ); 1 1 Satsen listtwo[] 15; points resulterar således i att även elementet listone[] får värdet 15! listone 5 Oinitierade elemnet får värdet. listtwo Klassen java.util.arrays Tilldelning ger ingen kopia, utan en referens till samma fält! I klassen java.util.arrays finns ett antal klassmetoder som är användbara när man arbetar med endimensionella fält: alist int[] alist,,,, 9; int[] anotherlist,,,, 9; 9 9 erar true om fälten a och b är lika långa och motsvarande komponenter är lika, annars eras false. int[] copyof(int[] f, int length) erar en kopia av fältet f med längden length. Om kopian är kortare än f sker en trunkering, om kopian är längre fylls kopian ut med :or. int[] copyofrange(int[] f, int from, int to) erar ett fält som innehåller elementen från from till to-1 i fältet f. String tostring(int[] f) erar en textrepresentation av fältet f, på formen [e1, e,, en] void fill(int[] f, int value) sätter alla element i fältet f till värdet value. void fill(int[] f, int from, int to, int value) sätter alla elementen från from till to i fältet f till värdet value. anotherlist Jämförn alist anotherlist ger resultatet false, eftersom det är värdet i variablerna alist och anotherlist som jämförs och inte värdet som dessa variabler refererar till!! 7 boolean equals(int[] a, int[] b)

3 Användning av metoder i java.util.arrays Klassen java.util.arrays Exempel: Att sortera och skriva ut ett fält import java.util.arrays; int[] list 5,,,, 1, 9, 6, 7, ; Arrays.sort(list); System.out.println(Arrays.toString(list)); void sort(int[] f) sorterar elementen i fältet f i stigande ordning void sort(int[] f, int from, int to) sorterar element från from till to i fältet f i stigande ordning. Utskriften som erhålls blir: [1,,,, 5, 6, 7,, 9] int binarysearch(int[] f, int key) erar för key om key finns i fältet f, annars eras ett värde <. Observera att fältet f måste vara sorterat! Exempel: Att lokalisera ett element i ett sorterat fält int binarysearch(int[] f, int from, int to, int key) erar för key om key finns i fältet f mellan from och to annars eras ett värde <. import java.util.arrays; int[] list 5,,,, 1, 9, 6, 7, ; Arrays.sort(list); //sortera fältet int Arrays.binarySearch(list, 9); if ( > ) System.out.println("Talet 9 finns i " + ); System.out.println("Talet 9 finns INTE i fältet!"); boolean isinlist(int[] list, int target) Observera att sortering kan innebära att man förstör fältet, ifall om den inbördes ordningen av elementen i fältet har betyd för applikationen. boolean found false; for (int < list.length; + 1) if (target list[]) found true; Att genomlöpa ett fält. Att söka i ett osorterat fält. Implementation av en metod som erar true om ett visst värde finns i ett För att genomlöpa alla elementen i ett fält används normalt en for- loop givet fält, annars erar metoden false. int[] list new int[]; found; Ett första försök: Använd en for-sats för genomsökning av hela listan for (int i i < list.length; i i + 1) //isinlist // gör de bearbetningar av elementen Samtliga dessa metoder finns också för andra typer av fält, t.ex. double[], boolean[] och char[]! 9 Innan vi börjar // som skall göras sökningen har vi inte boolean isinlist(int[] list, int target) funnit vad vi söker boolean found false; for (int < list.length; + 1) if (target list[]) found true; Nu har vi funnit det vi söker found; //isinlist När När vi vi funnit funnit vad vad vi vi söker söker fortsätter fortsätter sökningen sökningen ändock ändock till till slutet slutet av av listan! listan! Onödigt! Onödigt! Sluta Sluta när när vi vi hittat hittat vad vad vi vi söker! söker! Exempel: Summera talen i heltalsfältet list int sumofelements(int[] list) int sum for (int i i < list.length; i i + 1) sum sum + list[i]; sum; //sumofelements 11 1

4 Att söka i ett osorterat fält. En bättre lösning: Att söka i ett osorterat fält. Använd en while-sats och sluta när vi funnit det vi söker Alternativa implementationer boolean isinlist(int[] list, int target) boolean isinlist(int[] list, int target) int boolean found false; while ( < list.length &&!found) if (target list[]) found true; + 1; found; int while ( < list.length) if (target list[]) true; + 1; boolean isinlist(int[] list, int target) int false; while ( < list.length && target! list[]) + 1; //isinlist < list.length; Avbryter sökningen när vi funnit det vi söker eller då hela fältet är genomsökt boolean isinlist(int[] list, int target)! int list //isinlist //pre: list! //isinlist while ( int firstindexof(int[] < list.length) list, int target) isinlist(int[] list, int target) int boolean if (target list[]) < true; whileint ( list.length && target! list[]) boolean found false; + 1; while( &&!found) boolean isinlist(int[] list, int target) <+ list.length 1; if (target list[]) int list! if ( < found list.length) true; ( int lastindexof(int[] list, target) fält. Att söka i ett osorterat fält. while Att söka iint ett false; < list.length && target!osorterat list[]) ; int list.length Implementation + 1;- 1; av metoder som erar första respektive sista för ett //isinlist Nedan ges ett exempel på hur man inte skall implementera metoden. värde om värdet finns i ett givet fält, annars eras -1. (Varför -1?) + 1; while && target! list[]) Visserligen eras ett riktigt resultat, men. ( > givet 1; <-list.length; 1; //firstindexof list! found; int firstindexof(int[] list, int target) //isinlist private int uglyfirstindexof(int[] list, int target) int int ; //isinlist while ( < list.length && target! list[]) for ( <list.length && target! list[]; ++) ; + 1; ; //lastindexof if ( < list.length) list! 1 ; - 1; //uglyfirstindexof 1 if ( < list.length) ; - 1; //firstindexof 15 int lastindexof(int[] list, int target) int list.length - 1; while ( > && target! list[]) - 1; ; //lastindexof 16

5 Eget bibliotek med fältmetoder. Problemexempel De metoder vi implementerat ovan är handhar situationer som är vanligt återkommande delproblem i många skilda sammanhang. Det är därför mycket lämpligt all lägga dessa metoder i en och samma klass så att de kan återanvändas i olika tillämpningar. Här placerar vi metoderna i en klass med namnet ArrayUtils. Skriv en metod int[] removeallduplicates(int[] list) import java.util.arrays; class ArrayUtils // en erar true om target finns i fältet classvärdet NoDublicate list, // annars erar metoden värdet false. som tar ett heltalsfält list och erar ett nytt fält vilket innehåller samma element som list där alla eventuella dubbletter är borttagna. // förvillkor: list! boolean isinlist(int[] list, int target)... Exempel: list! // en erar för första förekomsten av target private int[] removeallduplicates(int[] list) Antag att följande deklaration har gjorts // i fältet list, finns inte target i list eras värdet -1 int[] vekt 1,, 1,,, 5, 1,,,, 1; int[] new int[list.length]; // förvillkor: list!newlist int firstindexof(int[] list, int target)... ett anrop av removeallduplicates(vekt) skall era ett fält med int nrofstoreelements följande utseende 1,,, 5, 1,. // en erar för sista förekomsten av target class ArrayUtils i i + 1) // i fältetfor list, finns inte target i list eras värdet -1 (int i i < list.length; // förvillkor: list!// en erar värdet true om target finns i fältet list, int list, int target).. intlastindexof(int[] nextelement.list[i]; // annars erar metoden värdet false. //ArrayUtils if (!ArrayUtils.isInList(Arrays.copyOf(newList, nrofstoreelements), nextelement)) 17 1 //newlist[nrofstoreelements] förvillkor: list! nextelement; boolean isinlist(int[] list, int+ target) nrofstoreelements nrofstoreelements 1; // en erar för första förekomsten av target // iarrays.copyof(newlist, fältet list, finns inte target i list eras värdet -1 Implementation: Design: nrofstoreelements); // förvillkor: list! Förvillkor://removeAllDuplicates list! import java.util.arrays; NoDublicate int firstindexof(int[] list, int target).class.. Diskussion: Vi börjar med att skapar ett nytt fält, som vi kan kalla newlist. Sedan Genomsök endast den del av list! tar vi ett element i taget från fältet list och lägger i dettaargs) element i fältet som innehåller element void main(string[] private int[] removeallduplicates(int[] list) newlist om elementet inte redan finns i newlist. int[] newlist new int[list.length]; en för,sista förekomsten av target int[]//vekt 1, erar, 1,,, 5, 1,,, 1; int nrofstoreelements Algoritm: for (int i fältet list, finns inte target i list eras värdet -1i i < list.length; i i + 1) int[]//result removeallduplicates(vekt); 1. nrofstoredelements int nextelement list[i]; if (!ArrayUtils.isInList(Arrays.copyOf(newList, nrofstoreelements), nextelement)). så länge det finns// flerförvillkor: element kvar i listlist! System.out.println(Arrays.toString(result)); newlist[nrofstoreelements] nextelement;.1. if (nästa elenent i list inte finns i newlist ) nrofstoreelements + 1; Returnera endast den del av //main int lastindexof(int[] list, int target).. nrofstoreelements newlist[nrofstoredelements] nästa element i list; fältet som innehåller element.1.. nrofstoredelements nrofstoredelements + 1; //NoDublicate Arrays.copyOf(newList, nrofstoreelements);..som innehåller elementen som lagrats i newlist. Returnera den ett.fält Huvudprogram för att //removeallduplicates testa metoden Datarepresentation://ArrayUtils void main(string[] args) int[] vekt 1,, 1,,, 5, 1,,,, 1; int[] result removeallduplicates(vekt); System.out.println(Arrays.toString(result)); //main //NoDublicate newlist är av datatypen int[]. nrofstoredelements är av datatypen int. 19

6 Parallella fält. som uppslagstabeller. Två fält kallas för parallella fält om den data som finns i motsvarande i de båda fälten är logiskt relaterade till varandra på något sätt. Exempel: Antag att vi har en golftävling med 5 deltagare. Vi kan lagra deltagarnas namnen i en fält, deltagarnas startnummer i ett annat fält och deltagarnas resultat i ett tredje fält: användas som uppslagstabeller name startnr score "Kalle" 7 "Anna" 5 67 "Stina" 7 "Åsa" 1 7 //pre: none String getweekday(int daynumberofweek) if (daynumberofweek 1) "Monday"; if (daynumberofweek ) "Tuesday"; if (daynumberofweek ) "Wednesday"; if (daynumberofweek ) "Thursday"; if (daynumberofweek 5) "Friday"; if (daynumberofweek 6) "Saturday"; if (daynumberofweek 7) "Sunday"; "Illegal day number!"; //getweekday //pre: none "Sven" 6 String getweekday(int daynumberofweek) if (daynumberofweek 1) "Monday"; Är dessa fält parallella gäller att varje k i fältet namn är relaterat till k i //pre: daynumberofweek > 1 && daynumberofweek < 7 String getweekday(int daynumberofweek) fälten startnr och score, dvs "Stina" hade startnummer och gick banan på 7 slag. ) "Tuesday"; if (daynumberofweek final String[] weekdays "Monday", "Tuesday", "Wednesday", Obs: I just detta exempel hade det varit bättre att skapat en klass GolfPlayer med ) "Wednesday"; "Thursday", "Friday", "Saturday", "Sunday"; if (daynumberofweek instansvariablerna name, startnr samt score och istället använt ett enda fält weekdays[daynumberofweek - 1]; //getweekday med objekt av denna klass. if (daynumberofweek ) "Thursday"; classif ArgumentDemo 5) "Friday"; (daynumberofweek 1 void main(string[] args) "Saturday"; if (daynumberofweek 6) if (daynumberofweek i7) for (int i i < args.length; i + 1) "Sunday"; "Illegal day number!"; " + i + " " + args[i]); System.out.println("Argument //getweekday String[] name new String[5]; int[] startnr new int[5]; int[] score new int[5]; //main till main. Parametrar Parametrar till main. //ArgumentDemo en main har en parameterlista som utgörs av ett fält av strängar: void main(string[] args) Argumenten< till main-metoden ges när exekveringen av programmet startas. Startas //pre: daynumberofweek > 1 && daynumberofweek 7 exekveringen från kommandofönstret skriver man alltså Detta innebär att man kan ge indata till main-metoden parameterlistan. StringviagetWeekday(int daynumberofweek) java Demo Anna Beda Doris Betrakta main-metoden i klassen Demo nedan. Vad main gör är att skriva ut de strängar final String[] weekdays "Monday", "Tuesday", "Wednesday", som finns i dess parameter args. Sker exekveringen från jgrasp skapar man ett kommandorad i vilket argumenten ges,"saturday", genom att trycka på"sunday"; "Run Arguments" i menyn "Run". "Thursday", "Friday", class ArgumentDemo void main(string[] args) weekdays[daynumberofweek - 1]; for (int i i < args.length; i i + 1) //getweekday" + i + " " + args[i]); System.out.println("Argument //main //ArgumentDemo Innehåller parametern args strängarna "Anna", "Beda" och "Doris" blir utskriften Argument Anna Argument 1 Beda Argument Doris

7 Standardklassen String er i standardklassen String Texter handhas i Java med standardklassen String. Ett objekt av klassen String består av en följd av tecken, dvs element av typen char. int length() char charat(int pos) int Of(char c) Ett objekt av klassen String kan inte förändras efter att det har skapats, dvs objekten är icke-muterbara. int lastindexof(char c) int Of(String str) String int lastindexof(string str) Internt i klassen String lagras teckensträngen i ett teckenfält. - char[] value - int count boolean equals(string str) +String() +String(char[] value) +length() : double +charat(int ) : int boolean equalsignorecase(string str) String trim() ger antal tecken i strängen ger tecknet i position pos ger för första förekomsten av tecknet c, om c inte finns eras -1 ger för sista förekomsten av tecknet c, om c inte finns eras -1 ger för första förekomsten av strängen str, om str inte finns eras -1 ger för sista förekomsten av strängen str, om str inte finns eras -1 ger true om den aktuella strängen och strängen str är lika, annars eras false. jämför aktuell sträng med strängen str utan hänsyn till versaler och germaner. ger true om den aktuella strängen och strängen str är lika, annars eras false. ger en kopia av strängen där inledande och avslutande blanktecken är borttagna 5 6 er i standardklassen String int compareto(string str) gör alfabetisk jämför mellan aktuell sträng och str. Ger värdet om aktuell sträng och argumentet är alfabetiskt lika, ett värde mindre än om argumentet är större och ett värde större än om argumentet är mindre ger en sträng där str har lagts till efter aktuell sträng ger en kopia av den aktuella strängen där alla förekomster av tecknet old har bytts ut mot tecknet new ger delsträngen från position start till slutet av strängen ger delsträngen börjar i position start och slutar i position end-1 ger en kopia av strängen där alla versaler har bytts mot gemener ger en kopia av strängen där alla gemener har bytts mot versaler erar strängen som ett fält av tecken erar texten som motsvarar heltalet n String concat(string str) String replace(char old, char new) String substring(int start) String substring(int start, int end) String tolowercase(string str) String touppercase(string str) char[] tochararray() String value(int n) er i standardklassen Character int getnumericvalue(char ch) ger Unicode för ch boolean isdigit(char ch) ger värdet true om ch är en siffra, annars eras värdet false boolean isletter(char ch) ger värdet true om ch är en bokstav, annars eras värdet false boolean isletterordigit(char ch) ger värdet true om ch är en siffra eller bokstav, annars eras värdet false boolean islowercase(char ch) ger värdet true om ch är en liten bokstav, annars eras värdet false boolean isuppercase(char ch) ger värdet true om ch är en stor bokstav, annars eras värdet false char tolowercase(char ch) om ch är en stor bokstav eras motsvarande lilla bokstav annars eras ch om ch är en liten bokstav eras motsvarande stora bokstav annars eras ch char touppercase(char ch) Fler metoder finns i klassen String. 7

8 Standardklassen String Standardklassen String I Java används en internationell standard för att lagra tecken som kallas Unicode. Texter kan jämföras med metoderna compare eller equals: De svenska tecknen ligger inte i följd i denna standard, varför inte svenska tecken och svenska ord kan jämföras enligt alfabetisk ordning med metoden compareto i klassen String. Istället måste en särskild jämförare användas. co.compare(s1,s) ger värdet om s1 och s är alfabetiskt lika, ett värde < om s1 kommer för s och ett värde > om s kommer för s1. En jämförare är ett objekt av klassen Collator, som finns i paketet java.text. co.equals(s1, s) En jämförare deklareras på följande sätt: Collator co Collator.getInstance(new Locale("sv", "SE")); ger true om s1 och s är alfabetiskt lika, annars fås värdet false. Det är möjligt att sätta "nivån" på jämföraren: där co.setstrength(collator.primary) Skiljer endast på olika bokstäver. co.setstrength(collator.secondary) Skiljer på utsmyckade bokstäver. co.setstrength(collator.tertiary) Skiljer på utsmyckade bokstäver, samt på små och stora bokstäver. new Locale("sv", "SE") definierar de språkkonventioner som skall användas. Klassen Locale finns i paketet java.util. 9 Problemexempel Design: Att beräkna antalet siffror, antalet konsonanter respektive antalet vokaler är tre separata delproblem, varför vi skriver en metod för var och ett av dessa delproblem: Skriv ett Java-program som läser en mening från terminalen och räknar antalet vokaler, konsonanter och siffror. Analys: Indata: int getnrofdigits(string str) erar antalet siffror i strängen str int getnrofvowels(string str) erar antalet vokaler i strängen str int getnrofconsonants(string str) erar antalet konsonanter i strängen str En sträng av godtyckliga tecken. Algoritm för huvudprogrammet: Utdata: Utskrift av hur många vokaler, konsonanter respektive siffror som finns i den inlästa strängen. 1. Läs strängen indata. antsiffror getnrofdigits(indata);. antvokaler getnrofvowels(indata);. antkonsonanter getnrofconsonants(indata); 5. Skriv ut antvokaler, antkonsonanter och antsiffror Exempel: Strängen "1xfgÄåÖabcdeHI,% ger utskriften: Antalet vokaler är 6 Antalet konstanter är 7 Antalet siffror är " Datarepresentation: indata är av datatypen String antsiffror, antvokaler, antkonsonanter är av typen int. 1

9 Diskussion: fortsättning Diskussion: fortsättning För att avgöra om ett tecken är en siffra finns metoden isdigit i klassen Character. Algoritmen för metoden int getnrofdigits(string str) blir därför: Algoritmen för metoden int getnrofconsonants(string str) blir: 1. Sätt number. För varje tecken ch i str.1. if (Character.isLetter(ch) &&!isvowel(ch)). number 1. Sätt number. För varje tecken ch i str.1. if (Character.isDigit(ch)). number import javax.swing.joptionpane; class Count void main(string[] args) I metoden boolean isvowel(char ch) deklarerar vi en sträng som innehåller de bokstäver som är vokaler: false; För att avgöra om boolean ett tecken är endone bokstav finns metoden isletter i klassen Character. str!vowels "aeiouyåäö"; String Vi behöver dock särskilja om en bokstav är en vokal eller en konsonant varför vi inför while(!done) en metod: att avgöra om getnrofvowels(string tecknet ch är en vokal använder vi metoden på strängen privateför int str) Of vowels. Anropet "); String true JOptionPane.showInputDialog("Ge en mening: boolean isvowel(char ch) indata erar om ch är en vokal, annars false int number vowels.of(ch) ifint(indata )str) blir därför: Algoritmen för metoden getnrofvowels(string ger värdet finns bland de tecken for (int pos -1omtecknet pos ch<inte str.length(); possom ingår posi strängen + 1) vowels, 1. Sätt number done true; annars ger anropet ett heltal större eller lika med.. För varje tecken ch i str if (isvowel(str.charat(pos))) Eftersom strängen vowels innehåller endast de "små" vokalerna, men ch givetvis kan.1. if (isvowel(ch)) vara en "stor"vokal måste ch översättas number number + 1; till sin "lilla" motsvarighet. Detta görs med int nrofvowels getnrofvowels(indata); metoden tolowercase som finns i klassen Character.. number int nrofconsonants getnrofconsonants(indata); number; int nrofdigits getnrofdigits(indata); JOptionPane.showMessageDialog(, "Antalet vokaler är " + nrofvowels //getnrofvowels str! + "\nantalet konsonanter är " + nrofconsonants private int getnrofconsonants(string str) + "\nantalet siffror är " + nrofdigits); Implementation: Implementation: fortsättning int number // private boolean isvowel(char ch) import javax.swing.joptionpane; for//while (int pos pos < str.length(); posstr! pos + 1) class Count String vocals "aeiouyåäö"; void main(string[] args) char smallch Character.toLowerCase(ch); char ch str.charat(pos); private int getnrofdigits(string str) boolean done false; if (vocals.of(smallch)! -1) //main str! while(!done) true; private int getnrofvowels(string str) (Character.isLetter(ch) &&int!isvowel(ch)) number String indataif JOptionPane.showInputDialog("Ge en mening: "); int number if (indata ) false; for (int pos pos < str.length(); pos pos + 1) for (int pos pos < str.length(); pos pos + 1) done true; //isvowel if (isvowel(str.charat(pos))) if (Character.isDigit(str.charAt(pos))) int nrofvowels getnrofvowels(indata); int nrofconsonants getnrofconsonants(indata); number; int nrofdigits getnrofdigits(indata); number; JOptionPane.showMessageDialog(, "Antalet vokaler är " + nrofvowels //getnrofvowels str! + "\nantalet konsonanter är " + nrofconsonants //getnrofconsonants private int getnrofconsonants(string str) + "\nantalet siffror är " + nrofdigits); int number // number; //Count for (int pos pos < str.length(); pos pos + 1) str! //while char ch str.charat(pos); private int getnrofdigits(string str) //main //getnrofdigits int number if (Character.isLetter(ch) &&!isvowel(ch)) for (int pos pos < str.length(); pos pos + 1) if (Character.isDigit(str.charAt(pos))) number; //getnrofdigits number; //getnrofconsonants //Count 5 6

I ett program hantera man ofta samlingar av objekt av samma typ.

I ett program hantera man ofta samlingar av objekt av samma typ. Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner

Läs mer

Föreläsning 7. Fält Klassen String

Föreläsning 7. Fält Klassen String Föreläsning 7 Fält Klassen String Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta

Läs mer

Fält och klassen String

Fält och klassen String Fält och klassen String Föreläsning 6 TDA540 - Objektorienterad Programmering Meddelande Ni får inte ändra Robot.java Börjar med rätta efter deadlinen Sammanfattning Abstraktion Abstraktion Abstraktion

Läs mer

Föreläsning 6. Fält. Fält Klassen String. Fält

Föreläsning 6. Fält. Fält Klassen String. Fält Föreläsning 6 Fält Fält Klassen Klassen String String Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande

Läs mer

Föreläsning 7. Föreläsning 7. Fält Klassen String. Fält Klassen String. Fält. I ett program hantera man ofta samlingar av objekt av samma typ.

Föreläsning 7. Föreläsning 7. Fält Klassen String. Fält Klassen String. Fält. I ett program hantera man ofta samlingar av objekt av samma typ. Föreläsning 7 Föreläsning 7 Fält Klassen String Fält Klassen String Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Föreläsning 6: fält och klassen String Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Sammanfattning föreläsning 5 Abstraktion Abstraktion

Läs mer

Föreläsning 7. for-satsen Fält

Föreläsning 7. for-satsen Fält Föreläsning 7 for-satsen Fält for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: for (initiering; villkor; ändring) sats; for-satsen är ekvivalent med följande

Läs mer

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: TDA143 I1 Programmerade system Föreläsning 8 (OH-bilder 7) for-satsen for ( initiering; villkor; ändring) sats;

Läs mer

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList Föreläsning 8 Klassen String Mer om fält Klassen ArrayList Standardklassen String Texter handhas i Java med standardklassen String. Ett objekt av klassen String består av en följd av tecken, dvs element

Läs mer

Klassen String Mer om fält Något om inläsning

Klassen String Mer om fält Något om inläsning Standardklassen String TDA43 I Programmerade system Föreläsning (OH-bilder 8) Klassen String Mer om fält Något om inläsning Christer Carlsson Texter handhas i Java med standardklassen String. Ett objekt

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

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

Läs mer

Föreläsning 3-4 Innehåll

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å

Läs mer

Instuderingsfrågor, del D

Instuderingsfrågor, del D Uppgift 1. Instuderingsfrågor, del D Objektorienterad programmering, Z1 I vilka av nedanstående problem behöver man använda sig av fält för att få en elegant lösning? I vilka problem är det är det onödigt/olämpligt

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

Läs mer

Repetition av OOP- och Javabegrepp

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

Läs mer

Repetition av OOP- och Javabegrepp

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

Läs mer

Lösningsförslag: Instuderingsfrågor, del D

Lösningsförslag: Instuderingsfrågor, del D Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del D a) Inget fält behövs. Man kan läsa in ett tal i taget och addera dessa till summan. b) Här behövs ett fält. c) Här

Läs mer

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet

Läs mer

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

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

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

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

Läs mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

Läs mer

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2017-08-14 Tid: 14.00-18.00 Hjälpmedel: Lexikon Engelskt-Valfritt språk. Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer

Tvådimensionella fält

Tvådimensionella fält Tvådimensionella fält Tvådimensionella fält är fält av fält. int[][] tabell = new int[][4]; tabell Tvådimensionella fält Istället för att skapa ett tvådimensionellt fält med new kan fältet skapas genom

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540. Tentamen för TDA540 Objektorienterad programmering

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540. Tentamen för TDA540 Objektorienterad programmering Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540 Tentamen för TDA540 Objektorienterad programmering DAG: 15-04-18 TID: 14:00 18:00 Ansvarig: Joachim von Hacht och Christer Carlsson

Läs mer

Föreläsning 3. Iteration while-satsen

Föreläsning 3. Iteration while-satsen Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har

Läs mer

Omtentamen 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: , 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

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer F6 Observera att när man utvecklar program så är inte alla lösningar på vägen korrekta. Speciellt den här gången så finns många OH med program som inte fungerar eftersom det är just det vi skall se på

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

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

Läs mer

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts

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

Läs mer

Föreläsning REPETITION & EXTENTA

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

Läs mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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äs mer

Enkla variabler kontra referensvariabel

Enkla variabler kontra referensvariabel Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som används för att representera en primitiv datatyp kallas för enkel variabel. Deklarationssatsen

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

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

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

Läs mer

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl 14.00 17.00 Hjälpmedel: En Javabok. För betyget godkänt krävs att a- eller b-delen av varje fråga (uppgift 1 4) samt

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens 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 mer

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering Institutionen för TENTAMEN CTH HT-14 Datavetenskap 2015-01-17 TDA540 Tentamen för TDA540 Objektorienterad programmering DAG: 15-01-17 TID: 14:00 18:00 Ansvarig: Joachim von Hacht och Christer Carlsson

Läs mer

Mer om klasser och objekt

Mer om klasser och objekt Klassvariabler och klassmetoder En klass kan innehålla klassvariabler och klassmetoder. TDA143 I1 Programmerade system Föreläsning 5 (OH-bilder 5) Mer om klasser och objekt Christer Carlsson Det som skiljer

Läs mer

Iteration while-satsen

Iteration while-satsen Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

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

Läs mer

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2016-12-20 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Lösningsförslag: Instuderingsfrågor, del A

Lösningsförslag: Instuderingsfrågor, del A Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del A Följande regler gäller för namngivning av identifierare i Java: 1. Ett identifierarnamn består endast av bokstäver,

Läs mer

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Logiska uttryck datatypen boolean Logiska uttryck kan ha två möjliga värden, true eller false. Variabler av typen boolean kan tilldelas

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad 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 mer

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

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

Läs mer

Föreläsning 7-8 Innehåll

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

Läs mer

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

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

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

public och private Obs: private inte skyddar mot access från andra objekt i samma klass. public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private

Läs mer

Lösningsförslag till tentamen 150317

Lösningsförslag till tentamen 150317 Uppgift 1 Lösningsförslag till tentamen 150317 1) Sant 2) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser.) 3) Falskt. Det är TCP som använder sig av en fast kommunikationsförbindelse.)

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

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

Läs mer

[] Arrayer = Indexerad variabel

[] Arrayer = Indexerad variabel [] Arrayer = Indexerad variabel Lagra många värden i en variabel Jmfr inom matematiken, variabler x 0, x 1, x 2, I detta dokument tas upp hur man skapar och hanterar sådana variabler i java. Dessa kallas

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

Algoritmer. Två gränssnitt

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;

Läs mer

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada Datastrukturer Vad är en datastruktur? Vad är en datatyp? Primitiva datatyper i Java Icke-primitiva datatyper i Java Minnesexempel med datastrukturer Vektorer i Java Erik Forslin efo@nada.kth.se Rum 1445,

Läs mer

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0.. Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens 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 mer

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

TENTAMEN OOP

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

Läs mer

TENTAMEN OOP

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

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-15, TDA540. Dag: , Tid:

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-15, TDA540. Dag: , Tid: Tentamen för TDA40 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-, TDA40 Dag: 206-0-6, Tid: 4.00-8.00 Ansvarig: Examinator: Alex Gerdes Joachim von Hacht och Christer Carlsson Förfrågningar:

Läs mer

Arrayer (fält)

Arrayer (fält) Arrayer (fält) 1 Vad kommer vi att ta upp om arrayer? Deklarera och initiera arrayen Lägga till i arrayen Ta ut på indexposition Ta reda på arrayens längd Sortera arrayen Söka igenom arrayen Loopa igenom

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

Föreläsning 3. Iteration. while-satsen for-satsen do-satsen

Föreläsning 3. Iteration. while-satsen for-satsen do-satsen Föreläsning 3 Iteration while-satsen for-satsen do-satsen Datatypen double De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har en begränsad storlek och representerar således

Läs mer

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

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äs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

Läs mer

PROGRAMMERING-Java TENTAMINA

PROGRAMMERING-Java TENTAMINA PROGRAMMERING-Java TENTAMINA Nicolina Månsson 2010-03-17 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. - För

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Den som bara har en hammare tror att alla problem är spikar

Den som bara har en hammare tror att alla problem är spikar Introduktion Föreläsning (Weiss kap. -4) Många begrepp blir det Introduktion till kursen Exempel: Datastrukturen mängd Generiska Den som bara har en hammare tror att alla problem är spikar Vilken

Läs mer

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

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

Läs mer

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

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

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

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

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 2017-10-23 Skrivtid: 0800 1300 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

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

Saker du ska kunna Föreläsning 13 & 14

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

Läs mer

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

Läs mer

Programmering för språkteknologer II, HT2011. Rum

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

Att skriva till och läsa från terminalfönstret

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

Läs mer

Instuderingsfrågor, del E

Instuderingsfrågor, del E Uppgift 1. Instuderingsfrågor, del E Objektorienterad programmering, Z1 Skriv en en deklaration som skapar ett 2-dimensionellt heltalsfält med följande utseende: 1 3 6 10 2 5 9 13 4 8 12 15 7 11 14 16

Läs mer

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

Arrayer. results

Arrayer. results Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Malmö högskola 2008/2009 CTS

Malmö 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 mer