Programmering för språkteknologer I, VT2012. Rum

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

Objektorienterad Programmering (TDDC77)

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

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

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

(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 (TDDC77)

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

SMD 134 Objektorienterad programmering

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

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

F4. programmeringsteknik och Matlab

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

Föreläsning 1 & 2 INTRODUKTION

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

Föreläsning 1 & 2 INTRODUKTION

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

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

OOP Objekt-orienterad programmering

Programmering A. Johan Eliasson

Objektorienterad programmering i Java

TDIU01 - Programmering i C++, grundkurs

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Anteckningar 1: Grundläggande saker

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

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

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

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.

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

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

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

DD1314 Programmeringsteknik

TDDC77 Objektorienterad Programmering

Kompilera och exekvera Javakod

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Övning2. Variabler. Data typer

TDDC77 Objektorienterad Programmering

Tentamen OOP

Föreläsning 1-2 innehåll

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

[] Arrayer = Indexerad variabel

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

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

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Objektorienterad Programmering (TDDC77)

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

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Användarhandledning Version 1.2

TDDC77 Objektorienterad Programmering

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

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

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

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Tentamen ID1004 Objektorienterad programmering October 29, 2013

TENTAMEN OOP

Innehållsförteckning

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

Föreläsningsmaterial (Syntax och variabler)

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

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

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

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

JAVAUTVECKLING LEKTION 7

TENTAMEN OOP

Typkonvertering. Java versus C

Objektorienterad programmering i Java I

Undervisning. Examination

Chapter 3: Using Classes and Objects

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

Undervisning. Examination

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

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.

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

Tentamen , Introduktion till Java, dtaa98, dtea53

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

OOP Objekt-orienterad programmering

Föreläsning 3-4 Innehåll

Läsanvisning: Dessa OH bilder samt kap 1-3

Transkript:

Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/

Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska operatorer - input / output 2

Kursplan 3

Kursplan - Förkunskaper Introduktion till datateknik för språkvetare, 5 p/7,5 hp. 4

Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget Godkänd minst kunna redogöra för följande begrepp och skriva fungerande Javaprogram som exemplifierar och drar nytta av dem: 5

Kursplan Mål (1) på ett elementärt plan redogöra för och tillämpa en god programmeringsmetodik 6

Kursplan Mål (2) förklara innebörden av följande begrepp och kunna skriva fungerande Javaprogram som exemplifierar och drar nytta av dem: 1. datatyper, objekt, klasser, variabler (instans- och klass-) och metoder (instans- och klass-); 2. logiska och aritmetiska operatorer, jämförelseoperatorer; 3. villkorssatser (if-satser); och satser för iterativ kontroll (for- och while-satser); 4. standardklasser, särskilt viktiga exempel på sådana t.ex. String; 7

Kursplan Mål (3) skriva program som utför elementära beräkningar utifrån förekomsten av tecken och ord-n-gram i texter; (4) använda dokumentationen av Java med viss Självständighet; (5) förklara, dokumentera och kommentera kod på ett användbart sätt. 8

Kursmål och Planering Fas 1: Grunderna Datum Moment Examination 22/2 Variabler och operatorer Laboration 0 29/2 Villkorssatser Laboration 1 7/3 Arrayer(Fält) och repetitionssatser, del 1 Laboration 2 14/3 Repetitionssatser, del 2 Laboration 3 21/3 Metoder Laboration 4 Datum Moment Examination 28/3 Klasser, ord-tri-gram Laboration 5 Fas 2: Tillämpning Datum Moment Examination 4/4 ord-n-gram Laboration 6 18/4 Språkteknologisk tillämpning Laboration 7 Laboration 8 för VG 9

Kursmål och Planering Två pass per gång (undantag laboration 6) - Genomgång (10-12) Turing - Laboration (13 15) Chomsky Laboration 6: - Laboration (10 12) Chomsky 10

Laborationernas struktur Del 0 Testa momentet - Kompilera färdiga småprogram och gör små ändringar i dem Del 1 Skriva enkla problemet - Skriva egna småprogram där du tillämpar momentet Del 2 Tillämpning - Blanda in det nya momentet med de moment vi hittills gått igenom i kursen 11

Kursplan Betygskriterier Betyget G: Godkänd på laborationerna 0-7. Betyget VG: Utöver kraven för G måste man få VG på laboration 8. 12

Vad ska lämnas in? Varje laborationsinlämning ska innehålla följande: - packat arkiv med dina java-filer: tar -zcvf labx.tar.gz mappmedlabxfiler - skriftlig rapport 13

Hur skriver man en rapport? Introduktion: - Vad är syftet med din laboration? Varje deluppgift ska innehålla följande delar: - Genomförande: -- Hur gick du tillväga för att lösa laborationen - Resultat: -- Vilka resultat fick du? - Slutsats(ibland): -- Vilka slutsatser kan du göra utifrån dina resultat? Analysera (och diskutera) Referenser - Eventuell extra litteratur du använt för att lösa uppgifterna i laborationen 14

Kurslitteratur Huvudbok - Eck, David J. Introduction to Programming Using Java. 6e utgåvan (Gratisbok på internet) Alternativ litteratur - Holm, Per. Objektorienterad programmering och Java. Studentlitteratur. - Skansholm, Jan. Java direkt med Swing. Studentlitteratur. 15

Börja programmera 16

Vad är programmering? Programmering handlar om att ge instruktioner till en dator så att datorn kan lösa ett specifikt problem. Problem som ska lösas. Dator Resultat 17

Vad är programmering? Programmering handlar om att ge instruktioner till en dator så att datorn kan lösa ett specifikt problem. Problem som ska lösas. Människans språk Dator Datorns språk Binärt: 010101010110 Resultat Människans språk Vi vill skriva i ett språk som vi förstår men datorn förstår bara ettor och nollor, dvs binära tal. 18

Vad är programmering? Vi vill skriva i ett språk som vi förstår men datorn förstår bara ettor och nollor, dvs binära tal. Problem: Det är svårt att förstå datorns språk: 010101101010101101010101010101 19

Vad är programmering? Vi vill skriva i ett språk som vi förstår men datorn förstår bara ettor och nollor, dvs binära tal. Problem: Det är svårt att förstå datorns språk: 010101101010101101010101010101 Lösning: Vi vill arbeta med ett språk med följande egenskaper: - Det ska ha en entydig grammatik så att allting som sägs i det kan tolkas på endast ett sätt - Det ska vara lätt att översätta det till datorns språk Detta språk kallas för programmeringsspråk. Vi kommer att arbeta med Java som är ett objektorienterat 20 programmeringsspråk.

Java Fakta - Utvecklats av Sun Microsystems (www.oracle.com) - Släpptes 1995 - plattformsoberoende - dina program kan köras i olika datorsystem utan att du behöver ändra i koden - Objektorienterat - All kod skrivs i klasser som beskriver objekt (mer om detta senare i kursen) 21

Hur programmerar man? - Exempel Skriv ett program som skriver ut Hello World!. 22

Hur programmerar man? - Exempel Skriv ett program som skriver ut Hello World!. Steg 0: Förstå problemet - Vad ska programmet utföra? Program Hello World! 23

Hur programmerar man? - Exempel Skriv ett program som skriver ut Hello World!. Steg 1: Skapa pseudokod - Beskriv hur problemet ska lösas. Kom ihåg: En dator kan endast utföra en instruktion i taget. Program PRINT hello world! Hello World! Pseudokod En text som beskriver hur ditt program fungerar. 24

Hur programmerar man? - Exempel Steg 2: Implementera din lösning - Översätt din pseudokod till programmeringskod 0. Starta Emacs. 1. Skapa en ny fil som heter HelloWorld.java 25

Hur programmerar man? - Exempel Steg 2: Implementera din lösning - Översätt din pseudokod till programmeringskod 2. Skriv följande kod: public class HelloWorld 26

Hur programmerar man? - Exempel Steg 2: Implementera din lösning - Översätt din pseudokod till programmeringskod 2. Skriv följande kod: public class HelloWorld System.out.println("Hello World!"); Pseudokod: PRINT hello world! 27

Hur programmerar man? - Exempel Steg 2: Implementera din lösning - Översätt din pseudokod till programmeringskod 2. Skriv följande kod: public class HelloWorld System.out.println("Hello World!"); 3. Spara filen. 28

Hur programmerar man? - Steg 3 Steg 3: Testkörning - Kompilera din kod och testkör. 4. Öppna terminalen och placera dig i samma katalog som du sparade filen i med hjälp av kommandot cd. 5. Kompilera filen genom att skriva följande terminalen: javac HelloWorld.java Nu har du fått en exekverbar fil av din kod. Kompilering Kompilering innebär att man översätter din kod till det binära språket, dvs det språk som datorn förstår. Det binära språket består av ettor och nollor. 29

Hur programmerar man? - Steg 3 Steg 3: Testkörning - Kompilera din kod och testkör. 6. Exekvera ditt program genom att skriva följande i terminalen: java HelloWorld Resultatet blir det här: Hello World! Exekvering Körning av programmet. 30

Hur programmerar man? - Översikt Steg 0: Förstå problemet - Vad ska programmet utföra? Steg 1: Skapa pseudokod - Beskriv hur problemet ska lösas. Kom ihåg: En dator kan endast utföra en instruktion i taget. Steg 2: Implementera din lösning - Översätt din pseudokod till programmeringskod Steg 3: Testkörning - Kompilera din kod och testkör. Det blev fel Det blev rätt 31

Programskal public class Name... public - synlig för alla 32

Programskal public class Name... public - synlig för alla class - reserverat ord som används när man skapar klassen till ett objekt (mer om objekt senare i kursen). 33

Programskal public class Name... public - synlig för alla class - reserverat ord som används när man skapar klassen till ett objekt (mer om objekt senare i kursen). Name - Namnet på klassen/programmet 34

Programskal public class Name... static betyder att main kan användas innan nånting har skapats. 35

Programskal public class Name... static betyder att main kan användas innan nånting har skapats. void main returnerar ingenting 36

Programskal public class Name... static betyder att main kan användas innan nånting har skapats. void main returnerar ingenting main - Ett program börjar ALLTID i main 37

Programskal public class Name public static void main(string[] args)... String en datatyp som beskriver en sträng 38

Programskal public class Name public static void main(string[] args)... String en datatyp som beskriver en sträng [] - beteckning för array, dvs en samling element av samma typ 39

Programskal public class Name public static void main(string[] args)... String en datatyp som beskriver en sträng [] - beteckning för array, dvs en samling element av samma typ args - namnet på argumentet till main 40

Programskal public class Name public static void main(string[] args)... Här skriver vi koden till programmet. 41

Programskal Vad kan vi skriva i? Svar: Satser Exempel: Deklarera lokala variabler (idag) Skriva arimetiska uttryck (idag) Metodanrop: System.out.println("Hello World!"); 42

Lokala variabler 43

Lokala variabler - Fakta En variabel är en behållare som kan lagra en viss typ av information. Informationen kan spara undan och användas vid ett senare tillfälle i programmet. i 7 variabelnamn innehåll d 7.5 - Ett variabelnamn kan inte börja med en siffra 44

Lokala variabler deklarera utan tilldelning public class LocalVariables0 // deklarera i utan tilldelning int i; 45

Lokala variabler deklarera utan tilldelning public class LocalVariables0 // deklarera i utan tilldelning int i; int är en förkortning för Integer(heltal) 46

Lokala variabler deklarera utan tilldelning public class LocalVariables0 // deklarera i utan tilldelning int i; Namnet på den lokala variabeln int är en förkortning för Integer(heltal) 47

Lokala variabler deklarera utan tilldelning public class LocalVariables0 i // deklarera i utan tilldelning int i; en sats måste alltid avslutas med ; namnet på den lokala variabeln int är en förkortning för Integer(heltal) 48

Lokala variabler deklarera med tilldelning public class LocalVariables0 // deklarera i med tilldelning int i = 5; 49

Lokala variabler deklarera med tilldelning public class LocalVariables1 // deklarera i med tilldelning int i = 5; int är en förkortning för Integer(heltal) 50

Lokala variabler deklarera med tilldelning public class LocalVariables1 // deklarera i med tilldelning int i = 5; namnet på den lokala variabeln int är en förkortning för Integer(heltal) 51

Lokala variabler deklarera med tilldelning public class LocalVariables1 // deklarera i med tilldelning int i = 5; tilldelningsoperator används för att spara ett värde i en variabel namnet på den lokala variabeln int är en förkortning för Integer(heltal) 52

Lokala variabler deklarera med tilldelning public class LocalVariables1 // deklarera i med tilldelning int i = 5; värdet man vill spara i variabeln tilldelningsoperator används för att spara ett värde i en variabel namnet på den lokala variabeln int är en förkortning för Integer(heltal) 53

Lokala variabler deklarera med tilldelning public class LocalVariables1 i 5 // deklarera i med tilldelning int i = 5; Avsluta satsen med ett ; värdet man vill spara i variabeln tilldelningsoperator används för att spara ett värde i en variabel namnet på den lokala variabeln int är en förkortning för Integer(heltal) 54

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; 55

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; 56

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 5 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; 57

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 5 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; 58

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 5 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; variabeln man vill spara värdet i 59

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 5 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; tilldelningsoperator variabeln man vill spara värdet i 60

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 5 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; det nya värdet man vill spara i variabeln tilldelningsoperator variabeln man vill spara värdet i 61

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 5 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; avsluta med semikolon(;) det nya värdet man vill spara i variabeln tilldelningsoperator variabeln man vill spara värdet i 62

Lokala variabler Ändra värdet i en variabel public class LocalVariables2 i 4 // deklarera i med tilldelning int i = 5; // i tilldelas värde 4 i = 4; avsluta med semikolon(;) det nya värdet man vill spara i variabeln tilldelningsoperator variabeln man vill spara värdet i 63

Lokala variabler Hämta värdet public class LocalVariables3 // deklarera i med tilldelning int i = 5; // deklara j med tilldelning int j = i; 64

Lokala variabler Hämta värdet public class LocalVariables3 // deklarera i med tilldelning int i = 5; // deklara j med tilldelning int j = i; 65

Lokala variabler Hämta värdet public class LocalVariables3 i 5 // deklarera i med tilldelning int i = 5; // deklara j med tilldelning int j = i; 66

Lokala variabler Hämta värdet public class LocalVariables3 i 5 // deklarera i med tilldelning int i = 5; ij // deklara j med tilldelning int j = i; 67

Lokala variabler Hämta värdet public class LocalVariables3 i 5 // deklarera i med tilldelning int i = 5; ij 5 // deklara j med tilldelning int j = i; 68

Lokala variabler Deklarera flera variabler public class LocalVariables4 // deklarera variabler på samma rad int i = 5, j = i; 69

Lokala variabler Deklarera flera variabler public class LocalVariables4 // deklarera variabler på samma rad int i = 5, j = i; 70

Lokala variabler Deklarera flera variabler public class LocalVariables4 i 5 // deklarera variabler på samma rad int i = 5, j = i; 71

Lokala variabler Deklarera flera variabler public class LocalVariables4 i 5 ij // deklarera variabler på samma rad int i = 5, j = i; 72

Lokala variabler Deklarera flera variabler public class LocalVariables4 i 5 ij 5 // deklarera variabler på samma rad int i = 5, j = i; 73

Lokala variabler Deklarera flera variabler public class LocalVariables5 // deklarera variabler på samma rad int i = 5, j = 9; 74

Lokala variabler Deklarera flera variabler public class LocalVariables5 // deklarera variabler på samma rad int i = 5, j = 9; 75

Lokala variabler Deklarera flera variabler public class LocalVariables5 i 5 // deklarera variabler på samma rad int i = 5, j = 9; 76

Lokala variabler Deklarera flera variabler public class LocalVariables5 i 5 ij 9 // deklarera variabler på samma rad int i = 5, j = 9; 77

Lokala variabler Fakta En variabel används för att spara undan värden som vi kan använda senare i programmet. En variabel skapas så här: Sats Exempel Förklaring typ namn; int i; Skapar en variabel av typen typ och med namnet namn typ namn = värde; int i = 5; Skapar en variabel av typen typ och med namnet namn och med värdet värde. 78

Lokala variabler Fakta En variabel används för att spara undan värden som vi kan använda senare i programmet. Flera variabler skapas så här: Sats Exempel Förklaring typ namn0, namn1; int i, j; Skapar två variabler av typen typ och med namnen i och j. typ namn0 = värde0, namn1 = värde; int i = 5, j = 7; Skapar två variabler av typen typ och med namnen i och j, i har värdet 5 och j har värdet 7. 79

Lokala variabler Fakta Så här tilldelar man en variabel ett nytt värde: Sats Exempel Förklaring namn = nyttvärde; i = 7; Värdet 7 sparas i variablen i. Värdet i en variabel hämtas så här: Del av sats Exempel Förklaring namn i Värdet i variablen i hämtas. 80

Vilka typer av variabler kan vi skapa? Primitiva datatyper Enkla datatyper som redan finns i programmeringsspråket. Heltal : int, byte, short, long, Flyttal : float, double Sanningsvärde : boolean Tecken : char 81

Vilka typer av variabler kan vi skapa? Abstrakta datatyper - Klasser Datatyper som innehåller värden och metoder man kan utföra på datatypen. Exempel: Klassen String innehåller en beskrivning av en sträng och saker man kan göra med strängen. // deklarera en sträng med som innehåller hej! String mystring = "Hej!"; // returnerar längden på strängen mystring.length(); 82

Primitiva Datatyper - Heltal Typ Minsta värde Högsta värde byte - 127 128 short - 32 768 32 767 int -2 147 483 648 2 147 483 647 long -9 223 372 036 854 775 808 9 223 372 036 854 775 807 Laboration del 2 Undersök vad som händer när man överskider gränserna: short i = 60000; System.out.println(i); 83

Primitiva datatyper - Flyttal Typ Minsta värde Högsta värde Noggrannhet float 7 siffror double 3,4 10 38 3,4 10 38 1,7 10 308 1,7 10 308 15 siffror Laboration del 2 Undersök vad som händer när du adderar 0.1 flera gånger: double d = 0.1; System.out.println(d); d = d + 0.1; System.out.println(d); osv. 84

Primitiva datatyper - Sanningsvärden Typ Minsta värde Högsta värde boolean falskt sant 85

Primitiva datatyper - Tecken Typ: char Lagrar: tecken Exempel: // spara tecknet A i variabeln c char c = 'A'; 86

Aritmetiska Operatorer 87

Aritmetiska Operatorer - Fakta Aritmetiska operatorer ingår i uttryck och beskriver hur variabler och värden kan kombineras för att man ska få ett numeriskt resultat. Operator Exempel Förklaring + 1 + 5 Addition - 4-2 Substraktion * 2 * 2 Multiplikation / 4 / 2 Heltalsdivision om talen är heltal, annars vanlig division 88

Aritmetiska Operatorer - Exempel public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 89

Aritmetiska Operatorer - Exempel public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 90

Aritmetiska Operatorer - Exempel i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 91

Aritmetiska Operatorer - Exempel i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 92

Aritmetiska Operatorer - Exempel i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 93

Aritmetiska Operatorer - Exempel i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 6 94

Aritmetiska Operatorer - Exempel i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 6 + 95

Aritmetiska Operatorer - Exempel i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 6 + 2 96

i 6 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 6 + 2 = 8 97

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 6 + 2 = 8 98

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 99

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 100

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 5 101

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 5 _ 102

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 5 _ 103

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 5 _ 8 104

Aritmetiska Operatorer - Exempel i 8 ij 5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 5 _ 8 = -3 105

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 5 _ 8 = -3 106

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 107

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 108

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 109

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) -3 110

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) -3 * 111

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) -3 * -3 112

