Processprogrammering

INTRODUKTION TILL
PROGRAMMERING
Föreläsning 2 (13.11.2007)
INNEHÅLL:
-Kommentarer i program
-variabler och datatyper
-Tilldelningssatser
-Aritmetiska uttryck
-Utmatning av variabelvärden
-Inläsning av data från tangentbordet
Jonny Karlsson 13.11.2007
1
Kommentarer i program
Det är vanligt att man som programmerare sätter kommentarer i källkoden.
Kommentarer underlättar programmeraren själv och andra att förstå källkoden.
Kommentarer kan markeras på två olika sätt:
• om man vill kommentera endast en rad, brukar man göra så här:
//detta är en kommentar
• om man vill kommentera flera rader efter varandra, kan man göra så här:
/* detta är inte bara en kommentar
utan flera kommentarer
efter varandra på flere rader */
Allt som kommer efter tecknen // till radens slut tolkas av kompilatorn som en kommentar
och tas inte i beaktande vid kompileringen.
Motsvarandevis, allt som kommer mellan tecknet /* och tecknet */ tolkas av kompilatorn
som en kommentar och tas inte i beaktande vid kompileringen.
Jonny Karlsson 13.11.2007
2
Kommentarer i program
Exempel:
public class helloworld
//deklaration av klassen helloworld
{
public static void main(String[] args)
//här deklareras huvudmetoden main
{
System.out.println(”hello world”);
System.out.println(”\nhello again world”);
/* Programmet skriver ut först ”helloworld” och sedan
”hello again world” efter en tom rad */
}
}
Jonny Karlsson 13.11.2007
3
Variabler och datatyper
Vad är en variabel?
Ett utrymme i datorns arbetsminne som anänvds av ett program under programmets
exekvering.
Man använder en variabel för att tillfälligt lagra data
Det data som lagras i en variabel kallas för variabelns värde.
Varje variabel som används i Java måste ha ett unikt namn.
Jonny Karlsson 13.11.2007
4
Variabler och datatyper
Varje variabel i Java bör vara av en viss datatyp
Datatyper som finns fördefinierade i programmeringsspråket kallas för primitiva datatyper
Namn
Utrymme i minnet
Värden
byte
8 bitar (1 byte)
-27 till + 27 – 1
short
16 bitar (2 byte)
-215 till + 215 – 1
int
32 bitar (4 byte)
-231 till + 231 – 1
long
64 bitar (8 byte)
-263 till + 263 – 1
char
16 bitar (2 byte)
Tecken i Unicodcode tabellerna
boolean
8 bitar (1 byte)
true eller false (sant eller falskt)
float
32 bitar (4 byte)
-3,40292347*1038 till +3,40292347*1038
double
64 bitar (8 byte)
-1,79769313486231570*10308 till
+1,79769313486231570*10308
Jonny Karlsson 13.11.2007
5
Variabler och datatyper
Variabeldeklarationer
För att kunna använda variabler i Java-koden måste man först reservera en plats i
arbetsminnet och ge variabeln ett unikt namn. Detta kallas för variabeldeklaration.
En variabeldeklaration görs på följande sätt:
Datatyp variabelnamn;
Exempel1 – deklaration av ett heltal:
int heltal;
Exempel2 – deklaration av ett flyttal
float flyttal;
När man deklarerar t.ex. ett heltal så betyder det i praktiken att man reserveran en plats i
arbetsminnet av storleken 4 byte dit man senare under programmets körning kan lagra
heltalsvärden. Den reserverade platsen i minnet är åtkomlig via variabelnamnet i
programkoden.
Jonny Karlsson 13.11.2007
6
Variabler och datatyper
Variabeldeklarationer
En variabel kan deklareras var som helst i huvudmetoden main:
public class testprogram
{
public static void main(String[] args)
{
int tal; //deklarerar en variabel av typen int (heltal)
..
..
System.out.println(”I detta program deklareras variabler”);
..
..
byte minvariabel;
//deklarerar en variabel av typen byte
}
}
Jonny Karlsson 13.11.2007
7
Tilldelningssatser
I en tilldelningssats tilldelar/ger man ett värde åt en variabel. Man kan tilldela en variabel ett
väre först efter att variabeln deklarerats:
float flyttal;
//deklarerar en flyttalsvariabel
flyttal = 5.5;
//tilldelningssats (variabeln flyttal får värdet 5.5)
OBS! Kommatecken i Java anges med ”.” inte ”,”
En tilldelningssats kan också vara kombinerad med en variabeldeklaration:
int heltal = 0;
//deklarerar en flyttalsvariabel och tilldelar variabeln värdet 0
När man första gången i ett program tilldelar en viss variabel ett värde säger man katt
variabeln initialiseras.
char tecken = ’G’;
//deklarerar en char (tecken) variabel och initialiserar den till G.
Jonny Karlsson 13.11.2007
8
Aritmetiska uttryck
Ett aritmetiskt uttryck är ett uttryck som har operander av aritmetisk typ och som ger ett
resultat av aritmetisk typ. Exempel på operander är:
+
addition
subtraktion
*
multiplikation
/
division
Exempel på aritmetiska uttryck:
int heltalA = 2;
//heltalsdeklaration samt initialisering
Int heltalB = 3;
//heltalsdeklaration samt initialisering
heltalA + heltalB
//aritmetiskt uttryck (värdet i heltalA adderas med värdet i heltalB)
Jonny Karlsson 13.11.2007
9
Aritmetiska uttryck
Operatorprioriteten är lika som i matematiken, dvs. * och / har högre prioritet än + och -
Exempel:
heltalA * heltalB + heltalC;
/* multiplicerar heltalA med heltalB och adderar resultatet
med heltalC */
Om man vill höja prioriteten för ett deluttryk kan man använda parenteser:
(helatalA + heltalB) * heltalC; /*Adderar heltalA med heltalB och multiplicerar resultatet
med heltalC */
Jonny Karlsson 13.11.2007
10
Utmatning av variabelvärden
För utmatning av variabelvärden i ett textbaserat Java program kan man använda
metoderna System.out.print() eller System.out.println()
Dessa metoder är exakt lika förutom att println() förorsakar ett radbryte efter sjävla
utskriften medan print() inte gör det.
Metoden println (och print) anropas på följande sätt:
System.out.println(argument);
Som argument kan man ge statisk text, en variabel eller en kombination av båda. Statisk
text och variabler skiljer man åt med hjälp av + operatorn:
”statisk text” + variabel + ”statisk text”
Exempel:
int tal = 2;
System.out.println(tal);
//deklarerar en heltalsvariabel och initialiserar den till 2
//skriver ut innehållet i variabeln tal på bildsärmen
System.out.println(”Pelle är ” + tal + ”år gammal”); //ger utskriften ”Pelle är 2 år gammal”
Jonny Karlsson 13.11.2007
11
Inläsning av data från tangentbordet
Inte lika enkelt som utmatning till bildskärmen. Rentav onödigt krångligt!
Eftersom programmeringen bakom inläsning av data från tangenbordet i textbaserade
Java-program kräver mer kunskap i programmering än denna grunkurs ger, nöjer vi oss
med att förenkla detta en aning.
Vi kommer i kursen att använda oss av förenklade inläsningsmetoder som från början
programmerats av en privatperson och som modifierats en aning av kursläraren!
Klassfilen som innehåller dessa metoder, input.class, kan laddas ner här:
http://people.arcada.fi/~karlssoj/introtillprogr/input.class
För att metoderna i input.class skall kunna anropas måste filen input.class finnas i samma
filkatalog som det java program metoderna anropas ifrån.
Jonny Karlsson 13.11.2007
12
Inläsning av data från tangentbordet
Metoder definierade i input.class:
readString()
readInt()
readFloat()
readDouble()
readChar()
-
läser in en teckensträng
läser in ett heltal (int)
läser in ett flyttal (float)
läser in ett ”stort” flyttal (double)
läser in ett tecken (char)
dessa metoder anropas på följande sätt:
input.readString()
input.readInt()
...
...
dvs. klassnamn, punktnotation och metodnman (mera om detta senare i kursen)
Jonny Karlsson 13.11.2007
13
Inläsning av data från tangentbordet
Användning av metoderna i input.class:
Alla metoder returnerar det data som inmatats från tangentbordet i en viss datatyp.
Exempel:
int tal;
tal = input.readInt();
//deklarerar heltalsvariabeln tal
//läser in data som användaren ger från tangentbordet och
//sparar datat i heltalsvariabeln tal
float tal;
tal = input.readFloat();
//deklarerar flyttalsvariabeln tal
//läser in data som användaren ger från tangentbordet och
//sparar datat i flyttalsvariabeln tal
Jonny Karlsson 13.11.2007
14