Grundläggande programmering

  • Published on
    07-Jan-2016

  • View
    34

  • Download
    2

Embed Size (px)

DESCRIPTION

Grundlggande programmering. Problem. Problem1 : Omvandla sekunder till timmar, minuter och sekunder Problem 2: Berkna fakulteter (10! = 10*9*8.. ) Problem 3: Hitta det strsta talet. Fr att lsa problem 1. Vad r en variabel? Olika variabeltyper Heltalsoperationer. Variabler. - PowerPoint PPT Presentation

Transcript

  • Grundlggande programmering

  • ProblemProblem1 : Omvandla sekunder till timmar, minuter och sekunderProblem 2: Berkna fakulteter (10! = 10*9*8.. )Problem 3: Hitta det strsta talet

  • Fr att lsa problem 1Vad r en variabel?Olika variabeltyperHeltalsoperationer

  • Variabler

    Int x = 5;Variabelns typ.Int : heltal

    Variabelns namnVariabelns vrdeVi sger att variabeln x som r av typen heltal har tilldelats vrdet 5Talar om fr kompilatorn att instruktionen slutar hr

  • VariabeltyperVi tar upp tre stycken olika typer:HeltalFlyttalBooleans

  • VariabelnamnVarje variabel mste ha ett (unikt) namnNamnet mste brja med en bokstavNamnet fr endast innehlla bokstver ,siffror och _ ,, br undvikas Bra namn beskriver variabeln

  • Variabelns vrdeVariabelns vrde beror av dess typExempel:Int x = 5.2;EJ kompatibelt , 5.2 r inget heltal

    Int x = 5;Kompatibelt, x har tilldelats vrdet 5

  • Variabelns vrde

    Ett till exempel:double x = 5;

    Kompatibelt , x har tilldelats vrdet 5.Talet 5 kan ses som bde ett heltal och ett flyttal. Men vi mste vara frsiktiga! Mer strax.

  • Rkneoperationer fr heltalDet finns 5 stycken olika:+-*/%

  • Rkneoperationer fr heltalExempel p addition:Int x = 5;Hur skriver vi fr att x ska ha tilldelats vrdet 7 (vi mste addera till 2)?S hr? x + 2;NEJ Fr att x ska ha tilldelats vrdet 7. mste vi anvnda tilldelningstecknet =

  • Rkneoperationer fr heltalFortsttning p exempelS hr? x = 2;NstanNu tilldelade vi x vrdet 2. Men hur gr vi d?x = x + 2;Rtt Vi hmtar x sedan tidigare och lgger till 2 och sparar resultatet i x.

  • Rkneoperationer fr heltalSlutsats?Hr skiljer sig matematik och programmering!Frn fregende exempelx = x + 2;Om vi lser det som en ekvation fr vi att0 = 2 !

    Tilldelningstecknet r inte samma sak som matematikens likhetstecken

  • Rkneoperationer fr heltalTesta din frstelse!Int x = 4;Int y = 3;x = y;y = y + x;Vad blev x?x = 3Vad blev y?y = 6

  • Rkneoperationer fr heltal DivisionExempelInt x = 7/2;Vad blir det?3.53Det gr inte drfr 7/2 r inget heltal

  • Rkneoperationer fr heltal DivisionRttsvar : 33.5 r inget heltal. Dividerar vi heltal med heltal sparas bara heltalsdelenDivisionen retunerar ett heltal

  • Rkneoperationer fr heltalModulo %Modulo ger resten vid heltalsdivisionExempel:x = 8%4;Vad blev x? x = 0;Ett till exempel:x = 4%8;

  • Problem 1Vi kan nu tillrckligt med programmering fr att lsa frsta problemet!Vi har 36540 s , vi vill skriva det p formen: hh : min : sek

  • Lsningsfrslag till Problem 1int allaSekunder = 36540;int timmar = allaSekunder/3600;int minuter = (allaSekunder%3600)/60;int sekunder = (allaSekunder%3600)%60;

  • Rkneoperationer fr flyttalDivisionExempel:double x = 1/3;Vilket vrde har x tilldelats? 0Divisionsoperatorn tror att vi r intresserade av heltalsdivsion.

  • Rkneoperationer fr flyttalDivisionHur gr vi en flyttalsdivision?double x = 1.0/3;0.33333333.Eller:double x1 = 1;double x2 = x1/3;x2 = 0.33333333.

  • Flyttal1/3 = 0.33333 fortstter med 3:or i all ondlighet.

    Innehller vr variabel ett ondligt antal 3:or?Nej! Fr att lagra ett ondligt antal 3:or behver vi ett ondligt stort minne att lagra de i.

  • VillkorssatserOm vi vill utfra instruktioner efter att ett villkor r uppfyllt anvnder vi oss av en villkorssats.Villkoren bygger p jmfrelser mellan tv vrden

  • VillkorssatserExempel: Vi vill ta ut pengar frn banken men bara om vi har tillrckligt p kontotLt uttag vara beloppet vi vill ta utLt saldo vara hur mycket vi har p kontot

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

  • VillkorssatserUttag < saldo : Jmfrelsen som sker Allting mellan { } r ett block. Hr lgger vi in vad som ska ske om villkoret r uppfyllt

  • VillkorssatserHur gr vi om vi vill tillta uttag som ven r lika stora som saldot?If(uttag
  • Jmfrelsera >ba r strre n ba < ba r mindre n ba >= b a r strre n eller samma som ba
  • JmfrelserEtt vldigt vanligt programmeringsmisstag:If ( a = b){a = 2;}Ser du ngot konstigt?

  • Jmfrelser= Ett likhetstecken betyder tilldelning, allts var satsen alltid sann!== Tv likhetstecken anvnds fr att se om tv variabler har samma vrde

  • JmfrelserEtt till vanligt misstag:If (a == b);a = 2;

    Hr avslutas villkorssatsenDet hr ligger utanfr villkorssatsen och sker oavsett om a == b

  • Flera jmfrelserVi kan ha flera villkor samtidigt. Exempel : Barn ver sju r fr g p bio, och barn under sju r fr g p bio med vuxenHur kan en villkorssats se ut?

  • Flera jmfrelserIf(barnAlder > 7 || barn_har_vuxen == true)//Fr g p bio

  • Flera jmfrelserVi kan krva att tv villkor, eller flera villkor ska vara uppfylldaOm maten r god och dyr s ter jag denHur kan en villkorssats se ut?

  • Flera jmfrelserIf(isGod == true && isDyr == true)//t

  • Else if, elseOm vi vill gra ngot nr if-satsen inte r uppfylld. Kan vi anvnda else if, eller else

    Else if Pbrjar en ny if-sats om fregende sats inte var sannElse intrffar nr ingen if-sats r uppfylld.

  • Else if, elseExempel:If ( a == b){//a och b r samma}else if( a > b){//a r strre n b}else{//Inget av ovanstende (a < b)}

  • Nstlade if-satserVi kan ha flera if-satser i varandraIf( . ){If( .){}}Tabba alltid koden!

  • UpprepningarUpprepar ett block kod s lnge ett villkor r uppfylltOlika stt att upprepa:for whiledo while

  • Forfor(initiera variabel; villkor;stegning){ //kod som ska upprepas}

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

  • Forint summa = 0;for(int i = 1; i
  • WhileSatshuvudet bestr endast av ett villkorwhile (villkor){//gr det hr s lnge villkoret r uppfyllt//Se till s att variablerna i villkoret ndras}While anvnds nr vi vill ha strre kontroll ver stegningen.

  • Problem 2Berkna fakulteter10! = 10*9*8*7*6*5*4*3*2*10! = 1Vi vill kunna berkna en godtycklig fakultet

  • Lsningsfrslag till Problem 2int fakultet = 1;for(int i = 0; i < 0; i++){fakultet *= i;}

  • Fltvariablerint[] a = new int[10];

    En fltvariabel av typen heltalReservera plats fr 10st vrden

  • Tilldelning av vrden i fltvariablerFr tal tilldelas vrdet noll om inget annat har angivitsVi tilldelar vrden genom att tala om vid vilket index vrdet ska lagrasIndex brjar p 0a[0] =3;Index

  • Tilldelning av vrden i fltvariablerEtt exempel:int[] a = new int[10];skapar en ny fltvariabel med 10 element, alla fr vrdet 0

    a[0] =2;a[9] = 7;

  • Problem 3Hitta det strsta talet i mngden:{2,9,8,11,6}

  • Lsningsfrslag till problem 3int[] 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;imax){max = a[i]; }}

  • MetoderMetoder kan ses som sm mindre program designade fr att lsa en specifik uppgift

  • MetoderExempel:En metod talar om Dagens datumEn annan metod ger dig Pi (3.1415..)

  • MetoderKan vi gra egna metoder?

    JA!

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

    Men frst mste vi frst hur en metod anvnder sig av in- och utparametrar

  • Metoderinparametrar (frivilligt): variabler metoden kan anvnda sig av frn utsidanUtparametrar (frivilligt): det metoden returnerar nr den r klarEn metod kan bara anvnda sig av variabler definierade i sig sjlv, sina in-parametrar och andra metoder. *med frivilligt menas att det r tilltet fr metoder att vara utan inparametrar och eller ven utparametrar.

  • Metoderpublic double cirkelArea(int radie){return 3.141*radie*radie;}ReturtypNamninparameterutparameter

  • MetoderHur anvnder vi areametoden vi just gjorde?double r = 2;double area = cirkelArea( r );