Aritmetiska Operatorer - Exempel i 8 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) -3 * -3 = 9 113

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) -3 * -3 = 9 114

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) -3 * -3 = 9 115

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 116

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 117

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 9 118

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 9 / 119

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 9 / 2 120

Aritmetiska Operatorer - Exempel i 9 ij -3 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 9 / 2 = 4.5 121

Aritmetiska Operatorer - Exempel i 9 ij? public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) 9 / 2 = 4.5 122

Aritmetiska Operatorer - Exempel i 9 ij? public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) Vi kan endast spara heltal(int) i j. 9 / 2 = 4.5 Vad händer när vi försöker lagra 4.5 i j? 123

Aritmetiska Operatorer - Exempel i 9 ij 4 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) Vi kan endast spara heltal(int) i j. 9 / 2 = 4.5 Vad händer när vi försöker lagra 4.5 i j? Svar: 4 sparas i j och.5 kastas bort. 124

Aritmetiska Operatorer - Exempel i 9 ij 4 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) Hur ska vi gå tillväga för att spara 4.5? 9 / 2 = 4.5 125

Aritmetiska Operatorer - Exempel i 9 ij 4 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) j = 9 / 2; // Division (/) Hur ska vi gå tillväga för att spara 4.5? 9 / 2 = 4.5 Svar: Skapa en variabel som man kan spara flyttal i och spara 4.5 i den. 126

