|
Binær teller
|
|
Å telle er en vesentlig funksjon til mange elektroniske brikker. Klart at
de bruker binære tall, ikke desimale. Her er
du utfordret til å bygge en binær teller.
|
|
Det går enkelst når du baserer deg på ditt ark som
konverterer mellom binære og desimale tall.
Telleren skal inkrementere det binære tallet som står øverst
i regnearket.
|
Legg inn der to knapper ved hjelp av kontrollverktøykassen (Vis ->
Verktøylinjer -> Kontrollverktøykassen) og knapp-ikonet som du
finner der.
|
Den ene knappen skal brukes for å telle. Den andre for å sette
telleren til null. Rediger teksten på knappene ved høyre-klikk og
CommandButton-objekt -> Edit.
|
Det er enkelt å lage en makro som setter det binøre tallet øverst i
arket til null. Du kan gjøre det ved å direkte skrive kode inn i makroen som
er tilknyttet Reset knappen. Høyre-klikk på knappen og
velg Vis kode.
|
Har du gitt navn til cellene dine, kan du nå referere direkte til navnene.
Dermed blir koden veldig transparent: Den setter alle binære siffrene til
telleren til null.
|
For å prøvekjøre, må du bare huske å gå ut av
utformingsmodus:
|
Funker Reset knappen nå?
|
Nå er det på tide å implementere selve telleren. Gå tilbake
i utformingsmodus, høyre-klikk på den andre knappen, og velg igjen
Vis kode
|
Telling fungerer slikt:
00000 = 0
00001 = 1
00010 = 2
00011 = 3
00100 = 4
...
Prinsippet er altså:
- Øk det binære siffret i laveste posisjon: 0 -> 1, og deretter 1 -> 2.
- Dersom det gikk over fra 1 til 2, har vi tellt for langt i denne posisjonen.
Rett opp ved å sette posisjonen til 0 og øk isteden det binøre siffret i
nest-laveste posisjon.
- Dersom det gikk over fra 1 til 2, har vi igjen gått for langt. Rett
opp ved å sette posisjonen til 0; øk det binøre siffret i
tredje posisjon.
- etc etc etc...
|
Det finnes flere måter å implementere dette. Her er en mulighet.
|
|
Hvis du går bort fra bruk av navn, kan du gjøre dette i en elegant
løkke. Men saken blir mindre transparent.
|
|
Husk igjen å forlate utformingsmodus for å teste dette...
|