• No results found

Lektion 2 - Inläsning, datatyper och selektion

N/A
N/A
Protected

Academic year: 2021

Share "Lektion 2 - Inläsning, datatyper och selektion"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

Lektion 2

Inläsning

Olika datatyper Selektion

(2)

Repetition

Ex. Skriv ett program som skapar (definierar och skapar) två heltalsvariabler, och som

därefter skriver ut produkten av dem. Utskriften kan t ex se ut så här:

(3)

Inläsning

I JavaJavisst+ används klassen Scanner till att läsa in data från

tangentbordet. (Måste importera klasspaket från Javas klassbibliotek där klassen Scanner finns (import java.util.*;)

Skriv följande i början av programmet (main-metoden):

Scanner sc = new Scanner(System.in);

Innebär att ett Scanner-objekt, sc, skapas som kommer att kunna läsa in data till programmet som skrivits från tangentbordet.

För att läsa in ett heltal till en heltalsvariabel:

(4)

Exempel

import java.util.*;

public class Summera2 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.print("Skriv in ett heltal: ");

int x = sc.nextInt();

System.out.println("Skriv in ett heltal till: ");

int y = sc.nextInt();

int s = x + y;

System.out.println("Summan av talen är "+s); }

(5)

Ändra variabelvärde

int a = 4; a = a + 4;

Tar det ”gamla” värdet och ökar detta med 4

int b = a+2; b = b*b; a 4 8 b 10010

(6)

Datatypen

double

Om man vill lagra decimaltal (flyttal): double d = 12;

Måste hålla reda på vilken datatyp som man använder – det blir kompileringsfel om man försöker lägga in ett decimaltal i en int.

d 12.0

Decimalpunkt! OBS! Ej komma!

(7)

int vs double

Skillnad:

double (kan lagra väldigt stora och väldigt små tal):

OBS! Med femton decimalers noggrannhet

int

-2 147 483 648 till 2 147 483 647

(8)

int vs double

Division, double gör en ”vanlig” division, int gör en heltalsdivision

int a = 5; int b = 3;

int c = a / b;

Resten fås genom att använda % (kallas modulus)

c = a % b;

a 5

b 3

(9)

Andra datatyper

Vill man lagra ett tecken t ex 4, h, J, * etc använder man datatypen char

char c = ’f’;

Varje tecken lagras i form av ett heltal enligt en kod som kallas Unicode.

(10)

Andra datatyper

boolean: enklaste datatypen, kan bara vara

två värden, true eller false

boolean happy = true;

Används i s.k. villkorssatser som vi kommer att gå igenom inom kort.

(11)

Klassen

String

String name = ”Kenne”;

Definierar en sträng, name, och ger den ”värdet” Kenne. char l = name.charAt(0);

Returnerar tecknet på position 0. int längd = name.length(); Returnerar längden på strängen Inläsning från tangentbordet: String n = sc.next();

name 'K' 'e' 'n' 'n' 'e'

name[0] name[1] name[2] name[3] name[4]

l

’K’

längd

5

n

name[0] name[1] name[n-2] name[n-1]

(12)

Programmeringskod

import java.util.*;

public class Strangar {

public static void main(String [] arg) {

Scanner sc = new Scanner(System.in); System.out.print(”Skriv in ditt förnamn: ”);

String name = sc.next();

System.out.print(”Ditt namn börjar på “+name.charAt(0)+” och har ”+name.length()+” bokstäver”);

} }

(13)

If-else - satser

Används om någonting ska utföras en gång då någonting är uppfyllt, eller det finns flera möjliga val.

Fråga hur mycket klockan är. Är klockan mer än 22 säg till användaren att gå och lägga sig, annars säg till användaren att läsa en bok.

(14)

If-else - satser Pseudokod (tankekod) Om tiden är större än 22 ”Gå och lägg dig” Annars ”Läs en bok”

tid = ”inläst värde” Om (tid > 22)

Skriv ut ”Gå och lägg dig!” Annars

Skriv ut ”Läs en bok”

Påståendet falskt!

(15)

Programmeringskod

import java.util.*;

public class GoToBed {

public static void main(String [] arg) {

Scanner sc = new Scanner(System.in); System.out.print(”Vad är klockan? ”); int time = sc.nextInt();

if(time > 22)

System.out.println(”Gå och lägg dig!”);

else

System.out.println(”Läs en bok!”); }

(16)

If-else - satser

(17)

If-else - satser Pseudokod (tankekod) Om jag läser på betyg = MVG Annars betyg = IG

plugg = ”inläst värde” Om (plugg == sant)

betyg = MVG Annars

(18)

Programmeringsexempel

import java.util.*; public class Betyg {

public static void main(String [] arg) { Scanner sc = new Scanner(System.in); String betyg;

System.out.print(”Pluggar du? (y/n)”); char plugg = sc.next().charAt(0);

if(plugg == ’y’) betyg = ”MVG”; else betyg = ”IG”; } }

Läser in ett tecken!

OBS! två = = !!!!

(19)

Uppgifter

• Gör (om du inte har gjort det) i Kapitel 1 i JavaJavisst+:

– övning ”Alder” på sidan 12. – övning ”Alder2” på sidan 13. – övning ”Feber” på sidan 13. – övning ”Chansen” på sidan 14.

– övning ”Efternamnet” på sidan 15.

(20)

Relativa operatorer

Relations

operator Symbol Exempel Värde

lika med == 1 == 4 false

skilt från != 1 != 4 true

större än > 1 > 4 false

större än eller

lika med >= 1>=4 false

mindre än < 1 < 4 true

mindre än eller

(21)

Logiska operatorer

Logisk operator

Symbol Exempel Värde

OCH && uttryck_1 && uttryck_2 true om båda är sanna, annars false

ELLER || uttryck_1 || uttryck_2 true om minst ett är sant, annars false

ICKE ! ! uttryck false om uttrycket är

(22)

Skriv ett program som avgör hur stort portot blir för ett (inte alltför tungt) brev när man anger dess vikt. Portotabellen nedan gäller.

Vikt (gram) Porto (kr)

0 – 20 5

20 – 100 10

(23)

System.out.print(”Vikt (i hela gram): ”); int weight = sc.nextInt();

int postage;

if(weight > 0 && weight <= 20)

postage = 5;

else if(weight > 20 && weight < =100)

postage = 10; else if(weight >100) postage = 20; else System.out.println(”Felinmatning!”); if(weight > 0)

System.out.println(”Portot kostar ”+postage+” kr.”);

Vikt (gram) Porto (kr)

0 – 20 5

21 – 100 10

101 – 20

Vikt mellan 0 och till 20

Vikt mellan 20 och till 100 Vikt större än 100

(24)

Övningsuppgifter

• Gör färdigt övningarna 1 – 4 på sidan 24 i kapitel 1 i JavaJavisst+

References

Related documents

[r]

[r]

I studien ställs även ekonomisk frihet i korrelation till ekonomisk tillväxt för att undersöka om ett samband finns mellan variablerna.. Slutsatsen visade att

Simulated results of aerosol optical properties, such as aerosol optical depth, backscattering coefficients and the Ångström expo- nent, as well as radiative fluxes are computed

As it can be seen, the potential for biogas production within the Swedish pulp and paper industry is of relevance in several aspects, and this study covers

[r]

[r]

I nuvarande torksystem redovisas resultat för effekt tork, beräkningsosäkerhet energibalanser, effektförluster och fjärrvärmeproduktion vid torkning av torv respektive trä..