Aritmetiska Operatorer - Exempel i 9 ij 4 d 4 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) double d = 9 / 2; // Division (/) Hur ska vi gå tillväga för att spara 4.5? 9 / 2 = 4.5 Svar: Skapa en variabel som man kan spara flyttal i och spara 4.5 i den. 127

Aritmetiska Operatorer - Exempel i 9 ij 4 d 4.0 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) double d = 9 / 2; // Division (/) 9 / 2 = 4.5 Problem: Datorn kastar fortfarande bort.5 för den beräknar först 9 / 2 = 4 och därefter sparar den resultatet i d. 128

Aritmetiska Operatorer - Exempel i 9 ij 4 d 4.5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) double d = 9.0 / 2.0; // Division (/) Problem: Datorn kastar fortfarande bort.5 för den beräknar först 9 / 2 = 4 och därefter sparar den resultatet i d. 9 / 2 = 4.5 Lösning a: Skriv 9.0 / 2.0 129

Aritmetiska Operatorer - Exempel i 9 ij 4 d 4.5 public class OperatorsOnInteger // deklarera i och j med tilldelning int i = 1 + 5, j = 5; i = i + 2; // Addition (+) j = 5 i; // Substraktion(-) i = j *(-3); // Multiplikation (*) double d = (double)(9 / 2); // Division (/) Problem: Datorn kastar fortfarande bort.5 för den beräknar först 9 / 2 = 4 och därefter sparar den resultatet i d. 9 / 2 = 4.5 Lösning b: Skriv (double) (9 / 2) 130

Aritmetiska Operatorer Varför räknar datorn så här? Syntaxen för operatorerna ser ut så här: uttryck0 operator uttryck1 Operatorerna är typberoende, dvs resultatet har samma typ som uttryck0 och uttryck1. I vårt fall med exemplet 9/2, dividerade datorn två heltal (int)och den typ som returnerades var int. Detta kallas för heltalsdivision. Minnesregler: int operator int = int int operator double = double 131

Implicit Konvertering Varför sparades 4.0 i en double? Detta hände egentligen: 0. Först beräknades 9/2 = 4 ut. 1. Eftersom 9 och 2 är heltal (int) så trodde datorn att 4 skulle vara ett heltal (int). 2. Då vi ville spara resultatet i en double konverterades 4 automatiskt från int till double. Detta kallas för implicit konvertering. 132

Explicit Konvertering Varför fungerade (double) (9/2)? Detta hände egentligen: 0. Först beräknades 9/2=4.5 1. Eftersom vi hade skrivit (double) före (9/2) talade vi om för datorn att vi ville att resultatet skulle vara i double. Detta kallas för explicit konvertering. 133

Input / Output (I/O) 134

Input / Output (I/O) Input: Inläsning från inströmmen, till exempel inmatning från tangentbordet. Output: Utskrift till utströmmen, till exempel utskrift till skärmen 135

