Hopp til innhold

Oppgaver og aktiviteter

Statistikk – blandede oppgaver

Regn ulike typer oppgaver med statistikk her.

Du kan bruke GeoGebra til å løse disse oppgavene. Om du trenger hjelp med GeoGebra, kan du se lenka nederst på sida. Løsningene finner du under alle oppgavene.

ST-101

Marie har sommerjobb der hun tar med turister på turer med hest og kjerre. Det er plass til 6 passasjerer, men det er ikke alltid kjerra er full når hun skal kjøre. Ei uke hadde hun de følgende passasjertallene på turene:

3, 5, 5, 6, 6, 4, 6, 5, 6, 3, 6, 4, 5, 6, 6, 2, 4, 3, 5, 6, 4, 6, 5, 6

a) Finn gjennomsnitt, median og typetall i dette tallmaterialet.

b) Hvilket av sentralmålene synes du forteller mest om hvor mange passasjerer Marie hadde på turene sine?

c) Finn variasjonsbredde, kvartilbredde og standardavvik.

d) Tegn et boksplott over dataene. Kommenter utseendet på boksplottet, og forklar hvorfor det blir slik.

ST-102

Zelda står på kjøpesenteret en lørdag ettermiddag og teller hvor mange kunder som går inn i en av klesbutikkene hvert minutt. På det travleste var det 8 kunder som gikk inn i løpet av ett minutt, men det var også noen minutter der det ikke kom noen. Zelda står i én time og samler resultatene i tabellen nedenfor.

Antall kunder per minutt

Frekvens

0

4

1

6

2

10

3

8

4

9

5

7

6

6

7

6

8

4

a) Hva kaller vi en slik tabell?

b) Finn gjennomsnitt, median og typetall i dette tallmaterialet.

c) Finn variasjonsbredde, kvartilbredde og standardavvik. Tegn boksplott over dataene.

d) Hvordan kan Zelda rapportere inn resultatene fra undersøkelsen til butikkeieren på en god måte?

Tips til oppgave d)

Tallene Zelda har kommet fram til, gjelder i utgangspunktet for en enkelt time på lørdagen. Hun bør oppgi mellom hvilke klokkeslett målingene ble gjort. I tillegg til å presentere de ulike statistiske størrelsene kan hun regne ut hvor mange kunder som var innom i løpet av timen, og hun kan for eksempel framstille frekvenstabellen i et søylediagram.

I presentasjonen av de statistiske størrelsene bør hun si at hun har funnet det vanlige standardavviket. Dersom tallene skal brukes til å si noe generelt om besøket på lørdager, bør egentlig utvalgsstandardavviket brukes i stedet for det vanlige standardavviket.

ST-103

Sondre hadde sommerjobb som turguide opp til Storfossen. Tabellen nedenfor viser hvor mange turister som var med hver uke denne sommeren.

Uke nr.

25

26

27

28

29

30

31

32

33

Antall turister

14

29

37

41

40

32

49

36

21

a) Finn gjennomsnittet og medianen i dette tallmaterialet.

b) Hvorfor ble det ikke spurt om typetallet i oppgave a)?

c) Finn variasjonsbredden, kvartilbredden og standardavviket. Tegn boksplott.

ST-104

Tabellen viser antall feriereiser med fly nordmenn gjorde i årene 2014–2020. Tallene er hentet fra statistikkbanken til Statistisk sentralbyrå.

År

2014

2015

2016

2017

2018

2019

2020

Antall feriereiser
med fly
(millioner)

6,84

6,49

6,27

6,71

6,17

6,60

2,02

a) Hva er det gjennomsnittlige antallet feriereiser med fly for disse årene?

b) Hva er medianen?

c) Finn variasjonsbredden, kvartilbredden og standardavviket. Tegn boksplott. Kommenter utseendet til boksplottet.

d) Lag et linjediagram som viser hvordan det gjennomsnittlige antallet feriereiser med fly per person har utviklet seg. Kommenter utviklingen.

e) Gjør oppgaven på nytt ved å inkludere nyere tall på antall flyreiser. Se tabellen 06921: Reiseundersøkelsen (ssb.no). Hvordan utvikler antallet feriereiser med fly seg etter at det sank mye i 2020?

Tips til oppgave e)
  • Velg statistikkvariabelen "Reiser".

  • Velg kvartalene 2021K1 og nyere.

  • Under "Transportmåte" velger du "Fly".

  • Under "Reisetype" velger du "Korte feriereiser i alt" og "Lange feriereiser i alt".

  • Trykk på "Vis tabell".

  • Velg "Lagre data som ..." og "Excel". Åpne regnearket i et vanlig regnearkprogram, og legg sammen tallene så du får totalt antall feriereiser med fly for hvert år. Kopier tallene over i regnearkdelen til GeoGebra.

ST-105

Tabellen nedenfor viser omsetningen per innbygger i detaljhandelen i kroner for årene 2010 til 2020. Tallene er hentet fra statistikkbanken til Statistisk sentralbyrå.

År

2010

2011

2012

2013

2014

2015

2016

2017

2018

2019

2020

Kr/innbygger

71 919

73 229

74 916

75 802

78 244

80 180

82 379

83 667

84 896

86 295

97 052

a) Hva er den gjennomsnittlige omsetningen per innbygger i detaljhandelen for disse årene?

b) Hva er medianen?

c) Finn variasjonsbredden, kvartilbredden og standardavviket.

d) Hvordan har omsetningen per innbygger i detaljhandelen i kroner for årene 2010 til 2020 utviklet seg? Kommenter resultatene.

e) Bruk regresjon og lag to matematiske modeller for hvordan detaljhandelen har utviklet seg i dette tidsrommet. La x være antall år etter 2010.

f) Hva vil omsetningen per innbygger i detaljhandelen i kroner være i 2030 med disse modellene? Hvilken modell tror du er mest riktig?

Tips til oppgaven

For å svare bedre på hvilken modell som er mest riktig, kan du finne nyere tall for detaljhandelen hvis det er mulig. Se "Kilder" nederst på sida.

ST-106

Kine drev kiosk på hjemplassen to uker sommeren 2020. Hun registrerte dagsomsetningen i en tabell.

Mandag

Tirsdag

Onsdag

Torsdag

Fredag

Lørdag

Søndag

Uke 28

740

800

910

635

1090

350

810

Uke 29

630

480

290

605

1230

410

900

Tallene er i kroner.

Beskriv omsetningen ved hjelp av sentralmål og spredningsmål.

(Dette er oppgave 13 fra eksempeloppgavene fra eksamen i 1P-Y, publisert av Utdanningsdirektoratet desember 2020.)

ST-107

Tabellen viser antall overnattinger i Trøndelag i forbindelse med feriereiser i årene 2019 og 2020. Tallene er hentet fra statistikkbanken til Statistisk sentralbyrå, se kilder nederst på sida.

Jan.

Feb.

Mars

April

Mai

Juni

Juli

Aug.

Sept.

Okt.

Nov.

Des.

2019

33 887

47 158

52 998

52 944

55 554

98 655

155 400

113 976

66 960

61 665

60 367

48 132

2020

46 238

62 002

23 145

3 351

13 470

72 550

218 211

117 474

66 914

71 125

32 044

24 373

a) Bruk sentralmål og spredningsmål til å sammenlikne tallene for de to årene.

b) Lag et diagram der du sammenlikner tallene for de to årene. Prøv å bruke diagrammet til å forklare at spredningen er større på tallene i 2020 enn i 2019. Hva kan denne spredningen skyldes?

c) Finn tilsvarende tall for 2021 og kommenter utviklingen.

ST-111

