Gå til innhold

Anbefalte innlegg

Heisann. Jeg sliter en del med en oppgave vi har fått i python, der vi skal lage en kommando som kan endre en gitt verdi til en tilsvarende verdi i et annet gitt tallsystem. Jeg håpet at noen her kunne hjelpe meg, ihvertfall med å sette opp for ett system, og så kunne jeg gjerne gjøre de andre selv hvis jeg skjønner greien. :p

 

Skal skrive hele oppgaven her slik at det kanskje er lettere å forstå.

 

Oppgave:

 

Programmet skal hete 'konverter' og ha to positive heltall n og b som input, og hvor b er minst 2 og høyst 10. Programmet skal konvertere n til et tall i b-tallsystemet ved at sifrene legges i en liste som lest fra venstre mot høyre vil gi representasjon av n i b-tallsystemet.

 

Utskrift fra programmet skal se ut som vist nedenfor:

 

>>>konverter(79,7)

 

[1,4,2]

 

>>>konverter(66,3)

 

[2,1,1,0]

 

>>>konverter(128,2)

 

[1,0,0,0,0,0,0]

 

>>>konverter(100,4)

 

[1,2,1,0]

 

>>>konverter(345345,10)

 

[3,4,5,3,4,5]

 

Vi har hatt minimalt (en halv time?) med python, og så ble vi kastet litt ut i dette, så jeg har faktisk INGEN anelse hva jeg skal gjøre, og vil gjerne ha svar litt for 'dummies' :)

 

Takker for alle svar.

Lenke til kommentar
Videoannonse
Annonse

Kjapp idé:

 

Lag to lister: en er "tom", i.e. placeholders for listen du skal returnere når du er ferdig.

Den andre inneholder potensene fra mest signifikant til minst signifikant for basen du skal konvertere til.

 

Kombiner og magi!

 

Eller: finn en fornuftig algoritme for base-conversion. De finnes. Kommer du ikke på den kan du sikkert google.

 

For the record kan denne løses på tre linjer.

Endret av Lycantrophe
Lenke til kommentar

Skjønte ikke helt hvordan jeg skulle gå frem der. Jeg er som sagt helt fersk på dette her, og vi har absolutt ingen kunnskap innenfor programmet what so ever egentlig. :x

 

Noe kunnskap har dere vel erhvervet dere? Hvis ikke, så får dere begynne å ta studiene litt mer seriøst, men det er kanskje litt sent nå?

Lenke til kommentar

Jeg sier ikke at du skal gjøre leksene mine heller, og når det kommer til å ta studiene mer seriøst så er det vel så skivebom som det kan bli ettersom at jeg ikke går på en IKT / Data linje, men en maskiningeniørlinje der dette er et tema som er brukt for å fylle opp timeplanen, og ikke er representert på eksamen en gang. Uansett, jeg fant ut av det etter hvert og kom opp med dette:

 

def konverter(n,b):

ut=[]

while not n==0:

m=n-(n/b)*b

ut.append(m)

n=(n/b)

ut.reverse()

return ut

 

Problemet er nå at jeg vil gjerne ha de reversert slik at jeg får de i en vanlig binær avlesning. Jeg la til ut.reverse for å få dette til, og den gjør noe med tallene, men koden du da får ut er ikke riktig. Hvis jeg dropper ut.reverse får jeg riktig kode, bare speilvendt. Noen som har noen ide om hvordan jeg kan klare å få snudd tallene riktig vei?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...