Input / Output (I/O) Skriva ut text Så hur skriver man ut text i Java: - Utskrift som avslutas med ny rad: System.out.println("Hello World!"); - Utskrift som inte avslutas med ny rad: System.out.print("Hello World!"); 136

Input / Output (I/O) Skriva ut variabel - För att skriva ut värdet i en variabel skriver man så här: System.out.println(variabelnsNamn); - Om man vill skriva text framför variablen, skriver man så här: System.out.println("text" + variabelnsnamn); 137

Input / Output (I/O) Exempel public class PrintVariable // deklarera i med tilldelning int i = 5; // Skrivet ut värdet i variabeln i System.out.println(i); System.out.print("Variabelns värde:" + i); 138

Input / Output (I/O) Exempel public class PrintVariable // deklarera i med tilldelning int i = 5; // Skrivet ut värdet i variabeln i System.out.println(i); System.out.print("Variabelns värde:" + i); 139

Input / Output (I/O) Exempel public class PrintVariable i 5 // deklarera i med tilldelning int i = 5; // Skrivet ut värdet i variabeln i System.out.println(i); System.out.print("Variabelns värde:" + i); 140

Input / Output (I/O) Exempel public class PrintVariable i 5 // deklarera i med tilldelning int i = 5; // Skrivet ut värdet i variabeln i System.out.println(i); System.out.print("Variabelns värde:" + i); 5 141

Input / Output (I/O) Exempel public class PrintVariable i 5 // deklarera i med tilldelning int i = 5; // Skrivet ut värdet i variabeln i System.out.println(i); System.out.print("Variabelns värde:" + i); 5 Variablens värde: 5 142

Input / Output (I/O) Det är enkelt att skriva ut saker i java men hur kan vi tillåta att en användare kan skriva något till programmet? Fungerar något av det här tro? System.in.readLine(); System.in.read(); System.in.getInput(); 143

Input / Output (I/O) Det är enkelt att skriva ut saker i java men hur kan vi tillåta att en användare kan skriva något till programmet? Fungerar något av det här tro? System.in.readLine(); System.in.read(); System.in.getInput(); Nej, det fungerar inte. Lösning: Vi behöver använda klassen Scanner. 144

Input / Output (I/O) Exempel // Så här skriver man för att importera // Scanner i programmet: import java.util.scanner; public class ReadInput 145

Input / Output (I/O) Exempel // Så här skriver man för att importera // Scanner i programmet: import java.util.scanner; public class ReadInput // Så här skapar man en scanner: Scanner myscanner = new Scanner(System.in); 146

Input / Output (I/O) Exempel // Så här skriver man för att importera // klassen Scanner import java.util.scanner; public class ReadInput // Så här skapar man en Scanner: Scanner myscanner = new Scanner(System.in); Klassens namn 147

Input / Output (I/O) Exempel // Så här skriver man för att importera // Scanner i programmet: import java.util.scanner; public class ReadInput // Så här skapar man en Scanner: Scanner myscanner = new Scanner(System.in); Variabelns namn Klassens namn 148

Input / Output (I/O) Exempel // Så här skriver man för att importera // Scanner i programmet: import java.util.scanner; public class ReadInput // Så här skapar man en Scanner: Scanner myscanner = new Scanner(System.in); Variabelns namn Klassens namn Tilldelningsoperator 149

Input / Output (I/O) Exempel // Så här skriver man för att importera // Scanner i programmet: import java.util.scanner; public class ReadInput // Så här skapar man en Scanner: Scanner myscanner = new Scanner(System.in); Så här skriver man för att skapa en instans av klassen Scanner som läser från input-strömmen. Variabelns namn Klassens namn Tilldelningsoperator 150

Input / Output (I/O) Exempel import import java.util.scanner; public class ReadInput Scanner myscanner = new Scanner(System.in); // Så här läser man in ett heltal int myinteger = myscanner.nextint(); 151

Input / Output (I/O) Exempel import import java.util.scanner; public class ReadInput Scanner myscanner = new Scanner(System.in); int myinteger = myscanner.nextint(); // Så här läser man in ett decimaltal double mydouble = myscanner.nextdouble(); 152

Input / Output (I/O) Exempel import import java.util.scanner; public class ReadInput Scanner myscanner = new Scanner(System.in); int myinteger = myscanner.nextint(); double mydouble = myscanner.nextdouble(); //Så här läser man in en sträng String mystring = myscanner.next(); 153

Input / Output (I/O) Exempel import import java.util.scanner; public class ReadInput Scanner myscanner = new Scanner(System.in); int myinteger = myscanner.nextint(); double mydouble = myscanner.nextdouble(); String mystring = myscanner.next(); // Så här skriver man ut variablerna System.out.println("Du skrev in följande:"); System.out.println("heltal: " + myinteger); System.out.println("decimaltal: " + mydouble); System.out.println("sträng: " + mystring); 154

Idag: Normalt programflöde sats; sats; sats; 155

Nästa gång: Villkorsflöde sats; sant? falskt sats; sats; sats; sats; sats; 156