Vi skal lage et program som regner ut gjennomsnittet i et datamateriale der vi har en rekke med rådata (for eksempel alle karakterene på en prøve i en klasse). Brukeren av programmet skal taste inn tallene.

a) Lag en algoritme for et slikt program.

Tips til oppgaven

Tenk gjennom hvordan du vil at brukeren av programmet skal taste inn tallene. Det enkleste er kanskje at brukeren trykker entertasten mellom hvert tall. Alternativt må det legges inn for eksempel et komma mellom hvert tall dersom alle tallene skal skrives inn på én gang.

b) Skriv programkoden til algoritmen og test den.

c) Skriv algoritme og lag et tilsvarende program der dataene er ordnet i en frekvenstabell slik at brukeren først taster inn de mulige måleverdiene og deretter frekvensene. Programmet skal regne ut gjennomsnittet.

d) Utvid programmet slik at det kan finne noen av de andre statistiske størrelsene.

Løsninger

ST-101 a)

Vi kan kopiere tallene direkte inn i regnearkdelen i GeoGebra. Da havner tallene for eksempel cellene A1 til og med X1. Vi lager lista med kommandoen

data = A1:X1

Så bruker vi kommandoene "gsnitt", "Median" og "Typetall", alle med argumentet "data", og vi gir resultatet logiske navn.

gjennomsnittet = gsnitt(data)

medianen = Median(data)

typetallet = Typetall(data)

Fasit

Gjennomsnittet er 4,88.

Medianen er 5.

Typetallet er 6.

ST-101 b)

Her spørs det hva man vil legge vekt på. Gjennomsnittet og medianen er ganske nær hverandre. Vi kan si at i gjennomsnitt hadde Marie 5 passasjerer. Samtidig er det absolutt flest turer med full kjerre, altså 6 passasjerer. Så det går også an å hevde at "den typiske" turen er med 6 passasjerer.

ST-101 c)

Her bruker vi kommandoene "Maks", "Min", "Q3", "Q1" og "stavvp". Vi bruker "stavvp" (vanlig standardavvik) siden vi har tilgang på alle tallene i tallmaterialet.

variasjonsbredden = Maks(data) - Min(data)

kvartilbredden = Q3(data) - Q1(data)

standardavviket = stavvp(data)

Fasit

Variasjonsbredden er 4.

Kvartilbredden er 2.

Standardavviket er 1,2.

ST-101 d)

Vi tegner boksplottet med kommandoen

BoksPlott(2,1,data,false)

Boksplott der det lengst til venstre er en loddrett strek for antall passasjerer lik 2. Det er et rektangel som går fra antall passasjerer lik 4 til antall passasjerer lik 6. Gjennom rektangelet går det en loddrett strek for antall passasjerer lik 5. Det er ingen loddrett strek til høyre for rektangelet. Illustrasjon.

Her stikker det ikke ut noe på høyre side av boksen som markerer kvartilbredden. Det er fordi øvre kvartil er lik den største verdien (6). Årsaken til det er at Marie har hatt mange nok turer med full kjerre, altså 6 passasjerer.

Filer

ST-102 a)

Dette er en frekvenstabell.

ST-102 b)

Her er det kanskje enklest å bruke regnearkdelen i GeoGebra og skrive antall kunder per minutt i cellene A2 til A10 og frekvensene i cellene B2 til B10. Skriv overskrifter i cellene A1 og B1.

Så lager vi lister av tallene.

tall = A2:A10

frekvenser = B2:B10

Deretter bruker vi kommandoene "gsnitt" og "Median", denne gangen med to lister som argument ("tall" og "frekvenser"). Typetallet er det tallet som har den største frekvensen, og dette leser vi rett av tabellen.

gjennomsnittet = gsnitt(tall,frekvenser)

medianen = Median(tall,frekvenser)

Fasit

Gjennomsnittet er 3,85.

Medianen er 4.

Typetallet er 2.

ST-102 c)

