Presentation laddar. Vänta.

Presentation laddar. Vänta.

Grundläggande programmering

Liknande presentationer


En presentation över ämnet: "Grundläggande programmering"— Presentationens avskrift:

1 Grundläggande programmering

2 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

3 För att lösa problem 1 Vad är en variabel? Olika variabeltyper
Heltalsoperationer

4 Talar om för kompilatorn att instruktionen slutar här
Variabler Int x = 5; Variabelns värde Variabelns namn Variabelns typ. Int : heltal Talar om för kompilatorn att instruktionen slutar här Vi säger att variabeln x som är av typen heltal har tilldelats värdet 5

5 Variabeltyper Vi tar upp tre stycken olika typer: Heltal Flyttal
Booleans

6 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

7 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

8 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.

9 Räkneoperationer för heltal
Det finns 5 stycken olika: + - * / %

10 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 =

11 Räkneoperationer för heltal
Fortsättning på exempel Så här? x = 2; Nästan Nu 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.

12 Räkneoperationer för heltal
Slutsats? Här skiljer sig matematik och programmering! Från föregående exempel x = x + 2; Om vi läser det som en ekvation får vi att 0 = 2 ! Tilldelningstecknet är inte samma sak som matematikens likhetstecken

13 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 = 3 Vad blev y? y = 6

14 Räkneoperationer för heltal Division
Exempel Int x = 7/2; Vad blir det? 3.5 3 Det går inte därför 7/2 är inget heltal

15 Räkneoperationer för heltal Division
Rättsvar : 3 3.5 är inget heltal. Dividerar vi heltal med heltal sparas bara heltalsdelen Divisionen retunerar ett heltal

16 Räkneoperationer för heltal Modulo %
Modulo ger resten vid heltalsdivision Exempel: x = 8%4; Vad blev x? x = 0; Ett till exempel: x = 4%8;

17 Problem 1 Vi kan nu tillräckligt med programmering för att lösa första problemet! Vi har s , vi vill skriva det på formen: hh : min : sek

18 Lösningsförslag till Problem 1
int allaSekunder = 36540; int timmar = allaSekunder/3600; int minuter = (allaSekunder%3600)/60; int sekunder = (allaSekunder%3600)%60;

19 Räkneoperationer för flyttal Division
Exempel: double x = 1/3; Vilket värde har x tilldelats? Divisionsoperatorn tror att vi är intresserade av heltalsdivsion.

20 Räkneoperationer för flyttal Division
Hur gör vi en flyttalsdivision? double x = 1.0/3; …. Eller: double x1 = 1; double x2 = x1/3; x2 = ….

21 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.

22 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

23 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

24 Villkorssatser Int uttag = 100; Int saldo = 2000;
If(uttag < saldo){ //Ta ut pengar }

25 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

26 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

27 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

28 Jämförelser Ett väldigt vanligt programmeringsmisstag: If ( a = b){
} Ser du något konstigt?

29 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

30 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

31 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?

32 Flera jämförelser If(barnAlder > 7 || barn_har_vuxen == true)
//Får gå på bio

33 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?

34 Flera jämförelser If(isGod == true && isDyr == true) //ät

35 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.

36 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) }

37 Nästlade if-satser Vi kan ha flera if-satser i varandra If( …. ){
} Tabba alltid koden!

38 Upprepningar Upprepar ett block kod så länge ett villkor är uppfyllt
Olika sätt att upprepa: for while do while

39 For for(initiera variabel; villkor;stegning){ //kod som ska upprepas }
Exempel: vi vill beräkna summan

40 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;

41 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.

42 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

43 Lösningsförslag till Problem 2
int fakultet = 1; for(int i = 0; i < 0; i++){ fakultet *= i; }

44 Fältvariabler int[] a = new int[10]; Reservera plats för 10st värden
En fältvariabel av typen heltal

45 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

46 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; 2 7

47 Problem 3 Hitta det största talet i mängden: {2,9,8,11,6}

48 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]; }

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

50 Metoder Exempel: En metod talar om Dagens datum
En annan metod ger dig Pi ( )

51 Metoder Kan vi göra egna metoder? JA!

52 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

53 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.

54 Metoder public double cirkelArea(int radie){ return 3.141*radie*radie;
} Returtyp Namn inparameter utparameter

55 Metoder Hur använder vi areametoden vi just gjorde? double r = 2;
double area = cirkelArea( r );


Ladda ner ppt "Grundläggande programmering"

Liknande presentationer


Google-annonser