Tid

I disse oppgavene får du noen utfordringer innenfor temaet “tid”. Du kommer ikke til å jobbe med verdier større enn timer, og heller ikke noe mindre enn sekunder. Disse oppgavene er designet for å teste deg i nesten alle temaene du har gått gjennom tidligere. Noe hint er å se spesielt på variabler, if else tester, operatorer og løkker. Når det kommer til å få tid til å gå, kan du enten se på loops eller micro:bit sin egen “forever” funksjon fra “basic” delen. Hvordan du ønsker å løse de forskjellige oppgavene er helt opp til deg, det eneste som er nødvendig er at metronomen lager lyd/blinker på hver tikk. Om du stiller inn tiden på klokken i editoren, eller manuelt på chippen, er helt opp til deg. Tidtakeren må kunne vise hvor mye tid som har gått når den har stoppet, og også kunne bli resettet.

Tips Og Hjelp

I lista under så finner dere sidene som er relevante for å løse oppgavene under:

  1. Micro:Bit-funksjoner
  2. Variabler
  3. Operatorer
  4. Tilstander
  5. Løkker
Tidtager

Når vi skal lage en tidtager så kommer vi til ha nytte for Basic og Input delene i Micro:Bit, variabler, operatorer, løkker (mer spesifikt While-løkken) og tilstander. Det vi alltid gjør først når vi programmerer et litt større program er å lage variabler først. Her kan det da være greit å lage en variabel for tid (kan kalle denne for "time"). Denne variabelen skal holde på tiden som blir tatt, og vi ønsker at Micro:Bit skal starte på nytt når vi trykker på A+B. Her kan vi bruke Input delen i Micro:Bit.

Etter dette så ønsker vi separate funksjoner får både knapp A og knapp B. Knapp A skal starte tidtageren, og den skal gå så lenge knapp B ikke har blitt trykket. Når vi setter denne betingelsen i while-løkken så skriver vi det som "!(input.buttonIsPressed(Button.B))", utropstegnet ! her betyr at noe ikke skal skje. Dette setter vi inn i while-løkkens parenteser. Som oppsummering, når vi trykker på knapp A så skal tiden starte, og den skal gå så lenge knapp B ikke blir trykket, mens tiden går, så skal den øke variabelen tid med 1 (bruk += operatoren her), den skal pauses når vi holder på knapp A og da kan vi bruke pause funksjonen som finnes i Micro:Bit sin basic del (den skal pauses i 1000, dette skriver dere i pause parentesene), og Micro:Bit skal alltid vise tallet, med mindre vi trykker på A+B.

Klokke

I denne oppgaven så skal vi gjøre et forsøk på å lage en digital klokke. Til å begynne med så må vi definere noen variabler først. Vi må da ha variabler for tid, timer, minutter, en variabel for justering som dere velger selv hva heter og en variabel som styrer morgen og ettermiddagen (kaller denne for "ampm"). Ampm variabelen setter dere som falsk ("false" i JavaScript), dette er noe vi kaller for boolske operatorer.

Etter at vi har definert variablene, så skal vi prøve å vise tiden på Micro:Bit. Slik ser det ut i praksis, og vi forklarer nærmere under eksempelet:

I Shake funksjonen så skal vi sette juster variabelen lik time variabelen og lage if og else tester som skal sette betingelser for ampm slik at klokken vet om det er morgen eller kveldstid. Dette gjør vi da ved å fortelle programmet at hvis timer er større enn 12, så skal juster være lik timer minus 12, ellers hvis timer er lik 0, så skal juster være lik 12. Etter dette så skriver vi kode for hvordan tiden skal vises, her gir vi time nye verdier i Shake funksjonen (som for eksempel da time = time + minutes / 10, time = time + minutes % 10, time = time + ":" og time = "" + juster)

Når dette er ferdig, så trenger vi enda en if og else test, litt av den samme som vi allerede har laget. Men her ønsker vi at hvis vi bruker ampm, hvis timer er større enn 11, så skal tid være lik tid + "PM", eller så skal den være lik tid + "AM".

Da vil dere være klare for å løse oppgavene! Løsningsforslag finnes nederst i siden, hvis det skulle behøves.

Eksempelvideo

Coming soon......

Oppgave