Tie koodariksi

Programmeringens grunder

Språk:

Kapitel 4: Upprepning

Meningen med programmering är att få datorn att upprepa samma sak automatiskt. Detta innebär att programmet ofta har en slinga som innehåller en kod att upprepa.

For-slingan

Följande program innehåller en for-slinga som upprepar tal:

for i in range(5):
    print(i)

När vi kör programmet skriver det ut följande rader:

0
1
2
3
4

Markeringen range(n) betyder att slingan går igenom de n första heltalen från noll, dvs. talen 0...n-1. Till exempel går slingan ovan genom talen 0...4 med hjälp av variabel i. Den kod som finns i slingan körs för varje tal. I detta fall är koden print(i), dvs. programmet skriver ut talet i.

Märk väl att koden i slingan är indragen, dvs. det finns tomt utrymme före den. Detta åstadkommer vi genom att trycka på tab-knappen i början av raden. Indragningen uttrycker vilken del av koden som ska upprepas i slingan. Om indragningen fattas fungerar koden inte på önskat sätt. Därför är det viktigt att indragningen är rätt gjord.

Du hittar tab-knappen här på tangentbordet:

Det fina med en slinga är att vi behändigt kan ändra vilka tal den går igenom. Vi kan till exempel ändra slingan så här:

for i in range(8):
    print(i)

Till följd av detta skriver programmet ut talen 0...7:

0
1
2
3
4
5
6
7

Andra slingor

Markeringen range(a,b) betyder att vi börjar med talet a och slutar precis före talet b. Till exempel skriver följande kod ut talen 1...5:

for i in range(1,6):
    print(i)

Programmet fungerar så här:

1
2
3
4
5

Markeringen range(a,b,c) betyder att talet ökar med c efter varje steg. Vi kan till exempel skriva ut jämna tal så här:

for i in range(4,13,2):
    print(i)
Programmet fungerar så här:
4
6
8
10
12
Vi kan också skriva ut tal från större till mindre genom att ge dem en negativ ökning:
for i in range(5,0,-1):
    print(i)
Programmet fungerar så här:
5
4
3
2
1

Möjligheterna med en slinga

Vi kan använda slingans variabel på det sätt vi vill innanför slingan. Till exempel skriver följande slinga ut både talet i och dess kvadrat i*i vid varje steg.

for i in range(1,6):
    print("kvadraten för talet",i,"är",i*i)

Programmets utskrift är följande:

kvadraten för talet 1 är 1
kvadraten för talet 2 är 4
kvadraten för talet 3 är 9
kvadraten för talet 4 är 16
kvadraten för talet 5 är 25

Å andra sidan kan vi även skapa en slinga som inte använder slingans variabel på något sätt, utan bara upprepar samma kod. Detta är fallet i följande program:

for i in range(5):
    print("Hejsan!")

Detta program skriver ut texten "Hejsan!" fem gånger.

Hejsan!
Hejsan!
Hejsan!
Hejsan!
Hejsan!

Uppgift 1 Olöst

Skriv ett program som skriver ut talen 1, 2, 3, ..., 100.

Skriv ditt program här:


Uppgift 2 Olöst

Skriv ett program som skriver ut jämna talen 2, 4, 6, ..., 100.

Skriv ditt program här:


Uppgift 3 Olöst

Skriv ett program som skriver ut udda talen 1, 3, 5, ..., 99.

Skriv ditt program här:


Uppgift 4 Olöst

Skriv ett program som skriver ut talen 100, 99, 98, ..., 1.

Skriv ditt program här:


Uppgift 5 Olöst

Skriv ett program som skriver ut talen 100, 97, 94, ..., 1.

Skriv ditt program här:


Uppgift 6 Olöst

Skriv ett program som skriver ut 100 rader, varannan rad apa och banan.

Skriv ditt program här: