Kosedyret Skrevet 22. april 2013 Del Skrevet 22. april 2013 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. 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
zotbar1234 Skrevet 22. april 2013 Del Skrevet 22. april 2013 (endret) Takker for alle svar. int() kan ta det den andre veien (nyttig for testing). "".split()/join() for å sette dele opp/sette sammen strenger. Resten får du presentere tilstrekkelig detaljert pseudokode for først. Endret 22. april 2013 av zotbar1234 Lenke til kommentar
Lycantrophe Skrevet 23. april 2013 Del Skrevet 23. april 2013 (endret) 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 23. april 2013 av Lycantrophe Lenke til kommentar
Kosedyret Skrevet 24. april 2013 Forfatter Del Skrevet 24. april 2013 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 Lenke til kommentar
Lycantrophe Skrevet 24. april 2013 Del Skrevet 24. april 2013 Jeg kommer ikke til å gjøre leksene dine. Lenke til kommentar
SkoMedHull Skrevet 24. april 2013 Del Skrevet 24. april 2013 Google er din venn. Et søk på "base converter algorithm" burde gi deg løsningen på dette. Lenke til kommentar
Dundas Skrevet 24. april 2013 Del Skrevet 24. april 2013 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
Kosedyret Skrevet 25. april 2013 Forfatter Del Skrevet 25. april 2013 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
Lycantrophe Skrevet 25. april 2013 Del Skrevet 25. april 2013 (endret) return ut[ ::-1 ] Fjern ut.reverse Endret 25. april 2013 av Lycantrophe Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå