Undervisningsopplegg – Primtallsfaktorisering i Scratch

Dette undervisningsopplegget handler om primtallsfaktorisering, og ideen er at vi skal liste ut faktorene vi finner opp til et angitt tall i en liste. F.eks finne faktorene til 44, 102, 81 osv. Definisjonen på primtall er hele tall som kun er delelig med 1 og seg selv, altså vil det aldri bli hele tall som svar om en deler på et annet tall. Altså er 2 x 4 faktorer i 8, men 2 x 2 x 2 er primtalsfaktorene i 8.

Skal en gjøre dette manuelt, og tallene begynner å bli store krever det en del strategier og noe tid for å finne alle faktorene. Selvfølgelig finnes det en rekke regler en kan bruke for å utelukke en del tall, men det er vanskelig å ha full kontroll.

La oss derfor lage et program i Scratch som vi kan bruke for å finne primtallene som finnes opp til et gitt tall.

Kompetansemål etter 8.trinn:
– utforske korleis algoritmar kan skapast, testast og forbetrast ved hjelp av programmering
– utforske og beskrive primtalsfaktorisering og bruke det i brøkrekning
– beskrive og generalisere mønster med eigne ord og algebraisk

Krav til programmet
Programmet skal spørre brukeren etter et heltall som er det tallet brukeren vil vi skal finne faktorene til, og deretter liste ut faktorene i en liste etter hvert som programmet finner det. Svaret skal presenteres for brukeren.

Steg 1 – Pseudokode
Når vi skal løse slike oppgaver med elevene er det en god ide å «skrible» på tavlen sammen med dem for å skape en forståelse av hva som skal gjøres. Pseudokoding gjør det lettere å få en oversikt over hva som skjer med et og et tall og hvordan vi enklest kan løse utfordringene. Samtidig gir det en rask oversikt over hvor vi trenger løkker og vilkår, samt hvilke variabler vi trenger.

Steg 2 – Spørre etter tall
Programmet skal spørre etter det tallet som brukeren ønsker å finne faktorene til. Det kan legges inn en kontroll for at det er heltall brukeren legger inn.

Steg 3 – Sette variabler og tømme listen
Svaret, altså heltallet, setter vi i variabelen start_tall som vi tar vare på til bruk senere. Det samme tallet, skal vi bearbeide underveis, så vi flytter det over i en midlertidig variabel tmp_tall og samtidig så setter vi den første faktoren vi skal undersøke til 2. Å teste for 1 har ingen funksjon.

Vi tømmer også listen som vi skal legge faktorene inn i underveis.

Steg 4 – Foreta tester og finne faktorene
Vi skal nå foreta tester for å finne faktorene som tallet er bygd opp av. Vi lager en løkke som vi kjører til faktoren og tmp_tallet blir likt. Da er det ikke vits å teste lenger, siden vi har kommet til et primtall.

Vi begynner med å teste for faktoren 2, siden dette er den minste primtallsfaktoren vi trenger å teste på (og som vi satt før vi begynte på testen). Vi bruker mod operatoren og sjekker om det er rest når vi har delt på 2. Er det ingen rest, vet vi at tallet er delelig med faktoren, og vi har funnet en faktor.

Videre deler vi på faktoren, slik at vi kan arbeide videre for å finne neste faktor.

Får vi rest på testen, endrer vi faktoren med 1, slik at vi kan teste videre. Merk at vi ikke endrer faktoren om vi får rest. Et tall kan nemlig ha flere like faktorer.

Ferdig, vil testen se slik ut. For hver gang den lykkes med å finne en faktor, legges denne faktoren i listen som skal inneholde faktoren.

En observant elev, vil kanskje under test oppdage at den siste faktoren mangler. Den kan legges til når en ferdig med testene.

Steg 5 – Informasjon til brukeren når programmet er ferdig
Når alle faktorene er funnet, så skal brukeren få informasjon om faktorene i form av listen. Men hva om tallet er et primtall?

Et primtall er kun delelig med seg selv og 1, og det vil kunne bli registrert en forekomst i listen. Nemlig en selv. Da skal brukeren få beskjed om at det testes på et primtall.

Om det er flere forekomster i listen, skal brukeren få en beskjed om at faktorene ligger i listen.

Eksempel på program finner du her:

https://scratch.mit.edu/projects/423102775

Kommentarer er stengt.

Blogg på WordPress.com.

opp ↑

%d bloggere liker dette: