Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken skal inneholde; 4 egg, 2dl. melk osv. Deretter er fremgangsmåten beskrevet; Kakk eggene, og ha dem i en bolle. Visp sammen egg og sukker… Kompetansesemål Hovedområdet handler om hvordan formelle språk kan brukes til å formulere strukturer og sette sammen instruksjoner som kan utføres av en datamaskin. Sentralt i hovedområdet er eksperimentering og problemløsning. I tillegg dreier det seg om objektorientering. Når du vil at datamaskinen skal gjøre noe for deg, må du gi den en lignende oppskrift. Hva skal den bruke? Er det tall, tekst, figurer eller noe helt annet? Og hva skal maskinen gjøre med disse elementene? Det kan du fortelle datamaskinen ved å lage et program. Når du programmerer, lager du en oppskrift som maskinen skal følge. Hvis du har en dårlig kokebok, lager du vonde kaker. Hvis du programmerer dårlig, får du et lusent program. I dette kurset skal vi lære oss å lage gode kaker, unnskyld, programmer. sdsd Variabler og datatyper Informasjonsteknologi 2 variabler Variabler er ingrediensene i programmet La oss si at programmet ditt skal legge sammen to tall. Hva blir ingrediensene i oppskriften din da? Det blir selvfølgelig de to tallene som skal legges sammen. La oss si det er 8 og 5. skjermen. Så enkelt er det; vi ber programmet skrive summen av de to tallene. Variabler Ingrediensene i et program kalles variabler. I JavaScript angir vi at noe skal være en variabel ved å skrive var foran: Vi sier at vi deklarerer to variabler. Den ene heter tall1, og den andre heter tall2. De har verdiene 8 og 12. Legg merke til at vi skriver et semikolon ved enden av linjen. Hver ”instruksjon” i et program skal avsluttes med et semikolon. Da har vi ingrediensene i oppskriften klare. Resten av programmet går ut på å legge tallene sammen, og vise det på 2 alert skriver ut summen i et varselvindu i Nettleseren. Vi kommer til å bruke dette mye i starten mens vi øver oss på grunnleggende programmering. Eller vi kommer til å bruke console.log. Variabler og datatyper Informasjonsteknologi 2 Komme i gang med JavaScript JavaScript er et programmeringsspråk som ”kjøres” i nettleseren. Vi skriver kode inne i html-sidene våre, og det er opp til nettleseren å tolke koden vår. De fleste nettlesere i dag tolker JavaScript ganske likt. Med none unntak. Et enkelt eksempel Vi oppretter en ny fil, og kaller den hello.html. I starten kan vi godt skrive koden vår som vist under et sted inne i body-taggen: skiftenøkkelen for å finne Verktøy. Alternativt Vis – Utvikler – JavaScript-konsoll Vi kommer til å bruke konsollen en del i starten for å se at vi får riktige verdier skrevet ut. Kodeeksempler For å spare litt plass, kommer jeg til å skrive eksempler heretter uten <script> - taggen rundt. Dere kan anta at all koden ligger inne i et htmldokument i en script-tagg inne i body. Sånn at i stedet for det som står til venstre på denne siden, kommer jeg heretter til å skrive det slik: console.log(”Hello, Gløer”); bruker vi til å ”skrive” ut teksten ”Hello, Gløer”. Dette synes ikke på selve nettsiden, men nettleserne har mulighet til å vise det frem. I Firefox åpner du nettsiden (Trykk F12 hvis du bruker Dreamweaver) og velg så Verktøy – Nettsideutvikling – Konsoll. I Chrome velger du Verktøy – JavaScript-konsoll. Klikk på 3 sdsd Variabler og datatyper Informasjonsteknologi 2 Datatyper 8 + 12 = 812 Vi kan også lage våre egne datatyper. Hvis vi skal lagre opplysninger om en bil, kan det være nyttig å lage et objekt som kan samle et sett med egenskaper som naturlig hører til en bil. Det kan være toppfart, farge, antall hk og lignende. Dette skal vi se nærmere på i leksjonen som handler om objektorientert programmering. I programmet på forrige side deklarerte vi 2 variabler som åpenbart representerte 2 tall. Men vi har ikke fortalt maskinen at den skal behandle variablene som tall og ikke for eksempel tekst. Hvis vi forsøker å endre programmet og sette anførselstegn rundt tallene vil vi få et annet resultat. Konsollen skriver Siden vi satt anførselstegn rundt tallene, vil nettleseren tolke det som tekst, og rett og slett skjøte sammen 8 og 12 som tekst, så det blir 812. Vi må passe på om vi vil at 8 skal være et tall eller en tekst. JavaScript lar nettleseren finne ut om vi mener tekst eller tall. Anførselstegn rundt noe blir tekst. Andre programmeringsspråk krever at du skrive hva slags datatype variabelen har. Om det er tekst eller tall eller noe helt annet. 4 Variabler og datatyper Informasjonsteknologi 2 Datatyper for tall I et språk som Actionscript har vi 3 forskjellige typer tall. • int • uint • Number int er et heltall som kan ha verdi mellom -2 147 483 648 og 2 147 483 647 uint er et positivt heltall som kan ha verdi mellom 0 og 4 294 967 295 Number er heltall eller desimaltall mellom -253 og 253. For å lage en variabel som skal være et heltall, må vi skrive var tall1:int = 25; Da forteller vi datamaskinen at vi har med et heltall å gjøre. JavaScript finner ut dette på egenhånd, så vi ikke behøver å si hva slags type tall det er vi bruker. Skriver vi 23.8 betyr det at vi har et desimaltall. Typet eller utypet Vi sier at et programmeringsspråk er typet hvis du hele tiden må fortelle programmet hva slags datatyper du bruker. Java, C# og lignende er slike typede språk. JavaScript er vel det vi kan kalle et løst typet språk. Hvis vi skal lage en liste eller noe vi kaller et objekt, må vi fortelle programmet dette. Variabler er forandelige Du har kanskje gjettet det av navnet variabel, nemlig at de er foranderlige, altså de kan endre verdi. Du kan ikke endre navn på en variabel, men du kan endre verdien. Det er et viktig poeng med variabler. La oss vise det gjennom et eksempel. 5 sdsd Variabler og datatyper Poeng i spill Informasjonsteknologi 2 2 La oss si at du lager et spill. Da er det alltid viktig å ta vare på hvor mange poeng den som spiller til enhver tid har. Som regel starter vi med 0 poeng, og hver gang vi utretter noe i spillet får vi nye poeng. Hvordan skriver vi kode for dette? Denne måten å skrive på er noe programmerere har funnet på for å spare tid. I stedet for å skrive poeng = poeng + 5; skriver vi Først er poeng lik 0, deretter forandres poeng til 5, men det er den samme variabelen. poeng += 5 Øke verdien til en variabel Effekten blir akkurat den samme. Prøv å skrive det en gang til så poeng blir 10. Det vil som oftest være mer logisk å øke poeng med for eksempel 5 hver gang noe bestemt skjer. Det kan vi gjøre på 2 måter: 1 Hvorfor det heter C++ En vanlig operasjon i programmering er å øke en variabel med 1. Dette gjøres så ofte at det har sin helt egen syntaks. Først er poeng 0, så sier vi at poeng skal bli poeng + 5. Altså blir poeng 0 + 5 = 5. C++ lignet på programmeringsspråket C, men oppfinneren mente det var en forbedring, derav C++ 6 Variabler og datatyper Informasjonsteknologi 2 Praktiske eksempler 1 Navn på variabler På linje 1 deklarerer vi en variabel med navn i. Det er et heltall med verdi 20. På linje 2 øker vi i med 5 – i er nå lik 25. På linje 3 øker vi i med 10 – i er nå lik 35. På linje 5 skriver vi ut 35. document.write(i) skriver i nettleseren 2 Du bør alltid velge navn på variablene dine som gir mening. Skal du regne ut et areal, er det lurt å kalle variabelen nettopp det. Variabelnavn kan begynne med en bokstav, $ eller underscore (_). De kan også inneholde, men ikke begynne med et tall. lengdeVegg3 lengde_paa_vegg antallSekunder $sum På linje 1 deklarerer vi et flyttall med verdi 4. På linje 2 deklarerer vi et flyttall med verdi 3,5. Så skjer det noe spennende. Vi kan deklarere nye variabler på bakgrunn av utregninger eller andre sammenstillinger av andre variabler. På linje 3 ser vi at variabelen areal er produktet av lengde og bredde. Sjekk svaret selv med hoderegning, eller test det ut ved å skrive koden. document.writeln (areal) skriver også i nettleseren. 7 sdsd Variabler og datatyper Informasjonsteknologi 2 Kommentarer i koden Når du skriver kode, har du mulighet til å legge inn kommentarer i koden. Dette er tekst som ikke blir en del av det ferdige programmet, men som er til hjelp for deg selv til å huske hva du har tenkt, eller som hjelp til andre som skal jobbe videre med din kode. Det er viktig å kommentere godt i koden. Dette er en del av dokumentasjonen som viser hva programmet ditt skal gjøre. Hvis du er nøye med kommenteringen din og i tillegg bruker fornuftige navn på variabler har du kommet et godt stykke på vei til å bli en god programmerer. Det er 2 måter vi kan kommentere på i JavaScript: 1 2 // Dette er en kommentar for én linje /* Dette er en kommentar som strekker seg over flere linjer*/ Finne elementer på nettsiden Legg merke til at vi lager en div her som er tom i utgangspunktet. Vi setter en id på den, så vi kan få tak i den med JavaScript. document.getElementById finner elementer på siden som har en bestemt id. Deretter kan vi fylle diven med html ved hjelp av innerHTML. Det kan være bare tekst eller tall som her, eller det kan være html-kode. Legg merke til at kommentarene blir ”grået” ut. De har ikke noen effekt på programmet når det kjører. 8 Variabler og datatyper Informasjonsteknologi 2 Oversikt over regneoperasjoner på kortform. Husk at når vi skriver poeng = poeng + 5, så forandrer vi verdien til poeng. Operator += −= *= /= ++ −− Hva gjør den Legger til verdien på høyre side i uttrykket Trekker fra verdien på høyre side i uttrykket Ganger med verdien på høyre side i uttrykket Deler på verdien til høyre side i uttrykket Legger til 1 Trekker fra 1 Hvordan poeng += 10; Samme som poeng = poeng + 10; poeng −= 10; poeng = poeng − 10; poeng += 10; poeng = poeng * 10; poeng /= 10; poeng = poeng / 10; poeng ++; poeng −−; poeng = poeng + 1; poeng = poeng − 1; Eksempler Legg merke til at vi kan skrive kommentarer på samme linje som koden. Den bør ligge etter selve koden på linjen. 9 sdsd Variabler og datatyper Informasjonsteknologi 2 Rekkefølge på regneoperasjoner 1 IT, fysikk og matte – En skummel kombinasjon Er det noe datamaskinen din er god på, så er det å regne. Du må absolutt ikke være god i fysikk og matte for å bli en god programmerer. Mange programmerere bruker det knappest i det hele tatt. Ganging og deling skjer først, deretter pluss og minus. Det er ofte lurt å bruke parenteser for å holde styr på utregningene dine. Vi har så langt sett på enkle regneoperasjoner. Tro ikke at det stopper der. JavaScript har kraftige verktøy for å utføre avansert matematikk. Til dette har vi datatypen Math. Du kan lese mer om den på w3schools: http://www.w3schools.com/js/js_obj_math.asp På neste side viser jeg noen eksempler på bruk av Mathklassen. 10 De som derimot bør kunne en del om det, er programmerere som vil forsøke seg på å lage spill og avanserte animasjoner. Når vi kaster noe i et spill ønsker vi at det skal se realistisk ut. Dette kan vi kun oppnå hvis vi har en viss forståelse for hvilke krefter som virker inn i et kast, så vi kan beregne banen og lignende. Variabler og datatyper Informasjonsteknologi 2 Datatypen Math Konstanter: Med Math kan du finne kjente konstanter fra matematikken Utregninger: Med Math kan du gjøre mer eller mindre avanserte utregninger: 11 sdsd Variabler og datatyper Informasjonsteknologi 2 String Datatypen String De fleste dataprogrammer inneholder tekst i mer eller mindre grad. String er den datatypen i JavaScript, og i mange andre språk, du bruker til tekst. Her deklarerer vi 2 variabler, fornavn og etternavn, og skriver dem ut. Vi kan deklarere en string på 2 måter. Enten med new String(”Petter”), eller vi kan gi den en verdi i anførselstegn som sier at det er en String. Når vi skriver + mellom fornavn og etternavn, skjøter vi sammen tekstene. Legg merke til at fornavnet og etternavnet legger seg rett etter hverandre. Vi kan legge til et mellomrom slik: Vi kan også skjøte annen tekst sammen med variablene våre: 12 Variabler og datatyper Informasjonsteknologi 2 Egenskaper og metoder til String Når vi deklarerer en tekst som String, får vi det vi kaller et objekt av klassen String. Ikke bry dere så mye om det nå, men bry dere om at dette gir oss en rekke verktøy for å manipulere og finne ut mer om teksten. Dette kaller vi egenskaper og metoder. Noen ganger kan det være nyttig å finne ut hvor mange bokstaver det er i teksten. Andre ganger vil vi finne ut om teksten inneholder bestemte ord, eller vi vil omforme alle små bokstaver til store. Hvordan leser vi . Legg merke til at vi skriver navn.length. Når vi leser kode pleier vi å si navn sin length. Ikke særlig god norsk, men det gir mer mening enn å si navn punktum length eller Navn dot length Jeg sier også navn sin toUpperCase når jeg leser kode. String har en rekke metoder knyttet til seg. En viktig del av dette faget er å finne frem i dokumentasjon som andre har laget. På w3schools kan du lese om metoder og egenskaper for alle datatypene som er innebygget i JavaScript. Etter hvert vil du også lage dine egne datatyper, og det er viktig at også du dokumenterer disse. Her kan du finne ut mer om String: http://www.w3schools.com/js/js_obj_string.asp Hva er de parentesene? Legg merke til at vi skriver navn.toUpperCase(). Altså med 2 motstående parenteser etter. Dette betyr at toUpperCase er en såkalt metode. Antall tegn, derimot, er en egenskap, og skal således ikke ha parentesene. Noen metoder tar i mot parametere, som search(”Sol”). Dette kommer vi tilbake til 13 sdsd Variabler og datatyper Informasjonsteknologi 2 Array – en liste over elementer Et array er en slags liste over hva vi måtte ønske. Det kan være en liste over elever i en klasse, biler i en butikk; alt mulig kan vi stappe inn i et array. Tenk deg en handleliste som du har liggende på benken. Etterhvert som du finner ut at det er noe du trenger, skriver du det opp på listen. Det er fortsatt bare én liste, men det er mange ting du trenger på listen. Når du skal samle informasjon om mange ting på ett sted, kan det være lurt å lage et array. Vi oppretter et array, og legger inn nødvendige varer. Hvert element i listen har sin bestemte posisjon. Vi sier at det første elementet ligger i posisjon 0, det andre i posisjon 2 osv. For å få tak i dundersalt, må vi altså til posisjon 1. Dette gjør vi ved å angi posisjonen vi skal frem til med firkantparentes: [1] Vi kan også endre verdien av elementene i arrayet. La oss si at vi har mer lyst på Salte bjørner. Da stryker vi ut Dundersalt fra listen og skriver opp Salte bjørner i stedet: 14 Variabler og datatyper Informasjonsteknologi 2 Array – legge til nye elementer La oss se på handlelisten vår en gang til. Vi har 3 varer på listen. Hva om vi skal legge til flere? Det enkleste er å bruke noe som heter push. Det vil si at vi dytter nye varer inn i listen. Når vi legger til elementer på denne måten, legger de seg på slutten av arrayet. Hvis vi vil legge inn noe på starten, bruker vi unshift: Vi kan også ta ting ut av arrayet; pop() tar ut siste element, mens shift() tar ut første element: 15 sdsd Variabler og datatyper Informasjonsteknologi 2 Egenskaper og metoder til Array Den viktigste egenskapen til Array er length, altså antall elementer i arrayet: Array har mange metoder. Vi har allerede sett på pop, push, shift og unshift. I tillegg har vi metoder for sortering, søk, filtrering, omrokkering osv. Her er noen eksempler: reverse() - Snur rekkefølgen sort() – Sorterer arrayet Her kan du finne ut mer om Array: http://www.w3schools.com/js/js_obj_array.asp 16 Variabler og datatyper Informasjonsteknologi 2 Konstanter Da vi fant pi, skrev vi Math.PI. Dette er en såkalt konstant som hører til Math-klassen. Du kan lage egne konstanter i koden slik (vi bruker store bokstaver): Når en konstant er deklarert, kan du ikke endre verdien senere i programmet. Det er derfor det kalles en konstant. Til alt som skal endres bruker vi variabler. 17
© Copyright 2024