Föreläsningsmaterial (Syntax och variabler) Scenario Ett företag inom gruvindustrin som tillverkar järnpellets upplever en ojämnhet i produktionskvaliteten. Problemet yttrar sig genom att pelletskulorna skiljer sig åt avseende vikt. En kula ska väga 250 gram, men de flesta väger lite mer eller mindre än den avsedda vikten. Som ett första steg mot att komma tillrätta med problemet vill företaget använda sig av ett datorprogram som kan räkna ut kulornas medelvikt. Primitiva datatyper Kategori Typ Utrymme Nedre gräns Övre gräns Kategori Typ Utrymme Nedre gräns Övre gräns Heltal byte 8-128 127 short 16-32768 32767 int 32-2147483648 2147483647 long 64-9223372036854775808 9223372036854775807 Reella tal Tecken Logiska tillstånd float 32 (+/-)1.4x10-45 (+/-)3.4x10 38 double 64 (+/-) 4.9x10-324 (+/-)1.8x10 308 char 16 boolean (true eller false) Pellets.java
Detta program beräknar medelvikten för pelletskulor, samt skriver ut resultatet. class Pellets // Därefter tilldelas variablerna värden pellets_1 = 245; pellets_2 = 258; pellets_3 = 257; pellets_4 = 250; pellets_5 = 251; antal = 5; // Summan och medelvärdet beräknas summa = pellets_1 + pellets_2 + pellets_3 + pellets_4 + pellets_5; medelvarde = (float)summa / antal; // Medelvärdet skrivs därefter ut System.out.println("Medelvärde för pelletsvikt: " + medelvarde); Pellets_1.java 1. Inledningsvis utgörs programmet av ett tomt 'skelett' class Pellets_1 Pellets_2.java
1. Inledningsvis utgörs programmet av ett tomt 'skelett' 2. I detta skede har deklarationer av variabler lagts till i programmet. class Pellets_2 Pellets_3.java 1. Inledningsvis utgörs programmet av ett tomt 'skelett' 2. I detta skede har deklarationer av variabler lagts till i programmet. 3. I nästa steg tilldelas variablerna värden. class Pellets_3 // Därefter tilldelas variablerna värden pellets_1 = 245; pellets_2 = 258; pellets_3 = 257; pellets_4 = 250; pellets_5 = 251;
antal = 5; Pellets_4.java 1. Inledningsvis utgörs programmet av ett tomt 'skelett' 2. I detta skede har deklarationer av variabler lagts till i programmet. 3. I nästa steg tilldelas variablerna värden. 4. När variablerna tilldelats värden kan vi utföra beräkningarna, dvs summering och division. Därefter skrivs medelvärdet ut på skärmen. class Pellets_4 // Därefter tilldelas variablerna värden pellets_1 = 245; pellets_2 = 258; pellets_3 = 257; pellets_4 = 250; pellets_5 = 251; antal = 5; // Summan och medelvärdet beräknas summa = pellets_1 + pellets_2 + pellets_3 + pellets_4 + pellets_5; medelvarde = (float)summa / antal; // Medelvärdet skrivs därefter ut System.out.println("Medelvärde för pelletsvikt: " + medelvarde); Interaktion_1.java
Detta program skriver ut texten "Hello World!" i en grafisk dialogruta. import javax.swing.joptionpane; class Interaktion_1 JOptionPane.showMessageDialog(null, "Hello World!"); System.exit(0); Interaktion_2.java Detta program visar hur klassen JOptionPane kan användas för att läsa in data som användaren skriver in via tangentbordet. import javax.swing.joptionpane; class Interaktion_2 String namn; namn = JOptionPane.showInputDialog("Skriv in ditt namn"); System.out.println("Du skrev in: " + namn); System.exit(0); Interaktion_3.java Detta program visar hur klassen JOptionPane kan användas för att läsa in data som användaren skriver in via tangentbordet. I exempel läses två heltal in. Summan lagras i en variabel och presenteras sedan för användaren via en dialogruta. I programmet finns två satser med uttrycket Integer.parseInt(indata). Detta används för att omvandla innehållet i en strängvariabel till ett heltal. Motsvarande metoder finns för att omvandla strängar till de primitiva datatyperna float och double (se t ex sid. 67 i kursboken). import javax.swing.joptionpane; class Interaktion_3 String indata; int tal1; int tal2; indata = JOptionPane.showInputDialog("Skriv in det första heltalet"); tal1 = Integer.parseInt(indata); indata = JOptionPane.showInputDialog("Skriv in det andra heltalet"); tal2 = Integer.parseInt(indata); summa = tal1 + tal2; JOptionPane.showMessageDialog(null, "Summan av de två talen är " + summa);
System.exit(0); Övningsuppgifter 1. Gör ett program som (1) representerar två heltal med hjälp av variabler, (2) beräknar de två talens produkt samt (3) skriver ut produkten. En god idé kan vara att utgå från exempelprogrammet Pellets_1.java som endast innehåller ett tomt programskelett. 2. Hur kan ovanstående program göras interaktivt så att användaren ombeds skriva in två tal för att sedan få produkten presenterad i en dialogruta? 3. I sin nuvarande form tilldelas värden till pelletsvariablerna i programkoden. Antag att vi vill att användaren istället ska kunna mata in de fem vikterna när programmet exekveras. Hur kan programmet förändras för att uppnå detta?