Föreläsning 3: Booleans, if, switch
|
|
- Lucas Sandberg
- för 6 år sedan
- Visningar:
Transkript
1 TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1,
2 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt objekt (boll1) som är en instans av klassen Boll. Hela raden kallas en deklaration, och i detta fall med utgångsvärdet specificerat med = new Boll(5,12). Som bild: en klass definition variabel, dvs en minnesplats ett objekt, dvs instans x är 5, y är 12 instanspil Boll har x, y typ: Boll namn: boll1 referensvärde
3 Påminnelse om terminologi och namn objekt = instans (av en klass) immutable object ett objekt som man inte kan ändra primitiva typer (int, char, boolean, mm.) klasstyper/referenstyper (allt annat, String, Rectangle, Ball, mm.) Namn konventioner/regler: boll Boll BOLL variabel eller metod klass konstant
4 Deklarationer och tilldelningar först evalueras deklarationen variabeler, dvs minnesplatser: int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5;
5 Deklarationer och tilldelningar först evalueras deklarationen int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: minnesplatsen är tom namn: thismonth
6 Deklarationer och tilldelningar nu har deklarationen körts då raderar vi den int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth
7 Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth
8 Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth
9 Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: en ny minnesplats skapas med 1987 som värde namn: thismonth 1987 namn: thisyear
10 Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth 1987 namn: thisyear
11 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth int nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear
12 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth int nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear
13 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear
14 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear
15 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = ; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear
16 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1988; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear
17 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1988; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear
18 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = nextyear + 5; 1987 namn: thisyear 1988 namn: nextyear
19 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = nextyear + 5; 1987 namn: thisyear 1988 namn: nextyear
20 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = ; 1987 namn: thisyear 1988 namn: nextyear
21 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1993; 1987 namn: thisyear 1988 namn: nextyear
22 Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth koden har kört klart 1987 namn: thisyear 1993 namn: nextyear
23 Beräkningar Öva på egenhand! på papper t.ex. Man kan testa sina egna simuleringar mot ett verktyg: men OBS ni måste kunna göra detta utan verktyg! int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5;
24 Läsanvisning Jag pekar nedan på var i boken de olika sakerna tas upp. Boken tar dock upp dessa saker ganska sent i sammanhang med andra saker som ni inte ännu behärskar. Det kan därför vara rätt svårt att läsa dessa hänvisningar nu. datatypen Boolean 4.2, 4.6 relationsuttryck och logiska uttryck (.) De Morgan's lag (s 217) operatorer (utspritt) if (4.1), switch(4.8) Nästa föreläsning: for (12.7,12.6), while (7.3.1, 12.6), do-while (7.5)
25 Datatypen Boolean och logiska uttryck Utsagan: det snöar eller a<8 är antingen sann eller falsk Att ta reda på vilket är en form av beräkning som resulterar i något av värdena sant eller falskt Typen boolean har litteralerna {true, false och de logiska (booleska) operatorerna: and (&&), or ( ) och not (!) Relationsuttryck och logiska uttryck Relationsuttryck: a<10, a!=10, a<=10- b Logiska uttryck byggs upp av variabler av typ boolean, relationsuttryck och de logiska operatorerna and (&&), or ( ) och not (!) går ej! x>10 && x<20- y b 10<x<20 10<x && x<20
26 Sanningstabell för de logiska operatorerna a b! a a && b a b false false true false false false true true false true true false false false true true true false true true boolean sunny, overcast, pleasant; double temp;... sunny = true; overcast =!sunny; pleasant = sunny &&!(temp < < temp);
27 testa koden med visualiseringsverktyget! public class Weather { public static void main(string[] args) { boolean sunny, overcast, pleasant; double temp; temp = 19.0; sunny = true; overcast =!sunny; pleasant = sunny &&!(temp < < temp); System.out.println("Pleasant: " + pleasant);
28 Förenkling av logiska uttryck De Morgan's lag!(a && B) är samma sak som!a!b!(a B) är samma sak som!a &&!B Enkelt ex: Betrakta uttrycket på förra sidan!(temp < < temp) är då detsamma som!(temp < 18.0) &&!(30.0 < temp) vilket i sin tur är 18.0 <= temp && temp <= 30.0 Logiska uttryck evalueras med "lat" evaluering. (lazy evaluation)
29 Förenkling av logiska uttryck public class Weather { public static boolean p(string s, boolean v) { System.out.println(s); return v; public static void main(string[] args) { boolean sunny, overcast, pleasant; double temp; temp = 17.0; sunny = true; overcast =!sunny; pleasant = sunny &&!(p("mindre",temp < 18.0) p("större",30.0 < temp)); System.out.println("Pleasant: " + pleasant); Vad skrivs ut? Logiska uttryck evalueras med "lat" evaluering. (lazy evaluation)
30 De flesta operatorer i Java i precedensordning högsta arg++, arg--, [], (), metod anrop: name.fieldname unära multiplikationsop. *, /, % additionsop. +, - ++arg, --arg, +arg, -arg,!arg new, (type)expr relationsop. <, <=, >, >=, instance of likhetsop. ==,!= tilldelning =, +=, -=,... logiskt och && logiskt eller Prioriteten kan ändras med parenteser dvs i Java binder && starkare än OBS: a && b c är samma som (a && b) c (definieras olika i olika språk jmf Pascal: [not] [*, /, div, mod, and] [+, -, or] [=, <, >, <=...]) Ada: [abs, not, **] [*, /, mod] [monadiska +,-] [+, -, &] [=, /=, <, <=, >, >= ] [and, or, xor]
31 if satsen: selektion/val Syntax if (<boolean expression1>) { <statements> else if (<boolean expression2>){ <statements> else if (... else { <statements> Semantik Semantik 1. Villkoret(n) evalueras (i tur och ordning). 2.Satserna efter det första sanna villkoret exekveras en gång. 3.Resten av villkoren evalueras inte. 4.Om inget av villkoren är sant exekveras satserna efter else en gång.! Noll eller ett else,! Noll eller flera else if tillåtna. ( evalueras = beräknas)
32 if satsen public class Test { public static void main(string[] args) { int a = 5; int b = 6; if (a < b) { System.out.println("a minst"); else if (a == b) { System.out.println("a = b"); else { System.out.println("b minst"); // end if // end Test OBS Använd alltid block ( dvs { ) Annars luras du med indenteringen if (false) System.out.println( one ); System.out.println( two ); System.out.println( three );
33 Skottår if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { om året inte är delbart med 4 => ej skottår om året är delbart med 4 - om det inte är delbart med 100 => skottår om det är delbart med om det är delbart med 400 => skottår annars inte
34 Evaluering först beräknas villkoret if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year
35 Evaluering först beräknas villkoret if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year
36 Evaluering först beräknas villkoret if (300 % 4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year
37 Evaluering först beräknas villkoret if ( 0 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year
38 Evaluering först beräknas villkoret if (true) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year
39 Evaluering if (true) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { nu vet vi att första { körs och else raderas variabel, dvs en minnesplats 300 namn: year
40 Evaluering if (year%100 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year
41 Evaluering if (year%100 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year
42 Evaluering if ( 300 % 100 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year
43 Evaluering if ( 0 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year
44 Evaluering if (true) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year
45 Evaluering if (true) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year
46 Evaluering if (year%400 == 0) { else { variabel, dvs en minnesplats 300 namn: year
47 Evaluering if (year%400 == 0) { else { variabel, dvs en minnesplats 300 namn: year
48 Evaluering if (300 % 400 == 0) { else { variabel, dvs en minnesplats 300 namn: year
49 Evaluering if ( 300 == 0) { else { variabel, dvs en minnesplats 300 namn: year
50 Evaluering if (false) { else { variabel, dvs en minnesplats 300 namn: year
51 Evaluering if (false) { else { variabel, dvs en minnesplats 300 namn: year
52 Evaluering variabel, dvs en minnesplats 300 namn: year resultatet är att metoden/funktionen returnerar false, mera om metoder senare
53 Testa koden själv! public class Leap { public static boolean isleapyear(int year) { if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { public static void main(string[] args) { System.out.println(isLeapYear(300)); Verktyg:
54 Förenkla... if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { if (year%4 == 0) { if (year%100 == 0) { return (year%400 == 0) else { else {
55 Förenkla... if (year%4 == 0) { if (year%100 == 0) { if (year%4 == 0) { return (year%400 == 0) else { else { return (year%100!= 0) (year%400 == 0) else {
56 Förenkla... if (year%4 == 0) { return (year%100!= 0) (year%400 == 0) return (year%4 == 0) && ((year%100!= 0) (year%400 == 0)) else { OBS: Förenkla försiktigt! Gör inte koden svårläst eller fel. OBS: Logiska uttryck evalueras med "lat" evaluering. (lazy evaluation)
57 switch/case satsen: selection/val Syntax switch ( <integer expression> ) {(Java7 även String) case <value> : <statements> break; // exit the switch case <value1> : <statements> case <value2> : <statements> break; // exit the switch default : <statement> break; // exit the switch Exempel char ch = nåt lämpligt tecken switch (ch) { case 'x': System.out.println("Option x"); break; case 'c': System.out.println("Option c"); break; default:...println("okänd flagga"); break; // end case
58 switch exempel // Precon: 1 <= month <= 12 // Postcon: returns the number of days in the month public static int daysinmonth(int year, int month) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; // return => no break needed case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; // end switch // end daysinmonth
59 Evaluering/beräkning av switch switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; Vi börjar med att räkna uttrycket som bestämmer vad vi kommer att radera. variabel, dvs en minnesplats namn: month 6
60 Evaluering/beräkning av switch switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; Vi börjar med att räkna uttrycket som bestämmer vad vi kommer att radera. variabel, dvs en minnesplats namn: month 6
61 Evaluering/beräkning av switch switch (6) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; Vi börjar med att räkna uttrycket som bestämmer vad vi kommer att radera. variabel, dvs en minnesplats namn: month 6
62 Evaluering/beräkning av switch switch (6) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
63 Evaluering/beräkning av switch switch (6) { case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
64 Evaluering/beräkning av switch switch (6) { case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
65 Evaluering/beräkning av switch switch (6) { case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
66 Evaluering/beräkning av switch switch (6) { case 9 och 11 är bara namn, de skippar vi case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
67 Evaluering/beräkning av switch switch (6) { case 6: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
68 Evaluering/beräkning av switch switch (6) { case 6: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6
69 Evaluering/beräkning av switch resultatet är att metoden returnerar 30 return 30; variabel, dvs en minnesplats namn: month 6
Föreläsning 4: for, while, do-while
TDA 545: Objektorienterad programmering Föreläsning 4: for, while, do-while Magnus Myréen Chalmers, läsperiod 1, 2014-2015 Evaluering Det är viktigt att ni kan se hur kod körs. ( se = simulera på papper,
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
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
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
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean
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,
Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Göteborg, Magnus Myréen, 2014-10- 15 Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max
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
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
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Input/Output Programsatser Selektion Output OOP F2:2 Görs via System.out, anropa antingen print eller println: System.out.print("Hej"); System.out.println(
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
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
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Imperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
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{
Föreläsning 6: Metoder och fält (arrays)
TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden
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
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
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
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å
Föreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
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
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å
(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
Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit
Fler byggstenar Heltalsrepresentation Fyra heltalstyper Intern data representation Typomvandlingar Fler operatorer VŠljande & upprepande satser Tecken-bit by te t short t int t 7 bitar 15 bitar 31 bitar
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 (
Föreläsning 12: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 12: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Problemlösning, dvs hur man ska tänka för att hitta lösning int mängd/set
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
Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)
Villkor och tester Ett program består i princip av: Deklarationer som inför variabler, dvs namngivna minnesceller som används för att lagra data. int a; double radie=1.0, yta; double d = 4.5; String s
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
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
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
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik för ingenjörer, VT06 2 Repetition Repetition -
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
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
F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander
F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng
Föreläsning 11: Rekursion
TDA 545: Objektorienterad programmering Föreläsning 11: Rekursion Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Läsanvisning: kap 19, men bara t.o.m. sida 812 rekursion fakulteten exponentiering
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
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
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å
Programmeringsteknik I
Programmeringsteknik I Föreläsning 2: Grundläggande Java Johan Öfverstedt Java Grundläggande begrepp Datatyper Selektion if Räckvidd (scope) Iteration while Klasser Objekt Metoder Metodhuvudet Kodstandarden
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 (
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering
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
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 2 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin, 2018 Outline Emacs Introduktion till Objektorienterad Programmering Introduktion till Java Variabler
"if"-satsen. Inledande programmering med C# (1DV402)
"if"-satsen Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket if-satsen
Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
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
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
Parameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
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
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
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
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
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ÖSNINGSFÖRSLAG TENTAMEN
LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration
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
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
System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);
1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende
Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING
Föreläsning 11 12 ALGORITMER: SÖKNING, REGISTRERING, SORTERING Seminarier: Fredagsklubben för dig som tycker att programmering är svårt (0 eller möjligen 1 poäng på delmålskontrollen) inte avsedda för
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
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
Exempel på ett litet Ada-program
Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift
Obligatorisk uppgift 5
(5 oktober 2018 Symbolisk kalkylator 1 ) Obligatorisk uppgift 5 En kalkylator som hanterar uttryck symboliskt dvs värden är uttryck inte bara tal. Uppgiften exemplifierar: objektorientering återanvändning
Lö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,
TENTAMEN OOP
TENTAMEN OOP 2014-03-15 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
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
F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander
F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många
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
Övning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden Nyckelord I Java abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw
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 ==
Objektorienterad Programkonstruktion. Föreläsning jan 2016
Objektorienterad Programkonstruktion Föreläsning 13 19 jan 2016 Tentamen Del I, E del Flervalsfrågor 20/25 krävs för godkänt, ger betyg E Upp till 7 möjliga bonuspoäng Del II, Högrebetygsdel Problemfrågor
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
TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 TDDE11, 725G90/1 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder
Läsanvisning: Dessa OH bilder samt kap 1-3
f1pt F 2 Läsanvisning: Dessa OH bilder samt kap 1-3! typer, variabler och tilldelning! primitiva typer, fördefinierade primitiva typer! uttryck, operatorer, prioritet, typomvandling,! Javas API, klassen
Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private
Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall
Tentamen. Lösningsförslag
Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt
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
Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)
Lektion Java Grunder Javas historia Ursprungligen utvecklades Java (1991) för att användas i olika typer av konsumentelektronik (mikrovågsugnar, videoapparater) av programmerare på Sun. Språket kallades
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Föreläsning 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
Tentamen ID1004 Objektorienterad programmering December 15, 2012
Ordinarie tentamen för ID1004 Objektorienterad programmering, 15 december 2012, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
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
Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ
Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 1
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 1 Pelle Evensen, Daniel Wetterbro 28 oktober 2009 Sammanfattning Denna vecka ska vi titta på skillnader mellan primitiva typer
Logik och kontrollstrukturer
Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch
Instuderingsfrågor, del A
Uppgift 1. Instuderingsfrågor, del A Objektorienterad programmering, Z1 Vilka av följande identifierare är ogiltiga i Java? Motivera. a) Benny b) any.time c) any_time d) intnumber e) INTNUMBER f) 1stStreet
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)
Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
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[]
TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:
TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 1 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av Java Hello World!
Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.
Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något
Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!
Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar
Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program