55
Grundläggande programmering

Grundläggande programmering

  • Upload
    jadon

  • View
    56

  • Download
    3

Embed Size (px)

DESCRIPTION

Grundläggande programmering. Problem. Problem1 : Omvandla sekunder till timmar, minuter och sekunder Problem 2: Beräkna fakulteter (10! = 10*9*8.. ) Problem 3: Hitta det största talet. För att lösa problem 1. Vad är en variabel? Olika variabeltyper Heltalsoperationer. Variabler. - PowerPoint PPT Presentation

Citation preview

Page 1: Grundläggande programmering

Grundläggande programmering

Page 2: Grundläggande programmering

Problem

• Problem1 : Omvandla sekunder till timmar, minuter och sekunder

• Problem 2: Beräkna fakulteter (10! = 10*9*8.. )

• Problem 3: Hitta det största talet

Page 3: Grundläggande programmering

För att lösa problem 1

• Vad är en variabel?

• Olika variabeltyper

• Heltalsoperationer

Page 4: Grundläggande programmering

Variabler

Int x = 5;

Variabelns typ.Int : heltal

Variabelns namn

Variabelns värde

Vi säger att variabeln x som är av typen heltal har tilldelats värdet 5

Talar om för kompilatorn att

instruktionen slutar här

Page 5: Grundläggande programmering

Variabeltyper

Vi tar upp tre stycken olika typer:

• Heltal

• Flyttal

• Booleans

Page 6: Grundläggande programmering

Variabelnamn

• Varje variabel måste ha ett (unikt) namn

• Namnet måste börja med en bokstav

• Namnet får endast innehålla bokstäver ,siffror och _

• Å,Ä,Ö bör undvikas

• Bra namn beskriver variabeln

Page 7: Grundläggande programmering

Variabelns värde

• Variabelns värde beror av dess typ

Exempel:

Int x = 5.2;

EJ kompatibelt , 5.2 är inget heltal

Int x = 5;

Kompatibelt, x har tilldelats värdet 5

Page 8: Grundläggande programmering

Variabelns värde

Ett till exempel:

double x = 5;

Kompatibelt , x har tilldelats värdet 5.

Talet 5 kan ses som både ett heltal och ett flyttal. Men vi måste vara försiktiga! Mer strax.

Page 9: Grundläggande programmering

Räkneoperationer för heltal

• Det finns 5 stycken olika:

• +

• -

• *

• /

• %

Page 10: Grundläggande programmering

Räkneoperationer för heltal

• Exempel på addition:

Int x = 5;

Hur skriver vi för att x ska ha tilldelats värdet 7 (vi måste addera till 2)?

Så här? x + 2;

NEJ

För att x ska ha tilldelats värdet 7. måste vi använda tilldelningstecknet =

Page 11: Grundläggande programmering

Räkneoperationer för heltal

• Fortsättning på exempelSå här? x = 2;NästanNu tilldelade vi x värdet 2. Men hur gör vi då?x = x + 2;Rätt Vi hämtar x sedan tidigare och lägger till 2 och

sparar resultatet i x.

Page 12: Grundläggande programmering

Räkneoperationer för heltal

• Slutsats?Här skiljer sig matematik och programmering!Från föregående exempelx = x + 2;Om vi läser det som en ekvation får vi att0 = 2 !

Tilldelningstecknet är inte samma sak som matematikens likhetstecken

Page 13: Grundläggande programmering

Räkneoperationer för heltal

• Testa din förståelse!Int x = 4;Int y = 3;x = y;y = y + x;Vad blev x?x = 3Vad blev y?y = 6

Page 14: Grundläggande programmering

Räkneoperationer för heltal Division

• Exempel

Int x = 7/2;

Vad blir det?

1. 3.5

2. 3

3. Det går inte därför 7/2 är inget heltal

Page 15: Grundläggande programmering

Räkneoperationer för heltal Division

• Rättsvar : 3

1. 3.5 är inget heltal.

2. Dividerar vi heltal med heltal sparas bara heltalsdelen

3. Divisionen retunerar ett heltal

Page 16: Grundläggande programmering

Räkneoperationer för heltalModulo %

• Modulo ger resten vid heltalsdivision

• Exempel:

x = 8%4;

Vad blev x?

