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