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

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

Föreläsning 3: Booleans, if, switch

Föreläsning 3-4 Innehåll

"if"-satsen. Inledande programmering med C# (1DV402)

Programmering A. Johan Eliasson

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

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

Föreläsning REPETITION & EXTENTA

Tentamen OOP

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

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Klassdeklaration. Metoddeklaration. Parameteröverföring

Introduktion till Datalogi DD1339. Föreläsning 5 13 okt 2014

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

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

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

F4. programmeringsteknik och Matlab

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

Föreläsning 8: Exempel och problemlösning

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

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

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

SMD 134 Objektorienterad programmering

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

Tentamen FYTA11 Javaprogrammering

Föreläsning 2, vecka 8: Repetition

TDDC77 Objektorienterad Programmering

(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

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

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

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Tentamen. Lösningsförslag

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

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

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Lösningsförslag. 1 Lösningsförslag. Uppgift 1

Programmeringsteknik I

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Typkonvertering. Java versus C

OOP Objekt-orienterad programmering

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

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

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Föreläsning 5-6 Innehåll

Malmö högskola 2007/2008 Teknik och samhälle

Tentamen , Introduktion till Java, dtaa98, dtea53

JAVAUTVECKLING LEKTION 8

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Objektorienterad Programmering (TDDC77)

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

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

LÖSNINGSFÖRSLAG TENTAMEN

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

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

PROGRAMMERING-Java TENTAMINA

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

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

Objektorienterad Programmering (TDDC77)

Del A (obligatorisk för alla)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Föreläsning 12: Exempel och problemlösning

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Del A (obligatorisk för alla)

Föreläsning 1 & 2 INTRODUKTION

Övningar Dag 2 En första klass

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

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

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

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

Kontraktsprogrammering

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

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.

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

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Lösningsförslag tentamen FYTA11 Java

Objektorienterad Programmering (TDDC77)

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

Objektorienterad Programmering (TDDC77)

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

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

tentaplugg.nu av studenter för studenter

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

TDIU01 - Programmering i C++, grundkurs

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

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

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

Objektorienterad programmering i Java

Föreläsning 9-10 Innehåll

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

Malmö högskola 2008/2009 CTS

Transkript:

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{ private double height; private double width; private Color mycolor;... public Rectangle(double h, double w){ height = h; width = w; mycolor = Color.RED; public double getarea(){ return height*width;

Ett exempelprogram (inte så bra) public class RectangleComparer{ public static void main(string args[]){ Rectangle recta = new Rectangle(22.81, 19.45); Rectangle rectb = new Rectangle(21.39, 20.79); System.out.println( Rektangel A: + recta.getarea()); System.out.println( Rektangel B: + rectb.getarea()); System.out.println( Rektangel B är störst! );

Ett exempelprogram (lite bättre) public class RectangleComparer2{ public static void main(string args[]){ Rectangle recta = new Rectangle(22.81, 19.45); Rectangle rectb = new Rectangle(21.39, 20.79); System.out.println( Rektangel A: + recta.getarea()); System.out.println( Rektangel B: + rectb.getarea()); if(recta.getarea() > rectb.getarea()){ System.out.println( Rektangel A är störst! ); else{ System.out.println( Rektangel B är störst! );

Ett exempelprogram (lite bättre) public class RectangleComparer2{ public static void main(string args[]){ Rectangle recta = new Rectangle(22.81, 19.45); Rectangle rectb = new Rectangle(21.39, 20.79); System.out.println( Rektangel A: + recta.getarea()); System.out.println( Rektangel B: + rectb.getarea()); if(recta.getarea() > rectb.getarea()){ System.out.println( Rektangel A är störst! ); else{ System.out.println( Rektangel B är störst! );

Villkorsats (Control flow) if(villkor){ else{ block A block B block C

Villkorsats (Control flow) if(villkor){ Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. else{ block A block B block C

Villkorsats (Control flow) if(villkor){ else{ block A Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. Om uttrycket är true, så kommer först block A att köras, block B block C

Villkorsats (Control flow) if(villkor){ else{ block A Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. Om uttrycket är true, så kommer först block A att köras, (block B hoppas över) block B block C

Villkorsats (Control flow) if(villkor){ else{ block A Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. Om uttrycket är true, så kommer först block A att köras, (block B hoppas över) block B och sedan fortsätter man med block C. block C

Villkorsats (Control flow) if(villkor){ else{ block A Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. Om uttrycket är false, så kommer först block A att hoppas över, block B I stället kommer block B att köras, och sedan fortsätter man med block C. block C

Villkorsats (utan else) if(villkor){ Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. block A block C Om uttrycket är true, så kommer först block A att köras, och sedan fortsätter man med block C.

Villkorsats (utan else) if(villkor){ Villkoret är ett booleskt uttryck, dvs ett uttryck som har något av värdena true eller false. block A block C Om uttrycket är false, så kommer block A att hoppas över, programmet fortsätter I stället direkt med block C.

Booleska uttryck Uttryck som kan utvärderas till typen boolean, dvs kan ta något av värdena true eller false. Booleska variabler: boolean myboolean = true; Direkta jämförelser: myboolean = (A < B); Metoder som returnerar boolean: mystatement.istrue();

Booleska uttryck Vi kan deklarera en variabel till att vara av typen boolean. Variabeln kan då ta något av värdena true eller false boolean myboolean = true; if(myboolean){ dosomething(); Orden true resp false kan betraktas som booleska konstanter, men de är oftast bara meningsfulla att använda i debug-syfte. if(true){ dosomething();

Booleska uttryck Vi kan jämföra två olika variabler. Resultatet av en sådan jämförelse kommer att vara antingen true eller false Exempel: A < B A > B A == B A!= B A <= B A >= B // returnerar true omm A är strikt mindre än B // returnerar true omm A är strikt större än B // returnerar true omm A är exakt lika med B // returnerar true omm A inte är exakt lika med B // returnerar true om A är mindre än B, eller lika stort // returnerar true om A är större än B, eller lika stort

Booleska uttryck Metoder som returnerar boolean: mystatement.istrue();

Booleska uttryck Metoder som returnerar boolean: mystatement.istrue(); Ett typiskt exempel är en jämförelse som kräver lite extra bearbetning: if(mystring.equalsignorecase( hej )){ System.out.println( Hej själv! );

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer.

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true // B utvärderas bara om A är true

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true // B utvärderas bara om A är true (A B) // true om antingen A eller B är true

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true // B utvärderas bara om A är true (A B) // true om antingen A eller B är true // false omm A och B är false // B utvärderas bara om A är false

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true // B utvärderas bara om A är true (A B) // true om antingen A eller B är true // false omm A och B är false // B utvärderas bara om A är false!a // true om A är false, false om A är true

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true // B utvärderas bara om A är true (A B) // true om antingen A eller B är true // false omm A och B är false // B utvärderas bara om A är false!a // true om A är false, false om A är true Dessa kan sättas ihop tilsammans med andra operatorer. Exempel: if(a >= 10 && A < 20){ System.out.println( A är ett tvåsiffrigt tal som börjar med en etta! );

Booleska uttryck - logiska operatorer För att göra mer komplexa villkor kan vi använda logiska operatorer. (A && B) // true omm både A och B är true // B utvärderas bara om A är true (A B) // true om antingen A eller B är true // false omm A och B är false // B utvärderas bara om A är false!a // true om A är false, false om A är true Dessa kan sättas ihop tilsammans med andra operatorer. Exempel: if(!(a >= 10 && A < 20)){ System.out.println( A är inte ett tvåsiffrigt tal som börjar med en etta! );

Scope, lifetime (räckvidd, livstid) Vi kan deklarera variabler på följande sätt: public class ScopeDemo{ public static int a; public int b; public int getdifference(int c){ return c a; public boolean isbigger(int c){ if( c > a){ boolean mybool = true; return mybool; return false;

Scope, lifetime (räckvidd, livstid) Vi kan deklarera variabler på följande sätt: public class ScopeDemo{ public static int a; public int b; public int getdifference(int c){ return c a; public boolean isbigger(int c){ if( c > a){ boolean mybool = true; return mybool; return false;

Scope, lifetime (räckvidd, livstid) Vi kan deklarera variabler på följande sätt: public class ScopeDemo{ public static int a; public int b; public int getdifference(int c){ return c a; public boolean isbigger(int c){ if( c > a){ boolean mybool = true; return mybool; return false;

Scope, lifetime (räckvidd, livstid) Vi kan deklarera variabler på följande sätt: public class ScopeDemo{ public static int a; public int b; public int getdifference(int c){ return c a; public boolean isbigger(int c){ if( c > a){ boolean mybool = true; return mybool; return false;

Scope, lifetime (räckvidd, livstid) Vi kan deklarera variabler på följande sätt: public class ScopeDemo{ public static int a; public int b; public int getdifference(int c){ return c a; public boolean isbigger(int c){ if( c > a){ boolean mybool = true; return mybool; return false;

Scope, lifetime (räckvidd, livstid) Vi kan deklarera variabler på följande sätt: public class ScopeDemo{ public static int a; public int b; public int getdifference(int c){ return c a; public boolean isbigger(int c){ if( c > a){ boolean mybool = true; return mybool; return false;

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör.

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör. // denna kommentartyp gäller raden ut

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör. // denna kommentartyp gäller raden ut if( a < 10 a > 20){ // om a ligger utanför 10 20 dosomething();

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör, men kan också användas till att tilfälligt ta bort en rad. // denna kommentartyp gäller raden ut if( a < 10 a > 20){ // om a ligger utanför 10 20 dosomething(); // System.out.println(a); // avkommentera för utskrift

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör, men kan också användas till att tilfälligt ta bort en rad. // denna kommentartyp gäller raden ut if( a < 10 a > 20){ // om a ligger utanför 10 20 dosomething(); // System.out.println(a) // avkommentera för utskrift /* Denna kommentartyp börjar från en startpunkt och fortsätter tills man kommer till slutpunkten */

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör, men kan också användas till att tilfälligt ta bort en rad. // denna kommentartyp gäller raden ut if( a < 10 a > 20){ // om a ligger utanför 10 20 dosomething(); // System.out.println(a) // avkommentera för utskrift /* Denna kommentartyp börjar från en startpunkt och fortsätter tills man kommer till slutpunkten */

Kommentarer Kommentarer är text som kompilatorn inte konverterar till kod. De används främst till att förklara vad koden gör, men kan också användas till att tilfälligt ta bort en rad. // denna kommentartyp gäller raden ut if( a < 10 a > 20){ // om a ligger utanför 10 20 dosomething(); // System.out.println(a) // avkommentera för utskrift /* Denna kommentartyp börjar från en startpunkt och fortsätter tills man kommer till slutpunkten */

Kommentarer Om vi följer standarden för kommentarer blir koden inte bara mer lättläst, utan vi kan också använda program för att automatgenerera dokumentation. ex: javadoc /** En kommentar som startar med dessa tecken blir dokumentation */

Kommentarer Om vi följer standarden för kommentarer blir koden inte bara mer lättläst, utan vi kan också använda program för att automatgenerera dokumentation. ex: javadoc /** En kommentar som startar med dessa tecken blir dokumentation */

Kommentarer för dokumentation /** Först kommer den kommentar som förklarar klassen och beskriver den i stora drag. Här kan vi också ha copyright, mm */ public class DemoClass{ /** Här beskriver vi fälten */ public int d = 4; // Här kan vi förklara kort /** Här kommer en text som förklarar just vad den efterföljande metoden gor, och hur den används. Om vi skriver flera rader sa bör den första vara en sammanfattning. */ public void donothing(){ /* Här kommer implementationstekniska förklaringar som rör hur just den här algoritmen fungerar. */ boolean unused = true;

Kommentarer för dokumentation /** Först kommer den kommentar som förklarar klassen och beskriver den i stora drag. Här kan vi också ha copyright, mm */ public class DemoClass{ /** Här beskriver vi fälten */ public int d = 4; // Här kan vi förklara kort /** Här kommer en text som förklarar just vad den efterföljande metoden gor, och hur den används. Om vi skriver flera rader sa bör den första vara en sammanfattning. */ public void donothing(){ /* Här kommer implementationstekniska förklaringar som rör hur just den här algoritmen fungerar. */ boolean unused = true;

Kommentarer för dokumentation /** Först kommer den kommentar som förklarar klassen och beskriver den i stora drag. Här kan vi också ha copyright, mm */ public class DemoClass{ /** Här beskriver vi fälten */ public int d = 4; // Här kan vi förklara kort /** Här kommer en text som förklarar just vad den efterföljande metoden gor, och hur den används. Om vi skriver flera rader sa bör den första vara en sammanfattning. */ public void donothing(){ /* Här kommer implementationstekniska förklaringar som rör hur just den här algoritmen fungerar. */ boolean unused = true;

Kommentarer för dokumentation /** Först kommer den kommentar som förklarar klassen och beskriver den i stora drag. Här kan vi också ha copyright, mm */ public class DemoClass{ /** Här beskriver vi fälten */ public int d = 4; // Här kan vi förklara kort /** Här kommer en text som förklarar just vad den efterföljande metoden gor, och hur den används. Om vi skriver flera rader sa bör den första vara en sammanfattning. */ public void donothing(){ /* Här kommer implementationstekniska förklaringar som rör hur just den här algoritmen fungerar. */ boolean unused = true;

Kommentarer för dokumentation /** Först kommer den kommentar som förklarar klassen och beskriver den i stora drag. Här kan vi också ha copyright, mm */ public class DemoClass{ /** Här beskriver vi fälten */ public int d = 4; // Här kan vi förklara kort /** Här kommer en text som förklarar just vad den efterföljande metoden gor, och hur den används. Om vi skriver flera rader sa bör den första vara en sammanfattning. */ public void donothing(){ /* Här kommer implementationstekniska förklaringar som rör hur just den här algoritmen fungerar. */ boolean unused = true;

Kommentarer för dokumentation /** Först kommer den kommentar som förklarar klassen och beskriver den i stora drag. Här kan vi också ha copyright, mm */ public class DemoClass{ /** Här beskriver vi fälten */ public int d = 4; // Här kan vi förklara kort /** Här kommer en text som förklarar just vad den efterföljande metoden gor, och hur den används. Om vi skriver flera rader sa bör den första vara en sammanfattning. */ public void donothing(){ /* Här kommer implementationstekniska förklaringar som rör hur just den här algoritmen fungerar. */ boolean unused = true;

http://www.csc.kth.se/utbildning/kth/kurser/dd1339