Her bruker vi kommandoene "Maks", "Min", "Q3", "Q1" og "stavvp" for vanlig standardavvik.

variasjonsbredden = Maks(tall) - Min(tall)

kvartilbredden = Q3(tall, frekvenser) - Q1(tall, frekvenser)

standardavviket = stavvp(tall, frekvenser)

Fasit

Variasjonsbredden er 8.

Kvartilbredden er 4.

Standardavviket er 2,29.

Kommandoen for boksplottet er

BoksPlott(2,1,tall,frekvenser,false)

Filer

ST-103 a)

Gjennomsnittet er 33,22.

Medianen er 36.

Se ellers den nedlastbare GeoGebra-fila.

ST-103 b)

I dette tallmaterialet er det ingen tall som forekommer flere enn én gang. Derfor blir det meningsløst å snakke om typetallet her.

Vi kan også si at i et tallmateriale der antallet målinger er mye mindre enn antall mulige måleverdier, vil det stort sett bare være én forekomst av tallene. Dersom det tilfeldigvis skulle være to forekomster av et tall, vil ikke det gi noe nyttig informasjon om tallmaterialet om vi oppgir dette som typetall.

ST-103 c)

Variasjonsbredden er 35.

Kvartilbredden er 15,5.

Standardavviket er 10,09.

Filer

ST-104 a)

Vi skriver tallene inn i regnearkdelen til GeoGebra og lager lista "data" av tallene. Så bruker vi kommandoen gsnitt(data). Gjennomsnittlig antall feriereiser med fly er 5,87 millioner.

ST-104 b)

Med kommandoen Median(data) får vi at medianen for antall feriereiser med fly er 6,49 millioner.

ST-104 c)

Vi bruker kommandoene

Maks(data)-Min(data)
Q3(data)-Q1(data)
stavvp(data)

og får dette resultatet:

Variasjonsbredden for antall flyreiser er 4,82.
Kvartilbredden for antall flyreiser er 0,54.
Standardavviket for antall flyreiser er 1,59.

Kommandoen

BoksPlott(2,1,data,false)

gir boksplottet nedenfor.

Boksplott der det lengst til venstre er en loddrett strek for antall flyreiser i millioner lik 2. Det er et rektangel som går fra antall flyreiser i millioner lik cirka 6,2  til antall flyreiser i millioner lik cirka 6,7. Gjennom rektangelet går det en loddrett strek for antall flyreiser i millioner lik cirka 6,5. Helt til høyre er det en loddrett strek for antall flyreiser i millioner lik cirka 6,8. Illustrasjon.

Boksplottet blir veldig "skeivt" siden alle tallene unntatt ett er samlet mellom 6 og 7.

ST-104 d)

Linjeediagrammer kan vi lage ved å kopiere tallene inn i et vanlig regnearkprogram som Excel eller Google Regneark.

Søylediagram over tallene i tabellen i oppgaven. Illustrasjon.

Filer

Filer

Filer

ST-105 a)

Den gjennomsnittlige omsetningen per innbygger i detaljhandelen er 80 780 kroner.

ST-105 b)

Medianen for omsetningen per innbygger i detaljhandelen er 80 180 kroner.

ST-105 c)

Variasjonsbredden er 25 133 kroner.

Kvartilbredden er 9 980 kroner.

Standardavviket er 6 905 kroner.

ST-105 d)

Vi ser at omsetningen per innbygger har økt jevnt og trutt med ett til to tusen fra år til år unntatt fra 2019 til 2020. Da økte den plutselig med mer enn 10 000. Årsaken kan være at folk reiste mindre og handlet mer det første året av koronapandemien.

ST-105 e)

Vi lager en ny kolonne for antall år etter 2010 i regnearkdelen i GeoGebra og bruker regresjonsverktøyet på denne kolonnen og kolonnen med tallene for detaljhandelen.

Vi velger lineær og eksponentiell modell i regresjonsverktøyet. En lineær modell gir funksjonen

gx=2070,31x+70428

En eksponentiell modell gir funksjonen

hx=70943·1,03x

ST-105 f)

Året 2030 betyr at  x=20. Vi regner ut g20 og h20 i algebrafeltet eller med CAS og får

g20 = 111 835h20 = 117 592

Omsetningen vil være 111 835 kroner med en lineær modell og 117 592 med en kroner med en eksponentiell modell.

Grafen til funksjonen g av x er lik 2070,31 x pluss 70428 og grafen til funksjonen h av x er lik 70943,14 multiplisert med 1,03 opphøyd i x er tegnet for x-verdier mellom 0 og 24. Punktene som de to funksjonene er basert på, er også tegnet inn. Punktet på g med koordinatene 20 og 111835 og punktet på h med koordinatene 20 og 117592 er tegnet inn. Illustrasjon.

Hvis vi ser bort fra tallet for 2020, har utviklingen vært nokså jevn. Begge modellene spår at det skal øke mer enn dette. Slik sett vil den lineære modellen kanskje passe best i tida framover. Tallet for 2020 er kanskje påvirket av at det var koronapandemi, og at folk brukte mer penger på å handle enn å reise. At det skal fortsette å øke like mye i årene etter 2020, virker litt usannsynlig.

Filer

ST-106

I denne oppgaven er det ikke noe eksakt svar på hva som må være med for å få full uttelling på en prøve eller en eksamen. Løsningen nedenfor er et forslag til hva som kan gjøres.

Vi skriver inn tallene i regnearkdelen i GeoGebra i cellene A1 til A14 og lager lister både av hver uke og av begge ukene sett under ett. Så bruker vi diverse statistiske kommandoer for å finne de ulike størrelsene. Nedenfor har vi avskrift av algebrafeltet i GeoGebra av dataene for de to ukene sett under ett.

data = A1:A14
→ {740, 800, 910, 635, 1090, 350, 810, 630, 480, 290, 605, 1230, 410, 900}

antall = Lengde(data)
→ 14

gjennomsnitt = gsnitt(data)
→ 705.71

kvartilbredde = Q3(data) – Q1(data)
→ 420

median = Median(data)
→ 687.5

standardavvik = stavvp(data)
→ 264.79

sum = Sum(data)
→ 9880

variasjonsbredde = Maks(data) – Min(data)
→ 940

Totalt sett for de to ukene ble salget på 9 880 kroner med et standardavvik på 265 kroner. Gjennomsnittlig salg per dag var 706 kroner. Salgstallene for en dag har variert med 940 kroner.

Avskrift av algebrafeltet for tallene for uke 28

data = A1:A7
→ {740, 800, 910, 635, 1090, 350, 810}

antall = Lengde(data)
→ 7

gjennomsnitt = gsnitt(data)
→ 767.14

kvartilbredde = Q3(data) – Q1(data)
→ 275

median = Median(data)
→ 800

standardavvik = stavvp(data)
→ 213.67

sum = Sum(data)
→ 5335

variasjonsbredde = Maks(data) – Min(data)
→ 740

Avskrift av algebrafeltet for tallene for uke 29

data = A8:A14
→ {630, 480, 290, 605, 1230, 410, 900}

antall = Lengde(data)
→ 7

gjennomsnitt = gsnitt(data)
→ 649.29

kvartilbredde = Q3(data) – Q1(data)
→ 490

median = Median(data)
→ 605

standardavvik = stavvp(data)
→ 296.99

sum = Sum(data)
→ 4545

variasjonsbredde = Maks(data) – Min(data)
→ 940

Vi ser at salget var best i uke 28 med et totalt salg på 5 335 kroner. Se tallet "sum". Samtidig er spredningen i salgstallene størst i uke 29. Både kvartilbredde, variasjonsbredde og standardavvik er størst i uke 29. Av tallene for variasjonsbredde ser vi at salget har variert med 940 kroner i uke 29 og 740 kroner i uke 28. Vi ser også at medianen for uke 29 ligger nesten 200 under medianen for uke 28, mens gjennomsnittet bare ligger cirka 110 under. Det tyder på at i uke 29 var det flere dager med lavt salg og noen få dager med høyt salg. Det passer godt med at salgsrekorden for de to ukene var fredagen i uke 29, mens dagen med lavest salg var onsdagen i den samme uka.

Medianen for uke 28 ligger over gjennomsnittsverdien mens det er omvendt for uke 29. Det betyr at i uke 28 er det noen få dager med veldig lavt salg som trekker gjennomsnittet ned, mens det er motsatt for uke 29.

Oppgaven kan også løses ved å bruke verktøyet for analyse av en variabel i GeoGebra.

ST-107 a)

Vi legger tallene inn i GeoGebra og finner følgende statistiske tall:

Gjennomsnitt

Median

Standardavvik

Variasjonsbredde

2019

70 641

57 961

33 301

121 513

2020

62 575

54 120

55 945

214 860

Vi ser av gjennomsnittet at det var flere overnattinger i forbindelse med feriereiser i 2019 enn i 2020. Samtidig er standardavviket og variasjonsbredden større for 2020 enn for 2019. Det betyr at variasjonen mellom de 12 månedene i 2020 var stor.

Filer

ST-107 b)

Vi velger å lage et søylediagram over tallene. Da er det kanskje enklest å bruke et vanlig regnearkprogram. Vi har brukt regnearket vi kan laste ned fra Statistisk sentralbyrå på denne statistikken som utgangspunkt.

Søylediagram over tallene i tabellen i oppgaven. Illustrasjon.

Vi ser at i april 2020 var det svært få overnattinger. Tre måneder senere, i juli, har vi det største antallet overnattinger i en måned for de to årene. Det tyder på at spredningen var større i 2020 enn i 2019.

Årsaken til det er nok at i store deler av mars og april 2020 var Norge nedstengt på grunn av koronapandemien. Samme sommer var det ikke mulig å gjøre feriereiser til utlandet, noe som førte til at folk reiste på ferie hjemme. Dette kan forklare det høye antallet overnattinger i Trøndelag i juli 2020.

Filer

ST-111 a)

Forslag til algoritme som tar utgangspunkt i at hvert tall mates inn separat:

  • Skriv til skjermen: "Dette programmet regner ut gjennomsnittet av de tallene som blir tastet inn."

  • Skriv til skjermen: "Skriv inn ett og ett tall og trykk enter for hvert tall. Skriv inn "x" når du er ferdig."

  • Så lenge vi ikke er ferdige med å skrive inn tall:

    • Skriv til skjermen: "Nytt tall: "

    • Ta imot input fra brukeren.

    • Hvis det som kommer inn er et tall, legg til tallet i en sum og øk en teller for antall tall med 1.

    • Hvis ikke (og brukeren har skrevet en "x"), er vi ferdige.

  • Del summen på antall tall.

  • Skriv til skjermen "Gjennomsnittet av tallene er <resultatet av utregningen i forrige punkt>."

Kommentar: Dersom du velger å skrive inn alle tallene samtidig med for eksempel komma mellom hvert tall, må du lage en rutine for å plukke ut tallene fra den lange tekststrengen vi da får. Dette gjør vi i den alternative løsningen nedenfor.

Alternativ løsning

Løsningen tar utgangspunkt i at alle tallene skrives inn på én gang med komma (,) mellom hvert tall (husk at desimaltall må skrives med punktum i Python).

  • Skriv til skjermen: "Dette programmet regner ut gjennomsnittet av de tallene som blir tastet inn."

  • Skriv til skjermen: "Skriv inn tallene med ett komma mellom hvert tall."

  • Ta imot lista med tall fra brukeren og lagre i en tekstvariabel.

  • Gå gjennom tekstvariabelen og legg det som står mellom hvert komma (altså hvert tall) til ei liste.

  • Legg sammen tallene i lista og del på antall tall.

  • Skriv til skjermen: "Gjennomsnittet av tallene er <resultatet av utregningen i forrige punkt>."

ST-111 b)

Kode som tar utgangspunkt i at tallene skrives inn ett og ett:

python

1print("Dette programmet regner ut gjennomsnittet "
2    "av de tallene som blir tastet inn.")
3print("Skriv inn ett og ett tall og trykk enter for hvert tall."
4    " Skriv inn 'x' når du er ferdig.")
5summen = 0           # skal bli summen av alle tallene
6antall = 0           # skal inneholde antall tall
7ferdig = False       # brukes for å stoppe innlesingen av tall
8           
9while ferdig == False:         # så lenge ferdig har verdien False
10    tall = input("Nytt tall: ")
11
12    if tall != "x":         # hvis tallet ikke er "x", dvs. et "ekte" tall
13        summen = summen + float(tall)  # legger tallet til summen
14        antall = antall + 1           # øker antall tall med 1
15    else:         # hvis tallet er en "x"    
16        ferdig = True         # med dette vil while-løkka stoppe
17
18gjsnitt = summen/antall     # regner ut gjennomsnittet
19print(f"Gjennomsnittet av tallene er {gjsnitt:.2f}.")

Alternativ løsning

Koden nedenfor tar utgangspunkt i at alle tallene skrives inn på én gang med komma mellom hvert tall. Til å skille tallene og legge dem i ei liste, bruker vi funksjonen "split", se nederst på sida.

python

1print("Dette programmet regner ut gjennomsnittet "
2    "av de tallene som blir tastet inn.")
3print("Skriv inn alle tallene med komma ',' imellom. Unngå mellomrom.")
4
5tekstinput = input()          # tar imot alle tallene
6    # konverterer tekststrengen til liste med tall (som fortsatt er tekst)
7talliste = tekstinput.split(",")
8
9for i in range(len(talliste)):
10    talliste[i] = float(talliste[i])    # konverterer alle tallene til ekte tall
11
12gjsnitt = sum(talliste)/len(talliste)   # regner ut gjennomsnittet
13print(f"Gjennomsnittet er {gjsnitt:.2f}.")
ST-111 c)

Forslag til algoritme som tar utgangspunkt i at tallene skrives inn ett og ett:

  • Skriv til skjermen: "Dette programmet regner ut gjennomsnittet av tall sortert i en frekvenstabell."

  • Skriv til skjermen: "Skriv inn ett og ett av de ulike forekomstene av måleverdier og trykk enter for hvert tall. Skriv inn "s" når du er ferdig."

  • Skriv til skjermen: "Nytt tall: "

  • Ta imot tallet fra brukeren. Hvis tallet er et tall: Legg til tallet i ei liste.

  • Repeter de to forrige punktene over helt til brukeren skriver en "s".

  • Skriv til skjermen: "Skriv inn en og en av frekvensene og trykk enter for hvert tall. Skriv inn "s" når du er ferdig."

  • Skriv til skjermen: "Ny frekvens: "

  • Ta imot tallet fra brukeren. Hvis tallet er et tall: Legg til tallet i ei liste.

  • Repeter de to forrige punktene over helt til brukeren skriver en "s".

  • Multipliser sammen tilhørende verdier for måleverdi og frekvens, summer disse og del på summen av frekvensene i frekvenslista.

  • Skriv til skjermen: "Gjennomsnittet er <svaret fra forrige punkt>."


Forslag til kode i Python:

python

1print("Dette programmet regner ut gjennomsnittet "
2"av tall sortert i en frekvenstabell.")
3print("Skriv inn ett og ett av de ulike forekomstene " 
4"av måleverdier, og trykk enter for hvert tall."
5" Skriv inn 's' når du er ferdig.")
6tall = 0
7talliste = []    # lager ei tom liste
8           # tar imot tall helt til det skrives en "s"
9while tall != "s":
10  tall = input("Nytt tall: ")
11  if tall != "s":             
12    tall = float(tall)
13    talliste.append(tall)  # legger tallet til i tallista
14
15frekvens = 0
16frekvensliste = []    # lager ei tom liste
17           # tar imot tall helt til det skrives en "s"
18while frekvens != "s":
19  frekvens = input("Ny frekvens: ")
20  if frekvens != "s":             
21    frekvens = float(frekvens)
22    frekvensliste.append(frekvens)  # legger tallet til i frekvenslista
23    
24summen = 0
25for i in range(len(frekvensliste)):
26  summen = summen + talliste[i] * frekvensliste[i]  # multipliserer sammen verdi og frekvens
27    
28gsnitt = summen/sum(frekvensliste)    # regner ut gjennomsnittet
29print(f"Gjennomsnittet av tallene er {gsnitt:.2f}.")

Alternativ løsning

Vi tar utgangspunkt i den alternative løsningen i oppgave b). Først skriver vi inn de ulike forekomstene av måleverdier. Så skriver vi inn frekvensene. Algoritmen kan da se slik ut:

  • Skriv til skjermen: "Dette programmet regner ut gjennomsnittet av tall sortert i en frekvenstabell."

  • Skriv til skjermen: "Skriv inn de ulike måleverdiene med ett komma mellom hvert tall."

  • Ta imot tallene og konverter dem til ei liste.

  • Skriv til skjermen: "Skriv inn frekvensene med ett komma mellom hvert tall."

  • Ta imot tallene og konverter dem til ei liste.

  • Multipliser sammen tilhørende verdier for måleverdi og frekvens, summer disse, og del på summen av frekvensene i frekvenslista.

  • Skriv til skjermen: "Gjennomsnittet er <svaret fra forrige punkt>."

Forslag til kode:

python

1print("Dette programmet regner ut gjennomsnittet "
2    "av tall sortert i en frekvenstabell.")
3              # tar imot alle tallene
4tallstreng = input("Skriv inn måleverdiene med ett komma mellom hvert tall: ")
5frekvensstreng = input("Skriv inn frekvensene med ett komma mellom hvert tall: ")
6        # konverterer strengene til lister med tall (som fortsatt er tekst)
7talliste = tallstreng.split(",")
8frekvensliste = frekvensstreng.split(",")
9        # konverterer alle tallene til ekte tall
10for i in range(len(talliste)):
11    talliste[i] = float(talliste[i])
12for i in range(len(frekvensliste)):
13    frekvensliste[i] = float(frekvensliste[i])
14        # multipliserer sammen måleverdi og frekvens
15summen = 0
16for i in range(len(frekvensliste)):
17    summen = summen + talliste[i] * frekvensliste[i]
18  
19gjsnitt = summen/sum(frekvensliste)    # regner ut gjennomsnittet
20
21print(f"Gjennomsnittet er {gjsnitt:.2f}.")

Relatert innhold

Her får du en kort innføring i strenger og strengesøk.

Kilder

Statistisk sentralbyrå (u.å.). Statistikkbanken. Omsetning i varehandel. Hentet 27. januar 2021 fra https://www.ssb.no/statbank/table/04776

Statistisk sentralbyrå (u.å.). Statistikkbanken. Overnattingar. Hentet 27. januar 2021 fra https://www.ssb.no/statbank/table/08403/

Statistisk sentralbyrå (u.å.). Statistikkbanken. Reiseundersøkelsen. Hentet 27. januar 2021 fra https://www.ssb.no/statbank/table/06921/

CC BY-SASkrevet av Bjarne Skurdal, Tone Hadler-Olsen, Olav Kristensen og Stein Aanensens.
Sist faglig oppdatert 09.09.2022

Læringsressurser

Statistikk