x = 0;

Ett till exempel:

x = 4%8;

Page 17: Grundläggande programmering

Problem 1

• Vi kan nu tillräckligt med programmering för att lösa första problemet!

• Vi har 36540 s , vi vill skriva det på formen: hh : min : sek

Page 18: Grundläggande programmering

Lösningsförslag till Problem 1

int allaSekunder = 36540;

int timmar = allaSekunder/3600;

int minuter = (allaSekunder%3600)/60;

int sekunder = (allaSekunder%3600)%60;

Page 19: Grundläggande programmering

Räkneoperationer för flyttalDivision

• Exempel:

double x = 1/3;

Vilket värde har x tilldelats?

0

Divisionsoperatorn tror att vi är intresserade av heltalsdivsion.

Page 20: Grundläggande programmering

Räkneoperationer för flyttalDivision

• Hur gör vi en flyttalsdivision?

double x = 1.0/3;

0.33333333….

• Eller:

double x1 = 1;

double x2 = x1/3;

x2 = 0.33333333….

Page 21: Grundläggande programmering

Flyttal

• 1/3 = 0.33333… fortsätter med 3:or i all oändlighet.

• Innehåller vår variabel ett oändligt antal 3:or?

Nej! För att lagra ett oändligt antal 3:or behöver vi ett oändligt stort minne att lagra de i.

Page 22: Grundläggande programmering

Villkorssatser

• Om vi vill utföra instruktioner efter att ett villkor är uppfyllt använder vi oss av en villkorssats.

• Villkoren bygger på jämförelser mellan två värden

Page 23: Grundläggande programmering

Villkorssatser

• Exempel: Vi vill ta ut pengar från banken men bara om vi har tillräckligt på kontot

• Låt uttag vara beloppet vi vill ta ut

• Låt saldo vara hur mycket vi har på kontot

Page 24: Grundläggande programmering

Villkorssatser

• Int uttag = 100;

• Int saldo = 2000;

• If(uttag < saldo){

• //Ta ut pengar

• }

Page 25: Grundläggande programmering

Villkorssatser

• Uttag < saldo : Jämförelsen som sker

• Allting mellan { } är ett block. Här lägger vi in vad som ska ske om villkoret är uppfyllt

Page 26: Grundläggande programmering

Villkorssatser

• Hur gör vi om vi vill tillåta uttag som även är lika stora som saldot?

If(uttag <= saldo){

//Ta ut pengar

}

{ } , är onödigt om vi bara har en rad kod

Page 27: Grundläggande programmering

Jämförelser

a >b a är större än b

a < b a är mindre än b

a >= b a är större än eller samma som b

a <= b a är mindre än eller samma som b

a == b a är samma som b

a != b a är inte samma som b

Page 28: Grundläggande programmering

Jämförelser

Ett väldigt vanligt programmeringsmisstag:

If ( a = b){

a = 2;

}

Ser du något konstigt?

Page 29: Grundläggande programmering

Jämförelser

• = Ett likhetstecken betyder tilldelning, alltså var satsen alltid sann!

• == Två likhetstecken används för att se om två variabler har samma värde

Page 30: Grundläggande programmering

Jämförelser

Ett till vanligt misstag:

If (a == b);

a = 2;Här avslutas villkorssatsen

Det här ligger utanför villkorssatsen och sker oavsett om a == b

Page 31: Grundläggande programmering

Flera jämförelser

• Vi kan ha flera villkor samtidigt.

• Exempel : Barn över sju år får gå på bio, och barn under sju år får gå på bio med vuxen

• Hur kan en villkorssats se ut?

Page 32: Grundläggande programmering

Flera jämförelser

• If(barnAlder > 7 || barn_har_vuxen == true)

• //Får gå på bio

Page 33: Grundläggande programmering

Flera jämförelser

• Vi kan kräva att två villkor, eller flera villkor ska vara uppfyllda

• Om maten är god och dyr så äter jag den

• Hur kan en villkorssats se ut?

Page 34: Grundläggande programmering

Flera jämförelser

If(isGod == true && isDyr == true)

//ät

Page 35: Grundläggande programmering

Else if, else

Om vi vill göra något när if-satsen inte är uppfylld. Kan vi använda else if, eller else

Else if Påbörjar en ny if-sats om föregående sats inte var sann

