Uppdaterat Systemunderhåll, kvalitetsarbete, testning

Storlek: px
Starta visningen från sidan:

Download "Uppdaterat Systemunderhåll, kvalitetsarbete, testning"

Transkript

1 Uppdaterat Systemunderhåll, kvalitetsarbete, testning

2 1.2 Typer av systemunderhåll: Corrective maintenance Adaptive maintenance Perfective maintenance Underhållsarbetet pågår under systemets livstid. Teknisk dokumentation och designdokumentation ett måste för att kunna orientera sig i systemets komplexitet och bedöma konsekvenserna av ens ändringar.

3 Corrective maintenance Rätta fel - sådant som brukar kallas för en bug

4 Identifiera problem efter att systemet har installerats och tagits i drift. T.ex. fakturans totalbelopp blir ibland fel, en knapp öppnar inte rätt formulär. 2. En felrapport skapas. (Hos vissa verksamheter: fel- och avvikelserapport - FAR). 3. Underhållspersonal o/e utvecklare rättar felet. 4. Testare utför tester för att kontrollera att felet är åtgärdat. 5. Rättelsen införs i driftsystemet (operationella systemet). Kan även avse att reparera hårdvarufel. Beroende på mjukvarans storlek kan underhållspersonal, utvecklare, programmerare och testare vara olika personer eller rent av samma person.

5 Adaptive maintenance 1.5 Utförs för att anpassa systemet till förändringar i omvärlden T.ex. regeringen har beslutat att differentierad moms ska införas ==> alla varorna måste märkas upp med rätt momssats, nya attribut, ändrad programkod för momshantering. T.ex. nya löneavtal mellan arbetsmarknadens parter ==> delar av lönehanteringssystemet måste programmeras om (avtalens struktur kan ändras godtyckligt och det går därför inte att förlita sig på att man bara behöver ändra värden på några attribut). förändringar av verksamhetens inriktning eller regler Ändringsbehovet beror alltså inte på att det finns fel i systemet. Ändringsbehoven går ej att förutse.

6 1.6 Perfective maintenance Systemet har varit i drift en tid, och det genomförs ändringar för att göra det bättre. T.ex. sättet att mata in data i ett fakturaformulär ändras för att det ska bli lättare för användaren att göra sitt jobb. T.ex. programkoden struktureras om för att det ska vara lättare att förstå vad den gör, lättare att ändra i den utan att orsaka nya fel. Detta för att underlätta framtida underhållsarbete.

7 Utveckling av system & program % - 70% av felen i programkoden uppstod innan koden ens var skriven! Viktigt att arbetet som föregår kodningen är komplett, konsistent och korrekt. Den inledande uppgiften i laborationen avser att illustrera detta.

8 MÅL: Tillförlitlig produkt/tjänst (god kvalitet vem bestämmer det?) 1.8 Utför vad beställaren/användarna förväntar. Stämmer med dess kravspecifikation. Aldrig felaktiga beteenden eller utdata oberoende av indata och handlingar som användaren utför. Meningsfulla och användbara beteenden i oväntade situationer. Inte tillåta att funktioner, data m.m. ändras på icke önskvärt sätt.

9 VAD GÖRA FÖR ATT UPPNÅ DETTA? Kvalitetssäkring (Quality Assurance) 1.9 Utvecklingsprocess som garanterar kvalitet och förhindrar uppkomst av fel. Viktiga initiativ exvis: - ISO 9000-standarden (1980-talet). - Verktyget PERFIDE i ESPRIT-projektet REQUEST (Reliability and Quality of European Software Technology): step-by-step integration (senare delen av 1980-talet). - Systemutvecklingsmodeller/-metoder (begreppet Software Engineering på NATO-konferens i Garmish 1968 vattenfallsmodeller/-metoder). Testning (felsökning, felrättning). God programmerarsed.

