1 / 55

Grundläggande programmering

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.

jadon
Download Presentation

Grundläggande programmering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 heltalModulo % • 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 36540 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 flyttalDivision • Exempel: double x = 1/3; Vilket värde har x tilldelats? 0 Divisionsoperatorn tror att vi är intresserade av heltalsdivsion.

  20. 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….

  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){ a = 2; } 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( …. ){ 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 1+2+3+4+5+6+7+8+9+10

  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;

  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 (3.1415..)

More Related