Föreläsning 2
•
•
•
•
•
•
Algoritm
Primitiva datatyper
Variabler och konstanter
Tilldelning
Utskrift och inläsning
Operatorer
Javaprogram
• Det finns tre typer av javaprogram:
– Textbaserade
Skriver och läser från terminalfönstret
– Program med grafiskt gränssnitt
Använder menyer och knappar för att
kommunicera med användaren
– Appletprogram
Läggs in på en webbsida – kan köras av alla
med tillgång till www
Hur skriver man program?
• Rita upp hur det ska se ut på skärmen. Skilj
mellan programmets utskrifter och
användarens inmatning.
• Beskriv i ord vad som ska göras (algoritm).
• Tänk efter vilka variabler som behövs.
• Skriv programmet på papper och läs igenom.
• När du skriver in på datorn – kopiera gärna
ditt första program men glöm inte att byta
namn efter class!
Algoritm
•
•
•
En algoritm är ett antal instruktioner för hur man
löser ett problem
Det är viktigt att hålla reda på i vilken ordning
instruktionerna ska utföras
Algoritm för att skriva ett javaprogram:
1. Hitta på en algoritm.
2. Formulera algoritmen i Java.
3. Provkör!
4. Rätta felen.
5. Upprepa punkt 3 och 4 tills programmet
fungerar som du tänkt.
Variabler
• Deklarationerna reserverar minnesutrymme
där värden kan lagras
char svar;
• Skilj på variabelns namn och dess värde:
svar ’J’
• En variabels värde kan ändras genom
tilldelning eller inläsning
• Inläsning ger användaren möjlighet att ge
variabeln ett nytt värde
Binära tal
• I datorns minne lagras
allt binärt, dvs i bas 2
• En binär siffra (0 eller 1)
kallas en bit
Bas 10
0
1
2
3
4
5
6
7
8
Bas 2
0
1
10
11
100
101
110
111
1000
Primitiva datatyper
• Varje värde som lagras i minnet är av en viss
datatyp
• Java har åtta fördefinierade typer som kallas
primitiva datatyper:
byte
float
short
int
long
double
boolean
char
Heltal
• Det finns fyra olika heltalstyper:
Namn Storlek
Min-värde
Max-värde
byte
short
int
long
-128
-32,768
-2,147,483,648
< -9 x 1018
127
32,767
2,147,483,647
> 9 x 1018
8 bitar
16 bitar
32 bitar
64 bitar
Flyttal
• Det finns två flyttalstyper:
Min-värde
Max-värde
float
32 bitar -3.4 x 1038
double 64 bitar -1.7 x 10308
3.4 x 1038
1.7 x 10308
Namn Storlek
Tecken
• I en variabel av typen char kan ett tecken
lagras
• Java använder teckenkodningssystemet
Unicode som lagrar tecken i 16 bitar
• Tecken från många olika språk finns med,
däribland å, ä och ö. Se www.unicode.org
• Teckenkonstanter omges av apostrofer, t ex
’a’
’&’
’\n’ (retur)
’\’’ (apostrof)
(på PC skrivs retur med ’\r’)
Boolean
• En boolesk variabel kan endast anta värdena
true och false
• Exempel:
boolean parkering = false;
• Booleska variabler används ofta i villkor
Omslagsklasser
(Wrapper classes)
• För varje primitiv datatyp finns en
motsvarande klass:
Datatyp
int
double
char
boolean
Klass
Integer
Double
Character
Boolean
• Dessa klasser innehåller användbara metoder
t ex för att omvandla från strängar till tal
Variabler och konstanter
• Variabler kan tilldelas ett startvärde i
deklarationen:
double längd = 0.84;
• Variabelns värde kan ändras senare i
programmet.
• Lägger man till ordet final får man en
konstant, vars värde inte kan ändras:
final double LÄNGD = 1.78;
Tilldelning
• En variabel kan ges ett nytt värde genom
int
tilldelning:
x = y + 8;
x
int
y
• I tilldelningssatsens vänsterled står en
variabel
• Högerledet kan vara ett värde, en variabel
eller ett uttryck
Utskrift
Man kan skriva text på skärmen med
System.out.println(”Hej!”);
Användaren kan få se värdet av en variabel med
int ålder = 21;
System.out.println(”Ålder: ” + ålder);
Inläsning
Användaren kan ge en variabel ett nytt värde om
programmet läser in från tangentbordet:
1 Se till att eventuella fel skickas vidare
public static void main (String[] args)
throws IOException {
2 Tala om varifrån inläsningen ska ske
BufferedReader stdin = new BufferedReader
(new InputStreamReader (System.in));
3 Läs in raden
raden = stdin.readLine();
Inläsning av tal
• Metoden readLine() läser in en sträng. Vid behov kan
man omvandla strängen till ett tal
heltal = Integer.parseInt(rad);
• Inläsning och omvandling kan göras i ett steg:
heltal = Integer.parseInt(stdin.readLine());
• Och för flyttal:
flyttal = Double.parseDouble(stdin.readLine());
Matematiska operatorer
+
*
/
/
%
2.52 + 19 blir 21.52
4.18 - 0.02 blir 4.16
3.5 * 2 blir 7.0
19 / 4.0 blir 4.75
19 / 4 blir 4
19 % 4 blir 3
% ger resten vid heltalsdivision