Fö2 - Intro till Java och intro till OOP 1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera?

Slides:



Advertisements
Liknande presentationer
INTRODUKTION TILL PROGRAMMERING
Advertisements

F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
Programstruktur: C för enchipsdatorer
Imperativ Programmering
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Om Java C =>Java syntax variabler metoder färdiga klasser
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Att programmera i språket Java
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
i olika programmeringsspråk
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Programmeringsbegrepp
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
INTRODUKTION TILL PROGRAMMERING
Digitalitet.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera? – DrJava ( t ex) – Java.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Central-enhet PM CPU BIOS Skiv- minne Sekundär- minnes- enheter (SM)
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Föreläsning 2 2D1312 Introduktion till Python Kap 1 och 2 i kursboken.
Progteknik I, vt2011: Lektion 1, del a - Intro till DrJava och Java 1 Lektion 1, del a – Intro till DrJava och Java Målsättning med lektionen: Bekanta.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP– Föreläsning vecka Genomgång uppgifter Arbetsmetoder Repetition Kapitel 14 Metoder.
Föreläsning 1 Introduktion till kursen. Algoritmer
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Python.
Föreläsning 2 Programmeringsteknik DD1310
Föreläsning 3: Booleans, if, switch
Föreläsning 8: Exempel och problemlösning
Iteration – Repetitionssats - while
Presentationens avskrift:

Fö2 - Intro till Java och intro till OOP 1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): Vad behövs för att kunna programmera? – DrJava (t ex) – Java (installera först!) Reserverade ord (t ex if, while...) Primitiva variabler ( t ex int, double, char, boolean ) Typomvandling Utskrifter och inläsning (Hur lagras information i datorn) Ev. Intro till Objektorienterad programmering (kap 3)

Fö2 - Intro till Java och intro till OOP 2 Vad behövs för att kunna programmera? Java = program som översätter (för människan begripliga) instruktioner till datorspråk (javabyte kod/maskinkod): Kompilator +... Andra exempel: C++, Python, etc DrJava = en editor (~ordbehandlare) anpassad för programmering. Andra exempel: BlueJ, Eclipse, etc (IDE)

Fö2 - Intro till Java och intro till OOP 3 Vad är DrJava? DrJava är ett (gratis)program för att programmera i Java –Utvecklat vid Rice University, USA –DrJava är skrivet i Java Program för att programmera i kallas för IDE= Integrated Development Environment Med DrJava kan man –Skapa Javaprogram (definitions pane) –Testa javasatser (interactions pane) –Lista alla öppna filer (files pane)

Fö2 - Intro till Java och intro till OOP 4 Med kursboken följer en CD med många program (sk. javaklasser) för hantering av grafik, bilder, ljud, etc. DrJava använder i sin tur andra program som finns på datorn för att lösa sin uppgift –Javakompilatorn –Javainterpretatorn DrJava…

Fö2 - Intro till Java och intro till OOP 5 är ett programmeringsspråk  högnivåspråk  objektorienterat språk innehåller många hjälpprogram (klasser) Internet/Webben Grafik Användargränssnitt Standardprogram, t ex Math mm. är fritt kan användas på alla typer datorer Java

Fö2 - Intro till Java och intro till OOP 6 När java installeras på datorn får ni bl.a följande: Javakompilatorn Javainterpretatorn Många färdiga javaprogram, sk. klasser som hör till språket Java, t.ex. Math, JoptionPane… I kursen kommer ni att använda javaprogram: ● De standardprogram som följer med Java t ex Math, se De specialprogram som följer med boken, t ex Turtle och World De program ni skriver själva Java…

Fö2 - Intro till Java och intro till OOP 7 Språket har strikta regler för hur det skall skrivas, dvs språkets grammatik, det kallas språkets syntax. Språket byggs upp av identifierare och reserverade ord som sätts ihop till satser. Identifierare är det som programmeraren själv hittar på namn för, t.ex. variabelnamn, Reserverade ord är de ord som finns inbyggda i språket. ● En sats är en instruktion. En sådan avslutas normalt med ett semikolon Ex: double xKoordinat = 18.4; Java…

