Temaer gruppetime uke 12 2021

Debugging og vanlige problemer i obligen

Noen erfaringer fra retting og problemer dere har hatt:

git

1 min introduksjon til git (de som er interessert kan sette seg inn i git p? egenh?nd)

N?stede lister, rask kode og et sidespor med numpy

Oppgave 1

Lag en funksjon lag_rutenett som tar bredde og hoyde som parametere. Funksjonen skal lage et rutenett som en n?stet liste der hver sub-liste er en rad i rutenettet (raden er "bredde" lang). Hver rute inneholder enten 0 eller 1 (med 50% sannsynlighet).

Ekstraoppgave: Lag en funksjon for ? skrive rutenettet til fil (velg format selv) og en funksjon for ? lese fra fil (p? formatet du har valgt).

Oppgave 2

Lag en funksjon antall_ikke_null(rutenett) som tar et rutenett og returnerer antallet ruter som ikke er 0.

Ektraoppgave: Lag ogs? en funksjon gjennomsnitt(rutenett) som finner gjennomsnittet.

Ekstraoppgave 2: Anta at du vil ha flere funksjoner som gj?r ting med et rutenett (printer det f. eks), ser du da noen ryddigere m?te ? strukturere koden din p? ?

Oppgave 3

Kall funksjonen antall_ikke_null 10000 ganger med samme rutenett som er 1000x1000 stort. Hvor lang tid tar alle disse kallene? Klarer du ? skrive kode som gj?r at det g?r raskere?

Du kan time koden slik:

import time

rutenett = lag_rutenett(1000, 1000)
start_tid = time.time()
# gj?r ting
slutt_tid = time.time()
print("Tid det tok:", slutt_tid-start_tid)

Oppgave 4:

Vi gj?r dette med numpy i stedet.

Hvilken annen fordel tror dere numpy har i tillegg til ? v?re raskere?

L?se st?rre problemer med objektorientering