#H?ndterer alle input fra bruker om kolonner, rad og tallrekka #Trenger ? f? inn kolonne, rad og tallrekke(liste med tall) #Tallrekke m? v?re en liste med int, ikke string #Lage en while som kaller p? andre metoder #Avslutter n?r bruker vil def main(): kolonner = int(input("Skriv inn kolonne\n")) rad = int(input("Skriv inn rad\n")) tallrekke = input("skriv inn en rekke med tall, med mellomrom imellom hvert tall\n").split() for teller in range(len(tallrekke)): tallrekke[teller] = int(tallrekke[teller]) fortsette = True while (fortsette): svar = input("Hva ?nsker du ? gj?re?(print, 2D, endre, finn, slutt)\n") if svar == "print": svar = input("2D eller vanlig liste?\n") if svar == "2D": write_2D_to_terminal(kolonner, rad, tallrekke) else: print(tallrekke) elif svar == "2D": print(make_2D(kolonner, rad, tallrekke)) elif svar == "endre": change_cell(kolonner, rad, tallrekke) elif svar == "finn": print(find_pair_odd(tallrekke)) elif svar == "slutt": fortsette = False #Tar inn 3 parametre: kolonne, rad og tallrekke(liste) #Returnerer en (ny) liste som inneholder lister (2D) #M? kalle p? check_valid() for ? sikre at antall elementer #stemmer med antall celler def make_2D(kol, row, digits): if (check_valid(kol, row, digits)): liste = []; i = 0; for x in range(kol): #For hver "kolonne", oppretter vi en tom liste nyListe = []; for y in range(row): #For antall tall i "rad", skal vi legge til elementer i lista nyListe.append(digits[i]); #Itererer gjennom tallrekka og legger til hvert element i+=1; #?ker telleren for ? komme til neste indeks liste.append(nyListe); return liste; else: print('Oppgi riktig mengde tall'); #Tar inn 3 parametre: kolonne, rad og tallrekke #Returnerer en boolean def check_valid(kol, row, digits): if kol*row == len(digits): return True else: return False #Printer ut en 2D liste rad for rad #Kaller p? make_2D for ? f? 2D-liste f?rst #Tar inn 3 parametre: kolonne, rad og tallrekke #Ingen returverdi def write_2D_to_terminal(kol, row, digits): new_list = make_2D(kol, row, digits) #i new_list lagrer vi en 2D-liste for i in range(len(new_list)): print("Rad",i+1, ":",new_list[i], "\n") #Tar inn en tallrekke som parameter (liste) #Tar inn input fra bruker om odde eller par #Itererer gjennom liste og finner om det er par- eller oddetall #Returnerer en liste med kun oddetall eller partall, ingen print #Her bruker vi modulo (%) til ? finne ut om et tall er partall eller ikke. #Dersom et tall er deleleig p? noe, vil % returnere 0. I dette tilfellet vil #x % 2 (leses "x modulo 2") returnere 0 dersom x er deleleig p? 2 (alts? partall). def find_pair_odd(kol, row, digits): list = [] svar = input("Skal du ha oddetall eller partall?") if svar =="oddetall": for i in digits: if i % 2 != 0: list.append(i) return list elif svar == "partall": for i in digits: if i % 2 == 0: list.append (i) return list else: print("Ugyldig input") #Tar inn 3 parametre: kolonne, rad og tallrekke(liste) #Sp?r om brukerinput, om de vil endre p? en vanlig liste eller 2D-liste #Tar inn indeks(er) p? der de vil Endre #Kaller p? make_2D for ? f? ut en 2D liste #Tar inn tallet som de skal endre til #Skriv returnerer endret liste def change_cell(kol, row, digit): answer = input("Vil du endre celle p? vanlig liste eller 2D liste?\n") if answer == "vanlig": print("Lista ser slik ut:") print(digit) index = int(input("skriv inn ?nsket indeks, mellom 0 og " + str((len(digit))-1)+" ")) change = int(input("Tast inn verdien du vil endre til: ")) old = digit[index] digit[index] = change print("Endret fra", old, "til", change) print("Lista ser n? slik ut:", digit) return digit elif answer == "2D": print("Lista ser slik ut:") write_2D_to_terminal(kol, row, digit) list_2d = make_2D(kol, row, digit) row = int(input("Tast inn ?nsker radnr\n")) col = int(input("Tast inn ?nsker kolonnenr\n")) change = int(input("Tast inn verdien du vil endre til: ")) old = list_2d[row][col] list_2d[row][col] = change print("Endret fra", old, "til", change) print("Lista ser n? slik ut:") write_2D_to_terminal(kol, row, digit) return list_2d main()