Fö2 - Intro till Java och intro till OOP 8 abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Reserverade ord i språket Java Ord i fet stil används i kursen

Fö2 - Intro till Java och intro till OOP 9 Variabler Deklareras att vara av en specifik datatyp, tex int, double, char Har ett namn: börjar på _ eller bokstav En primitiv variabel kan innehålla ett värde, t.ex. ett heltal Vid deklarationen reserveras ett minnes- utrymme för variabelns värde. Variabelns namn är ett alias för adressen till minnesutrymmet.

Fö2 - Intro till Java och intro till OOP 10 Variabler Exempel: Vi deklarerar och initierar variabler som är primitiva datatyper: int tal; (deklarera en variable) int x=67;(deklarera och initiera) double x=2.5; char c= ’A' ; boolean sommar=true; Vi går igenom på tavlan hur dessa variabler lagras i datorns minne. Detaljer finns under sidorna i denna presentation som börjar med rubriken ”Hur lagras data i datorn?”

Fö2 - Intro till Java och intro till OOP 11 Åtta primitiva datatyper Fyra heltalstyper (numeriska): byte, short, int, long Två flyttalstyper (numeriska) float, double En teckentyp: char En boolskt typ, sant eller falskt (default): boolean

Fö2 - Intro till Java och intro till OOP 12 Primitiva datatyperna byte, boolean 8 bits short int float long 8 bits double 8 bits char 8 bits

Fö2 - Intro till Java och intro till OOP 13 De numeriska datatyper TypMinnesutrymmeMin/Maxvärde byte8 bit-128 … 127 short … int … long64+/- 9 x float32 +/- 3.4 x 10 38, 7 siffrors nogr. double64+/- 1.7 x , 15 siffrors nogr.

Fö2 - Intro till Java och intro till OOP 14 Numeriska datatyper, några viktiga kom-i-håg Heltalsdivision (decimaler huggs av) int a = 2, b = 3, c = a/b; System.out.println(c); //Vad skrivs ut? System.out.println(7/4); //Vad skrivs ut? Modulusoperatorn % (resten vid division) int x = 7, y = 3, z = x%y; System.out.println(z); //Vad skrivs ut? System.out.println(10%5); //Vad skrivs ut?

Fö2 - Intro till Java och intro till OOP 15 Numeriska datatyper, några viktiga kom-i-håg ++ och - - operatorerna x++; System.out.println(x); //Vad skrivs ut? Ändra en variabels värde OBS! Tilldelning int tal = 3; tal = tal + 2; //”Det nya värdet = det gamla + 2” tal += 2; //samma som ovan tal = tal * 5; tal *= 5; //samma som ovan

Fö2 - Intro till Java och intro till OOP 16 Typomvandling Heltal  Flyttal per auto, eller med (double) (…) Flyttal  Heltal –(int) (…) ger trunkering –(int) (… + 0.5) ger avrundning av tal>0 –Math.round(...) ger avrundning Char  Heltal: (int) (…) Heltal  Char: (char) (…) Flyttal  String: Double.toString(…) String  Flyttal: Double.parseDouble(…) String  Heltal finns motsvarande…

Fö2 - Intro till Java och intro till OOP 17 Tecken En char -variabel lagrar ett enstaka tecken i två byte (speciellt för Java). Skrivs med apostrofer, t ex 'p'. Tecknet kodas först till ett heltal innan det lagras i minnet. T ex tecknet 'T' har den (decimala) koden 84, vilket binärt är Koden är unicode, se Koden för de 256 första tecknen överensstämmer med ASCII- koden ASCII Code - The extended ASCII table ASCII Code - The extended ASCII table Version 6.0: mer än tecken från världens alfabet, symboler,... System.out.println(“\u0041”); //A Ethiopic Extended-A

Fö2 - Intro till Java och intro till OOP 18 Klasserna String och Math En String-variabel är inte inte en primitiv variabel String s = "Java"; String t = s + "programmering"; Jämför : char tkn = 'a'; En strängvariabel är en sk. Objektvariabel. En sådan variabel refererar till många värden Math-klassen, anropa med klassens namn: double a1=Math.sin(x), a2=Math.sqrt(x); double a3=Math.pow(bas,exp), a4=Math.random();

Fö2 - Intro till Java och intro till OOP 19 Varför (1) deklarera och (2) ha många datatyper? 1. ”Säkerhet”: Bara använda variabler som är deklarerade Ex. stavfel: x1=4; x1=xl+8; 2. Värden man vill räkna med är av olika sorter –Bra då att ha variabler som matchar dessa. –Minnesutrymmet anpassas till värdena. –Beräkningarna anpassas till datatypen. –Snabbare beräkningar. –”Ordning och reda” –Men: flyttal kan inte alltid representeras exakt

Fö2 - Intro till Java och intro till OOP 20 Utskrifter i Java I terminalfönstret (I DrJava’s Interaction Pane): double O = bas*2 + höjd*2; System.out.println(“Omkrets: “ + O + ” m”); I ett Popup-fönster: import javax.swing.*; String namn = “Anna”; JOptionPane.showMessageDialog(null,"Jag heter "+namn);

Fö2 - Intro till Java och intro till OOP 21 Inläsning i Java I terminalfönstret (I DrJava’s Interaction Pane): import java.util.Scanner; Scanner scan = new Scanner(System.in); int x = scan.nextInt(); double y = scan.nextDouble(); String s1 = scan.nextLine(); // hel rad String s2 = scan.next(); // ett ord I ett Popup-fönster: import javax.swing.*; String s; s = JOptionPane.showInputDialog("x?"); x = Integer.parseInt(s); Kommande bilder tar vi inte upp på föreläsningen. Till för egna studier. Vi hoppar till bild 34!

Fö2 - Intro till Java och intro till OOP 22 Hur lagras data i datorn? I datorn används koder för att representera all information Koderna består av 1:or och 0:or Någonting är på (1) eller av (0) Binära tal används (binära talsystemet)

Fö2 - Intro till Java och intro till OOP 23 Vad är ett talsystem? Ett talsystem har en bas och siffror (symboler) Ex.decimala systemet har basen 10 och symbolerna 0-9: = 1* * *10 0 = 1* *10 + 3*1

Fö2 - Intro till Java och intro till OOP 24 Binära talsystemet Basen 2 och symbolerna 0, = 1*2³+1*2 2 +0*2 1 +1*2 0 = = Översätt från decimalt till binärt: = = =

Fö2 - Intro till Java och intro till OOP 25 Binära talsystemet… En byte = 8 bit, 0-255, dvs 256 st värden = = = 2 … = 255 Ex. en byte: = 0* * * * * * * *2 0 = 15 10

Fö2 - Intro till Java och intro till OOP 26 Binära talsystemet… Bit : 0 eller 1 Byte: 8 bitar Kilobyte (KB): 10 3 byte Megabyte (MB): 10 6 byte Gigabyte (GB): 10 9 byte Terabyte (TB): byte

Fö2 - Intro till Java och intro till OOP 27 Hexadecimala talsystemet Basen 16 och symbolerna 0-9,A,B,C,D,E,F A=10, B=11, C=12, D=13, E=14, F=15 Ex: 2F 16 = 2* F*16 0 = 2* *16 0 = = Omvandling hexadecimalt  binärt och tvärtom är relativt enkelt (4 binära siffor=en hexadecimal siffra): = = 15* *16 0 = F5 16

Fö2 - Intro till Java och intro till OOP 28 Att lagra tal Tal kan lagras som heltal flyttal

Fö2 - Intro till Java och intro till OOP 29 Heltal Lagras ofta i 4 byte, dvs 32 bit. En bit används för +/- Vänstra biten=0  positivt tal 31 bitar Vänstra biten=1  negativt tal 31 bitar Värdemängden i 4 byte: [ , ], d.v.s. [ , ] Exempel: = och lagras i 4 byte som Teckenbiten: 0  positivt tal

Fö2 - Intro till Java och intro till OOP 30 Text är en sekvens av tecken Exempel, texten: Torsten Består av 7 tecken som kodas enligt ascii- koden (decimalt som): T o r s t e n Vilket kan lagras binärt i 7 byte, eller som i java 7x2 byte Text (String)

Fö2 - Intro till Java och intro till OOP 31 Flyttal Decimaltal 10-potenser Ett flyttal = 0.mantissa * 2 exponent Lagras som två delar: Mantissa (siffrorna) och exponent Om 4 byte flyttal: 3 byte mantissa och 1 byte exponent Om 8 byte flyttal: 6 byte mantissa och 2 byte exponent

Fö2 - Intro till Java och intro till OOP 32 Flyttal… Ex: 2,5 10 = 2*(10) 0 + 5*(10 )-1 = 0.25*(10) 1 Men tal lagras binärt, gör om till binärt: 2,5 10 = 1*(2) 1 + 0*(2) 0 + 1*(2) -1 = (obs binärpkt) = 0.101*2 2 Mantissan är 101 Exponenten är 2 = 10 binärt. Om talet lagras i 4 byte: Mantissa (3 byte) = 101 Exponent (1 byte) = 10

Fö2 - Intro till Java och intro till OOP 33 Flyttal… Problem med flyttal Begränsad mängd siffror: 4 byte: 7 siffrors nogrannhet 8 byte: 15 siffrors nogrannhet Kan vanligen ej lagras exakt: Ex.flyttalet 2,6 = 2,6 10 = 1*(2) 1 + 0*(2) 0 + 1*(2) -1 + … =1*2+0*1+1*0.5+0*0.25+0* *

Fö2 - Intro till Java och intro till OOP 34 Att hitta klasser, egenskaper (instans- variabler) och metoder. Ett exempel. Det kommer bilar till en vägkorsning. Vid korsningen finns trafikljus som kan visa olika färg och kan ha svängpil. Trafikljuset kan slå om, det kan gå sönder. Bilarna har hastighet, riktning och position. Bilarna kan bromsa, gasa eller få motorstopp.. OOP

Fö2 - Intro till Java och intro till OOP 35 Att hitta klasser, egenskaper (instans- variabler) och metoder. Ett exempel. Det kommer bilar till en vägkorsning. Vid korsningen finns trafikljus som kan visa olika färg och kan ha svängpil. Trafikljuset kan slå om, det kan gå sönder. Bilarna har hastighet, riktning och position. Bilarna kan bromsa, gasa eller få motorstopp. OOP

Fö2 - Intro till Java och intro till OOP 36 Övning OOP Hur många objekt finns i bild 1, och hur många olika typer av objekt, dvs hur många klasser, finns representerade i bild 1? Ange lämpligt namn på respektive klass. Vilka egenskaper kan klasserna beskrivas med (bild1)? Ange vilka metoder som kan vara lämpliga i respektive klass för att kunna rita bilderna 2 och 3, utgående från bild 1. Föreslå namn på metoderna. Bild 1Bild 2Bild 3

Fö2 - Intro till Java och intro till OOP 37 Intro till ObjektOrienterad Programmering (OOP) Klass vs objekt En klass beskriver objektens egenskaper och metoder, mha ett språk, t ex Java, och sparat i en textfil, t ex Circle.java Klassen är en mall. Många objekt kan skapas från mallen. Ett objekt har egenskaper (inre tillstånd/eget minne) Ex Cirkel c har position och färg Kan kommunicera med (skicka meddelanden till) objekten via metoder för ändra objekten eller få veta deras egenskaper. Ex move(int step), changeColor(Color co) När ett program körs är objekten aktiva genom sina metoder. Ex c.move(50); //cirkel c rör sig