Alle tall kan skrives på utvidet form, det vil si at vi forteller hvor mange tusener, hundrere, tiere og enere 4353 består av. I dette undervisningsopplegget skal vi lage et program som spør etter et tall, og deretter presenterer det på utvidet form. For å klare det trenger vi en del funksjoner som blant annet finner størrelsen på tallet og henter ut et og et siffer av tallet. Svaret skal til slutt presenteres i en liste.
Kompetansemål matematikk 10.klasse
– utforske matematiske egenskaper og sammenhenger ved å bruke programmering
Kompetansemål matematikk 8.klasse
– utforske hvordan algoritmer kan skapes, testes og forbedres ved hjelp av programmering
– bruke potenser og kvadratrøtter i utforsking og problemløsing og argumentere for framgangsmåter og resultater
Kompetansemål matematikk 7.klasse
– bruke programmering til å utforske data i tabeller og datasett
Krav til programmet
Programmet skal etterspørre heltall fra brukeren. Dette skal analyseres slik at en finner størrelsen på tallet. Deretter skal tallet deles opp i for eksempel tusener, hundrere, tiere og enere, og presenteres på denne måten i en liste. 432 skal presenteres som 4*100 + 3*10 + 2. For å regne ut tallet skal vi bruke potens av 10.
Steg 1 – Pseudokoding – legg en plan
Legg en plan sammen med en elevene for hva som skal skje når i programmet. Begynn med å spørre etter tallet, legg inn nødvendige tester, variabler og løkker det trengs, og tenk nøye gjennom hvilke operatorer som trengs i programmet.
Steg 2 – Spør etter tallet
La oss spørre etter tallet og lagre svaret i en variabel. Kanskje bør vi legge inn en funksjon som gjør tallet om til heltall om brukeren skulle legge inn et desimaltall eller negative tall. Til dette kan vi bruke operatoren «avrund» som runder av tallet til et heltall.

Steg 3 – Analysere tallet
Vi skal nå analysere tallet, og finne ut hvor stort det er. Til dette kan vi bruke operatoren som finner lengden av enten et tall eller et ord. Vi lagrer svaret i en variabel som vi kan kalle lengde av tall. Er tallet tosifret, altså mellom 10 og 99, vil den gi ut verdien 2.

Steg 4 – Hente ut et og et siffer fra tallet
Vi skal nå hente ut et og et siffer fra tallet, og multiplisere det med verdien det har. Er verdien tusen, skal det multipliseres med tusen osv. For å hente ut sifferet fra listen, skal vi bruken funksjonen «bokstaven x i xx». Denne vil også hente ut et siffer i et tall.

Vi skal begynne med det første og arbeide oss videre i tallet, så vi må lage oss en variabel som begynner på det første og arbeider seg videre for hver runde i en løkke. Løkken skal kjøres så mange ganger som tallet har siffer.

Steg 5 – Potensregning og presentasjon i liste
Vi skal nå regne ut verdien av sifferet og til dette bruker vi en utregning av tallets lengde minus hvilket siffer vi henter ut. Svaret vil vi gange med potensen av 10, og det vil gi oss verdien av tallet. Er for eksempel tallet 4 siffer, vil verdien av det første sifferet være 1000. Lengde av tallet 4 minus 1 siffer blir 3, og vi skriver 1000 som 10^3.

Dette legger vi så inn i en liste. Dette er enklere enn å la figuren presentere svaret, da vi ikke vet hvor mange siffer tallet er på forhånd. En liste er langt mer fleksibel. Bare husk å tømme listen når programmet starter.

Husk også å endre teller med 1 for hver runde i løkken som kjøres, ellers vil den bare kontrollere første sifferet hver eneste gang.
Utfordringer
– endre programmet slik at det også klarer å håndtere desimaltall (dette er vanskelig, men ikke umulig)
Et ferdig eksempel på oppgaven kan du finne på https://scratch.mit.edu/projects/490787474