10 Några typer av kontroller inom QA 1.10 Validering. Avgör huruvida produktens funktioner är vad kunden verkligen vill ha och behöver. Bygger vi rätt produkt? Verifiering. Avgör huruvida produkten uppträder på det sätt och ger de resultat som nämns i kravspecifikationen. Bygger vi produkten på rätt sätt? Testning. Exekvera produkten i avsikt att hitta fel (för att kunna korrigera dem innan produkten tas i drift).

11 God programmerarsed 1.11 (många åsikter om detta, hämtat från olika källor) Överblickbar layout. Metodiskt och konsekvent uppbyggd. Lättläst och lättförståelig kod (t.ex. m.a.p. layout: lufta, indrag). Tydliga beslutsstrukturer. En sats/instruktion per rad. Inga vilda hopp, t.ex. GOTO-satser, illa motiverade uthopp ur loopar och andra styrstrukturer. Egentligen: Utnyttja språkets möjligheter till god struktur, t.ex. indelning i funktioner, de vanliga styrstrukturerna, klasser, metoder. Inkapsling, information hiding. Undvik hårdkodning av värden använd konstanter, variabler, parametrisering av externa värden.

12 Beskrivande namn som inte är alltför långa. Tydlighet och begriplighet, t.ex. NoOfItems eller number_of_items istf noofitems, parenteser för utvärdering av uttryck. Beskriv modulens (procedurens, metodens, klassens etc) gränssnitt och vad den ska göra. Kommentera vettigt. Undvik vitt infobrus, t.ex. att kommentera sådant som är självklarheter för en programmerare såsom hur en loop utförs. Variablenamn etc används endast till en sak. Effektivisera koden för vinster avseende exvis prestanda endast om det ger stor utdelning Vanliga engelska benämningar för "programmerarsed": programming practice programming standard coding practice coding standard

13 1.13 Exempel Från exempel_average_points.pdf. Beställarens önskan. Användaren matar in poäng på en tentamen för varje kursdeltagare, och programmet räknar ut och visar medelpoängen för tentamen. Föreslagen produkt. Ett program där respektive kursdeltagares poäng skrivs in och som sedan beräknar medelpoängen och presenterar den. Validering. Produkten tillgodoser beställarens önskan? Beställarens önskan = Vad beställaren verkligen behöver? (T.ex. kommer medelpoängen att användas på ett för verksamheten meningsfull sätt?)

14 1.14 Kravspecifikation: (en kompakt, förenklad variant för föreläsningsexemplet) Snabb och enkel inmatning av tentamenspoängen för alla studenterna på en kurs (max cirka 150 st). Räkna ut medelpoängen och presentera den. Kunna göras för flera kurser utan att behöva starta om programmet. Tolkning av beställarens önskan: Underförstått att det ska kunna göras på mer än en kurs, men bara en kurs åt gången. (Vanligt att behöva uppfatta och formulera sådant som är underförstått.)

15 1.15 också designen som uppfyller kraven: ( JSP-diagram )

16 Granskning 1 - granskning av designen 1.16 Förbered med att skapa en checklista med sådant som är viktigt att kontrollera i den aktuella granskningen Checklista för design ID Fråga / kriterium Kommentarer C001 Är allt begripligt? C002 Kommer algoritmen fram till en slutpunkt? C003 Stämmer strukturen med högnivåstrukturen? C004 Finns logiska fel? C005 (Högnivåstruktur: Någon form diagram som visar huvuddelarna i systemet.) Undvik att alltid använda samma checklista. Låt den bestå av två delar: - standardpunkter som används i nästan alla granskningar. - kriterier som är speciella för varje tillfälle.

17 Protokollet för den genomförda granskningen: 1.17 Protokoll för ganskning av JSP-diagrammet Nr Granskat Felbeskrivning KID Defektgärd Åttyp 1 Tomma rutan Tomma rutan ha innehåll? C Medelvärde Varifrån kommer antalet som används för att räkna ut medelpoängen? C JSP kommer OK C002 - X att nå ett slut 4 JSP, Högnivå 5 Avbryt?, Sluta? JSP-strukturen stämmer inte med indelningen i delsystem. Framgår inte vad som ska hända när användaren har gjort sitt val C003 2 C (3?) OK