Else inträffar när ingen if-sats är uppfylld.

Page 36: Grundläggande programmering

Else if, else

• Exempel:If ( a == b){//a och b är samma}else if( a > b){//a är större än b}else{//Inget av ovanstående (a < b)}

Page 37: Grundläggande programmering

Nästlade if-satser

• Vi kan ha flera if-satser i varandra

If( …. ){

If( ….){

}

}

• Tabba alltid koden!

Page 38: Grundläggande programmering

Upprepningar

• Upprepar ett block kod så länge ett villkor är uppfyllt

• Olika sätt att upprepa:

• for

• while

• do while

Page 39: Grundläggande programmering

For

• for(initiera variabel; villkor;stegning){

//kod som ska upprepas

}

Exempel: vi vill beräkna summan 1+2+3+4+5+6+7+8+9+10

Page 40: Grundläggande programmering

For

int summa = 0;for(int i = 1; i <= 10; i++){summa += i;}

i++;? samma som: i = i +1;summa += i; ? samma som: summa =

summa + i;

Page 41: Grundläggande programmering

While

• Satshuvudet består endast av ett villkor

while (villkor){

//gör det här så länge villkoret är uppfyllt

//Se till så att variablerna i villkoret ändras

}

• While används när vi vill ha större kontroll över stegningen.

Page 42: Grundläggande programmering

Problem 2

• Beräkna fakulteter

• 10! = 10*9*8*7*6*5*4*3*2*1

• 0! = 1

• Vi vill kunna beräkna en godtycklig fakultet

Page 43: Grundläggande programmering

Lösningsförslag till Problem 2

int fakultet = 1;

for(int i = 0; i < 0; i++){

fakultet *= i;

}

Page 44: Grundläggande programmering

Fältvariabler

int[] a = new int[10];

En fältvariabel av typen heltal

Reservera plats för 10st värden

Page 45: Grundläggande programmering

Tilldelning av värden i fältvariabler

• För tal tilldelas värdet noll om inget annat har angivits

• Vi tilldelar värden genom att tala om vid vilket index värdet ska lagras

• Index börjar på 0

a[0] =3;Index

Page 46: Grundläggande programmering

Tilldelning av värden i fältvariabler

Ett exempel:

int[] a = new int[10];• skapar en ny

fältvariabel med 10 element, alla får värdet 0

a[0] =2;

a[9] = 7;

0 0 0 0 0 0 0 0 0 0

2 0 0 0 0 0 0 0 0 7

Page 47: Grundläggande programmering

Problem 3

• Hitta det största talet i mängden:

{2,9,8,11,6}

Page 48: Grundläggande programmering

Lösningsförslag till problem 3

int[] a = new int[5];a[0] = 2;a[1] = 9;a[2] = 8;a[3] = 11;a[4] = 6;int max = a[0];for(int i=1;i<5;i++){

if(a[i]>max){max = a[i]; }

}

Page 49: Grundläggande programmering

Metoder

• Metoder kan ses som små mindre program designade för att lösa en specifik uppgift

Page 50: Grundläggande programmering

Metoder

• Exempel:

En metod talar om Dagens datum

En annan metod ger dig Pi (3.1415..)

Page 51: Grundläggande programmering

Metoder

Kan vi göra egna metoder?

JA!

Page 52: Grundläggande programmering

Metoder

• Ex.

Vi konstruerar en metod som ger oss arean av en cirkel.

Men först måste vi förstå hur en metod använder sig av in- och utparametrar

Page 53: Grundläggande programmering

Metoder

• inparametrar (frivilligt): variabler metoden kan använda sig av från ”utsidan”

• Utparametrar (frivilligt): det metoden returnerar när den är klar

• En metod kan bara använda sig av variabler definierade i sig själv, sina in-parametrar och andra metoder.

• *med frivilligt menas att det är tillåtet för metoder att vara utan inparametrar och eller även utparametrar.

Page 54: Grundläggande programmering

Metoder

public double cirkelArea(int radie){return 3.141*radie*radie;

}

Returtyp

Namn

inparameter

utparameter

Page 55: Grundläggande programmering

Metoder

• Hur använder vi areametoden vi just gjorde?

double r = 2;

double area = cirkelArea( r );