a) Skriv ein algoritme for eit program som gjer om eit tal i totalssystemet til eit tal i titalssystemet.
Løysing
Vi tek utgangspunkt i framgangsmåten i oppgåva over, der vi gjer om frå eit tal i totalssystemet til eit tal i titalssystemet ved rekning. Vi lar programmet ta siffer for siffer og multiplisere kvart siffer med rett toarpotens .
La brukaren av programmet skrive inn det binære talet.
Finn lengda av talet, altså kor mange siffer talet har.
Lag ei lykkje som sjekkar kvart siffer, og dersom sifferet er 1, blir 1 multiplisert med den tilhøyrande toarpotensen. Resultatet blir lagt til ein variabel for talet i titalssystemet.
Skriv innhaldet av variabelen til skjermen.
b) Skriv koden til programmet.
Tips til oppgåva
Her kan det vere lurt å bruke ei for-lykkje. Hugs at det er mange måtar å løyse dette på.
Løysingpython
1# Skriv litt forklarande tekst2print("Dette programmet gjer om eit binært tal til eit tal i titalssystemet.")3bin=input("Skriv inn det binære talet: ")4sifre =len(bin)5sum=06# Lagar for-lykkje som går gjennom det binære talet siffer for siffer7for i inrange(sifre):8ifbin[i]=="1":9sum=sum+2**(sifre-1-i)1011print(f"Det binære talet {bin} er {sum} i titalssystemet.")
c) Skriv ein algoritme for eit program som gjer om eit tal i titalssystemet til eit binært tal.
Løysing
Vi må finne ut korleis talet blir skrive på utvida form i totalssystemet, som betyr at vi må skrive talet som ein sum av toarpotensar.
La brukaren skrive inn talet i titalssystemet som skal gjerast om.
Først må vi finne den største toarpotensen som er mindre enn talet som skal gjerast om. (For talet 100 er den største toarpotensen som er mindre enn talet.) Dette kan vi gjere ved å prøve med 2 opphøgd i 0, 2 opphøgd i 1 og så vidare, heilt til toarpotensen blir større enn talet som skal gjerast om.
Vi reknar ut kor stor resten blir når vi trekker frå denne toarpotensen. Vi får sifferet "1" for denne potensen.
Så må vi sjekke om resultatet er positivt eller negativt ved å trekke den nest største toarpotensen frå resten. Er resultatet negativt, betyr det at resten er mindre enn den nest største toarpotensen, som gir sifferet "0" på denne posisjonen i det binære talet. Er resultatet positivt eller null, får vi sifferet "1" på denne posisjonen, og vi trekker denne toarpotensen frå resten. Så gjentek vi denne prosessen til vi har komme til 2 opphøgd i 0.
Skriv ut svaret til skjermen.
d) Skriv koden til programmet.
Løysingpython
1# Skriv litt forklarande tekst2print("Dette programmet gjer om eit tal i titalssystemet til eit binært tal.")3tital =int(input("Skriv inn talet i titalssystemet: "))4# Finn den største toarpotensen som er mindre enn talet5i =06while2**(i+1)< tital:7 i = i +189bin=""10rest = tital
11# Genererer det binære talet siffer for siffer12while i >-1:13if rest -2**i >=0:14 rest = rest -2**i
15bin=bin+"1"16else:17bin=bin+"0"1819 i = i -12021print(f"Talet {tital} i titalssystemet er {bin} i totalssystemet.")