18 Åtgärder för designen 1.18 Fyll i protokollet med åtgärderna. Vid behov förtydligande kommentarer nedanför. Protokoll för ganskning av JSP-diagrammet Nr Granskat Felbeskrivning KID Defekttyp Åtgärd 1 Tomma rutan Tomma rutan ha innehåll? C001 1 "Gör jobbet" 2 Medelvärde Varifrån kommer antalet som C001 2 Ingen 3 JSP OK C X 4 JSP, Högnivå JSP-strukturen stämmer inte 5 Avbryt? Sluta? med indelningen i delsystem. Framgår inte vad som ska hända när användaren har gjort sitt val (1. Alternativ: Ta bort rutan.) C003 2 C003 2 JSP följa används för att räkna ut medelpoängen? högnivåstrukturen Rita in. OK

19 Kommentar: Olämplig åtgärd för punk 2. Protokoll för granskning av JSP-diagrammet Nr Granskat Felbeskrivning KID Defekttyp Åtgärd 1 Tomma rutan Tomma rutan ha innehåll? C001 1 "Gör jobbet" 2 Medelvärde Varifrån kommer antalet som används för att räkna ut medelpoängen? C001 2 Ingen 1.19 OK Antalet skulle kunna fås fram på t.ex. något av följande sätt. A. Görs i Inmatning: En räknare som ökas med 1 för varje inmatat värde. B. Görs i Beräkning: Räkna antalet inmatade element i arrayen. C. Görs så här i programkoden (olämpligt att sprida ut beabetningen så här): Görs i Inmatning: En räknare för indexpostionen i arrayen som räknas upp för varje värde som lagras i arrayen. Görs i Beräkning: Räknarens värde ökas med 1 för att få antalet värden. Diagrammet borde visa och därmed styra hur värdet ska fås fram. ==> Beslutet om punkt 2 är inte bra pga leder till oklarhet för programmeraren och att den måste fatta ett godtyckligt beslut.

20 Korrigerad design (utifrån den olämpliga åtgärden om punkt 2): 1.20

21 public void calculateaveragepoints() throws IOException { final int ANTAL = 150; int x, i = -1, sum; String svar; int[] tal = new int[antal]; //Det 150:e elementet har index 149. BufferedReader br = new BufferedReader(...); do { // En kurs do { //Inmatning System.out.printf("Poäng följd av ENTER: "); i = i + 1; //Indexpositionen i arrayen x = Integer.parseInt( br.readline() ); //Inmatning en poäng tal[i] = x; } while (!(x == 0) i == ANTAL ); // Avbryt? sum = 0; for (int k = 0; k <= i; k++) { sum = sum + tal[k]; } System.out.print("Medelpoäng: "); System.out.format("%7.1f%n", (double)(sum/(i + 1))); System.out.printf ("Sluta? (J/N) "); svar = br.readline(); } while (!svar.equals("j")); //Sluta? } Obs, antalet räknas ut på två platser! Så går det när ej specat i designen ( Kommentarerna är utförligare i filerna med programkod.) 1.21

22 Granskning 2 kodens överensstämmelse med designen 1.22 Checklista för programkodens överensstämmelse med designen ID Fråga / kriterium Kommentarer C001 Går det att följa från diagrammet Spårbarhet är mycket viktigt. till koden? C002 Stämmer koden med diagrammet? Den kan göra det även om spårbarheten är dålig. C003 Svårt att förstå vad koden gör? En svårbegriplig kod medför höga underhållskostnader. C004 Finns logiska fel? Leder ofta till felaktigt beteende. En allvarlig typ av defekt.

23 1.23 Protokoll för ganskning av programkoden jämförd med designen (ingen testkörning) - förkortad lista Nr Granskat Felbeskrivning KID Defekt- Åtgärd OK typ 3 Separeringen Uträkning och utskrift av medelvärdet ej separata i koden. av Beräkning och Utskrift. C002 2 Separera 4 Hur antalet inmatade poäng fås fram 5 Alla möjlig poängtal går att mata in 7 Brytvillkoret för iterationen Inmatning 8 Brytvillkoret för iterationen En kurs Svårt att förstå vad (i + 1) är på programraden System.out.format... Går inte att ange 0 poäng pga att nollan tolkas som att användaren vill avbryta inmatningen. Ingen variabel som heter avbryt trots att JSP tyder på att den borde finnas Ingen variabel som heter sluta trots att JSP tyder på att den borde finnas C003 2 C004 3 C003 2 C003 2 Ny variabel för antal inmatade poäng. Annat sätt att avbryta Ny variabel: avbryt Ny variabel: sluta

24 Klassens namn: AveragePoints01. //ÄNDRAT FRÅN VERSION 00: // Lagt till antalinmatade. // x och sum har nu datatypen Double - ändrat på flera platser // Ändra brytvillkor i inmatningsloppen från 0 till -1. // Medelpoäng räknas ut och skrivs ut som två separata operationer. public void calculateaveragepoints() throws IOException { // Utför rutan 'Medelpoäng för kurser' i JSP-diagrammet. //Konstanter final int ANTAL = 150; //Variabler int i = -1; Double x, sum; int antalinmatade; Boolean avbryt, sluta; //NYTT String svar; Double medel; Double[] tal = new Double[ANTAL]; BufferedReader br = new BufferedReader(...); do { // En kurs 1.24

25 do { //Inmatning en poäng (den tomma rutan i JSP-diagrammet) System.out.printf("Poäng följd av ENTER (-1 för att avsluta): "); i = i + 1; x = Double.parseDouble( br.readline() ); tal[i] = x; avbryt = (x == -1) i == ANTAL; } while (!avbryt ); // Avbryt? antalinmatade = i + 1; // Hör till Inmatning sum = 0.0; for (int k = 0; k <= i; k++) { sum = sum + tal[k]; } System.out.print("Medelpoäng: "); medel = sum/antalinmatade; System.out.format("%7.1f%n", medel ); // Utskrift //Sluta? System.out.printf ("Sluta? (J/N) "); svar = br.readline(); sluta = svar.equals("j"); } while (!sluta); //Sluta? } 1.25

26 Granskning 3 testköring 1.26 Inspektion av programkodens kvalitet 1. Räknas medelvärdet ut korrekt? Skrivbordskörning av detta kodsegment. Variabelvärden skrivs in på pappret. (nästa sida...)

27 1.27

28 1.28 Man kan förstås även provköra koden och upprätta ett testprotokoll: Test Funktion Input Output Förväntad Verklig 1 Korrekt uträkning av medelvärde ,5 1,33 FEL! (Den blå texten är vad som kallas för ett testfall.) Alltså är något fel med hur uträkningen går till.

29 Analys av felorsaken: Varvräknaren i räknas upp under det varv då användaren väljer att avbryta och visar därmed en inmatning för mycket (i får ett för högt värde) Man bestämmer sig för att ändra koden så att variabeln i endast räknas upp, om användaren inte har matat in -1. Samma gäller för instoppningen av värdet i arrayen.

30 Koden inne i den innersta loopen blev så här efter korrigeringen: 1.30 Klassens namn: AveragePoints02. i = -1; do { // En kurs do { System.out.printf("Poäng följd av ENTER (-1 för att avsluta): "); } x = Integer.parseInt( br.readline() ); avbryt = (x == -1); if (!avbryt ) { i = i + 1; tal[i] = x; // Undvik att ändra avbryt från True till False. // Ändra bara om det är till True. if (i == ANTAL){ avbryt = true; } } } while (!avbryt );...

31 1.31 Konstruera testfall Skapa ett testfall, som demonstrerar att uträkning alltid görs rätt. En black box-test: Mata in vissa poängvärden och kontrollera att den uträknade medelpoängen är rätt. Output Test Funktion Input Förväntad Verklig 1 Korrekt uträkning av medelvärde ,5 1,33 FEL! Efter korrigering av programkoden: Kod version Korrekt uträkning av ,5 2,5 medelvärde Sluta=N 2 Korrekt uträkning av medelvärde (körs direkt efter Test 1) ,7 (7,666 avrundat) 5,6 FEL!

32 Analys av felet: 1.32 För att kunna studera vad som händer: Lägg till en rad som skriver ut summan och antalet innan medelvärdet räknas ut (röd): //Summera sum = 0; for (int k = 0; k < antalinmatade; k++) { sum = sum + tal[k]; } System.out. println( sum= + sum + antal= + antalinmatade); //Medelvärde.... Kör testfallet igen: Sum = 28 och antal = 5. Ingen av dem är rätt. Ska vara 23 respektive 3. Slutsats: Felet inträffar innan medelvärdet räknas ut. Felorsak: Varvräknaren i återställs inte, innan värdena för Test 2 matas in.

33 Korrigera felet (klassnamn AveragePoints03) : 1.33 do { // En kurs i = -1; // Flyttad hit. } do { System.out.printf("Poäng följd av ENTER (-1 för att avsluta): "); x = Integer.parseInt( br.readline() ); avbryt = (x == -1); if (!avbryt ) { i = i + 1; tal[i] = x; if (i == ANTAL){ avbryt = true; } } } while (!avbryt );...

34 Testkör: 1.34 Test Funktion Input Output Förväntad Verklig 1 Korrekt uträkning av medelvärde ,5 1,7 FEL! Efter korrigering av programkoden: Kod version 02 (eller hur du föredrar att göra numreringen) 1 Korrekt uträkning av medelvärde Sluta=N 2,5 2,5 2 Korrekt uträkning av medelvärde (körs direkt efter Test 1) ,7 (7,666 avrundat) 5,6 FEL! Efter korrigering av programkoden: Kod version 03 1 Korrekt uträkning av medelvärde Sluta=N 2,5 2,5 2 Korrekt uträkning av medelvärde (körs direkt efter Test 1) ,7 (7,666 avrundat) 7,7

35 För att styra vad som testas kan man behöva ge vissa variabler ett visst värde under testkörningen I föregående exempel är det känt att det korrekta värdet för sum är 23 och för antalinmatade är det 3. Ge dem de värdena, innan uträkningen av medelvärdet görs (röd text). Då går det att se om uträkningen av medelvärdet sker korrekt förutsatt att den uträkningen ges korrekta indata. (denna teknik kan behövas i laborationen.) //Summera sum = 0; for (int k = 0; k < antalinmatade; k++) { sum = sum + tal[k]; } sum = 23; antalinmatade = 3; //Medelvärde. Sedan gäller det att komma ihåg att ta bort dessa temporära tilldelningar

36 Avbryts loopen för Inmatning korrekt, när arrayen innehåller det maximalla antalet element? 3. Det ska inte gå att mata in negativa poäng. Osv tills allt är korrekt Det fullständiga exemplet finns i exempel_average_points.pdf

37 Förresten, lade du märke till att designern tidigt skrev kurs i stället för tentamen? 1.37

38 1.38 Principer, riktlinjer, praxis Nackdelar med kodning och testkörning direkt: (Vanligt att man frestas göra så) Endast ett fel upptäcks och kan rättas till per testkörning ==> - Tar lång tid att få ett felfritt program. Tid som kunde använts bättre. - Ev belastas maskiner och annan utrustning i onödan.

39 1.39 Bättre med inspektion av koden innan körning: Skrivbordskörning enskilt och redovisning med inspektionsmöte i grupp. Enda syftet och resultatet: Konstatera förekomst av fel. Programmeraren rättar efter mötet. ==> + Många fel upptäcks på en gång. + Sparar kodningstid, maskintid etc. + Felfriare programvara snabbare. (Jfr. agila iterativa metoder.)

40 Två synsätt: Vita lådor och svarta lådor 1.40

41 1.41

42 1.42

43 1.43 Exempel Ekvivalensklasser Domän: heltal -100 ==> +100 Två testklasser: - positiva heltal (en test) - negativa heltal (en test) Gränsvärdesanalys Test av -100: -101, -100 Test av -1: -1, 0 Test av +100: +101, +100 Test av +1: +1, (0 redan testad ovan) Specialvärden <ENTER> 0 Null (allt som för systemet motsvarar tomma mängden)

44 Vanliga och viktiga typer av tester på systemnivå Systemtestning. Integrationstestning. Regressionstestning. Acceptanstestning Planera testningen redan under designen. Se till att från början bygga in testbarhet, annars är risken stor för att testningen blir bristfällig.

45 1.45

46 1.46

47 1.47

48 1.48

49 1.49

50 Automatiserad testning 1.50 Sparar tid, resurser och pengar. Tillförlitligare utförande av testfall än människor och dessutom upprepbart. Avlastar människor tråkigt arbete. Annan än testkonstruktören kan utföra testerna, dvs starta exekveringen av de automatiska testfallen. Regressionstestning används med fördel.

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

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

Ett exempel som illustration till Laboration 1

Ett exempel som illustration till Laboration 1 Ett exempel som illustration till Laboration 1 Filen java_average_points.zip innehåller Java-koden till exemplet. Programmets avsikt enligt kravspecifikationen Användaren matar in poäng på en tentamen

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 4 JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

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

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander F6 Objektorienterad design ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se långa ord AKTIVITETER I PROGRAMVARUUTVECKLING Iterativ utveckling Kravspecifikation Design Implementation Testning

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

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

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

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Numeriska Metoder och Grundläggande Programmering för P1, VT2014 Föreläsning 2: Styrstrukturer & Programmeringsstrategi (Kap. 3 4 i MATLAB Programming for Engineers, S. Chapman) January 21, 2014 Innehåll:

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

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

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

Inledande programmering med C# (1DV402) Summera med while"-satsen

Inledande programmering med C# (1DV402) Summera med while-satsen Summera med while"-satsen Upphovsrätt för detta verk Inledande programmering med C# (1DV402) Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får

Läs mer

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

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

Objektorienterad Programmering (TDDC77)

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

Programdesign. Dokumentera. Dokumentera

Programdesign. Dokumentera. Dokumentera Programdesign Dokumentera Välj datastruktur så programmet blir så enkelt som möjligt. Välj algoritm så programmet blir lättläst, robust och effektivt. Analysera programmet för att få en bra metod. Överväganden

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

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Laboration: Whitebox- och blackboxtesting

Laboration: Whitebox- och blackboxtesting Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska

Läs mer

OOP Tentamen

OOP Tentamen DVS SU/KTH 1 (6) OOP OOP Tentamen 2010-01-15 15.00 20.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad. Skriv

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

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

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20 Programdesign Välj datastruktur så programmet blir så enkelt som möjligt. Välj algoritm så programmet blir lättläst, robust och effektivt. Analysera programmet för att få en bra metod. Överväganden vid

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

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet.

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet. Uppgift 1 Ett programmeringsparadigm är i grund och botten ett sätt att arbeta, ett sätt att möta problem. Det finns flera olika paradigm där varje paradigm har sina egna styrkor och svagheter. Det som

Läs mer

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

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

Klasser och objekt. Henrik Johansson. August 20, 2008

Klasser och objekt. Henrik Johansson. August 20, 2008 Föreläsning 5 Klasser och objekt Henrik Johansson August 20, 2008 Ett objekt är en modell av ett fysisikt eller ett tänkt ting. Objektet och det som vi kan göra med det beskrivs av en mall, en klass. Ett

Läs mer

Malmö högskola 2012/2013 Teknik och samhälle

Malmö högskola 2012/2013 Teknik och samhälle Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska

Läs mer

Obligatorisk uppgift: Numerisk kalkylator

Obligatorisk uppgift: Numerisk kalkylator Informationsteknologi Tom Smedsaas 22 augusti 2018 Obligatorisk uppgift: Numerisk kalkylator Programmet skall läsa in aritmetiska uttryck samt beräkna och skriva ut deras värden. Programmet ska läsa från

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

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det 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-09-01 Skrivtid: 0900-1200 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 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

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson OOP F1:1 Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning OOP Objekt-orienterad programmering Delkursansvarig: First Class-konferens: Kursens webbsidor:

Läs mer

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss

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

OOP Tentamen

OOP Tentamen DVS SU/KTH 1 (6) OOP OOP Tentamen 2007-12-21 13.00 18.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 GKOOP-distans Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på

Läs mer

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg

Läs mer

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Objektorienterad programmering i Java

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Tentamen ID1004 Objektorienterad programmering April 7, 2015 Ordinarie tentamen för ID1004 Objektorienterad programmering, 7 april 2015 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av en obligatorisk del och

Läs mer

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Tentamen ID1004 Objektorienterad programmering May 29, 2012 Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga

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

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output Programmering hh.se/db2004 Föreläsning 5: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite mer om Javas stöd för fält Hur många element har ett fält?

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val 732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==

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-03-16 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

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2015-05-26 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

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

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar

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

OOP Tenta

OOP Tenta Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt

Läs mer

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

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

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

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

F4. programmeringsteknik och Matlab

F4. 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

Några grundläggande begrepp

Några grundläggande begrepp Några grundläggande begrepp Validering bygger vi rätt system? Uppfyller kravspecifikationen de verkliga behoven? Verifiering bygger vi systemet rätt? Uppfyller det färdiga systemet kravspecifikationen?

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 1 Kapitel 1-3 i kursboken Java Software Solutions bild 2 Läsanvisningar Kapitel 1 är en repetition av det ni förväntas kunna sedan tidigare. Det

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Arrayer Metoder Räckvidd (Scope) Eclipse

Läs mer

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: ADAEK12h ASYST12h NGIMI12h 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:

Läs mer

Föreläsning 9-10 Innehåll

Föreläsning 9-10 Innehåll Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare

Läs mer

Föreläsning 10. Besiktningsprotokollet

Föreläsning 10. Besiktningsprotokollet Föreläsning 10 Besiktningsprotokollet 1 Besiktningsprotokollet 2 Användarvänlighet Informativa utskrifter Programmet ska tala om för användaren vad programmet gör i varje steg och vilken inmatning som

Läs mer

Sanningar om programmering

Sanningar om programmering Block 3: Programmering, del 1 Beräkningsvetenskap I Sanningar om programmering n Ett program är ett antal kommandon och särskilda strukturer lagrade i en eller flera filer n Att utveckla och skriva program

Läs mer

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1 Fortsättningskurs i programmering F 2 Algoritmer i Programutveckling Hugo Quisbert 20130122 1 Exempel 1 Problemexempel 1 En souvenirbutik behöver ett datorprogram som omvandlar ett pris i svenska kronor

Läs mer

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 3 29 sept 2014 Ett lite intelligentare program? Klassen Rectangle Rectangle height width color setheight setwidth getcolor getarea Rectangle public class Rectangle{

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

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

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011 1 of 7 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det 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 2014-10-17 Skrivtid: 0800-1300 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 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

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

JAVAUTVECKLING LEKTION 7

JAVAUTVECKLING LEKTION 7 JAVAUTVECKLING LEKTION 7 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Olika språkversioner (Klassen Locale) Utskrift i kommandofönster Inläsning via kommandofönster Standardklassen

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-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer