Tie koodariksi

Programmeringens grunder

Språk:

Kapitel 7: Villkor

Villkor har en viktig roll i programmering. Med hjälp av dem får man programmet att fungera på olika sätt i olika situationer beroende på variablernas värden. De vanligaste villkoren är följande:

villkorbetydelse
a == ba och b är lika stora
a != ba och b är inte lika stora
a < ba är mindre än b
a <= ba är mindre eller lika stor som b
a > ba är större än b
a >= ba är större eller lika stor som b

If-strukturen

Vi kan använda villkor med hjälp av if-strukturen. Detta är ett exempel på en kod med villkor:

if x == 5:
    print("Hejsan!")

Här är villkoret x == 5, vilket betyder att variabeln x måste vara 5. Om så är fallet skriver koden ut Hejsan! och annars gör den inget.

Vi kan också lägga till en else-gren som aktiveras om villkoret inte gäller:

if x == 5:
    print("Hejsan!")
else:
    print("Morjens!")

Om x nu är 5, skriver koden ut Hejsan! precis som förut, men i annat fall skriver den ut Morjens!.

Här följer ett exempel på en mer komplicerad if-struktur:

if x == 1:
    print("apa")
elif x == 2:
    print("banan")
elif x == 3:
    print("cembalo")
else:
    print("???")
Om x är 1 skriver koden ut apa, om x är 2 skriver koden ut banan och om x är 3 skriver koden ut cembalo. Om x ändå är något annat skriver koden ut ???.

Kombinera villkor

Vi kan skapa mer komplicerade villkor med hjälp av orden and och or.

Ordet and betyder att flera villkor ska gälla samtidigt. Till exempel kräver följande villkor att x är minst 2 och högst 5:

if x >= 2 and x <= 5:
    print("Morjens!")
Ordet or betyder däremot att åtminstone ett av villkoren bör gälla. Till exempel kräver följande villkor att x är minst 3 eller högst 7:
if x == 3 or x == 7:
    print("Morjens!")
Vi kan också använda parenteser för att förtydliga hur villkoren kombineras. Följande villkor kräver att x antingen är 7, eller också är x minst 2 och högst 5:
if x == 7 or (x >= 2 and x <= 5):
    print("Morjens!")

Villkor i slingor

När vi lägger ett villkor innanför en slinga kan vi få slingan att fungera på olika sätt beroende på vilken omgång slingan befinner sig i. Så är fallet med följande kod:
for i in range(1,9):
    if i%2 == 0:
        print("jämn",i)
    else:
        print("udda",i)
Här har räkneoperationen % använts, vilket betyder rest. Villkoret i%2 == 0 kräver att i:s rest med 2 är 0, dvs. att i är ett jämnt tal. Koden fungerar så här:
udda 1
jämn 2
udda 3
jämn 4
udda 5
jämn 6
udda 7
jämn 8

I följande uppgifter ska du utarbeta ett villkor som anknyter till variabel x. Till exempel kräver villkoret x == 5 att värdet för x är 5 och villkoret x%2 == 0 kräver att x är ett jämnt tal.

Uppgift 1 Olöst

Skriv ett villkor som kräver att variabel x är udda.

Villkor:


Uppgift 2 Olöst

Skriv ett villkor som kräver att variabel x är mellan 3...6.

Villkor:


Uppgift 3 Olöst

Skriv ett villkor som kräver att variabel x är inte mellan 3...6.

Villkor:


Uppgift 4 Olöst

Skriv ett program som skriver ut talen 1...100. Men om talet är delbart med 3, bör programmet skriva ut texten apa istället. De första raderna ska vara följande:

1
2
apa
4
5
apa
7
...

Skriv ditt program här:


Uppgift 5 Olöst

Skriv ett program som skriver ut talen 1...100 så att alla par av intilliggande tal har bytts. De första raderna ska vara följande:

2
1
4
3
6
5
...

Skriv ditt program här:


Uppgift 6 Olöst

Talföljden 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ... består av en 1, två 2, tre 3, etc.

Skriv ett program som skriver ut de första 100 talen i talföljden.

Skriv ditt program här:


Uppgift 7 Olöst

Talföljden 1, 1, 2, 1, 2, 3, 1, 2, 3, 4 består av följande delar: Skriv ett program som skriver ut de första 100 talen i talföljden.

Skriv ditt program här:


Uppgift 8 Olöst

Ett år är ett skottår om det är delbart med 4. Men om ett år är delbart med 100, är det ett skottår bara om det också är delbart med 400.

Skriv ett program som skriver ut alla skottår mellan 1800...2200.

Skriv ditt program här: