Att tävla i programmering

Kvalet till programmeringsolympiaden 2019 har precis avslutats och vi har haft tre deltagare på skolan. Kvaltävlingarna är uppdelade i två, skolkvalet och onlinekvalet, två av tre elever deltog även i onlinekvalet.

Att tävla i programmering handlar om att lösa problem mer än programmering. För varje uppgift som skall lösas så finns det ”enkla” testfall och lite klurigare. För att klara av de klurigare testfallen så behöver man tänka till för att inte skapa begränsningar i sin kod eller skriva en algoritm som inte hinner ge det korrekta svaret inom rimlig tid.

När du väl har löst uppgiften, skrivit koden så att den fungerar så behöver detta också anpassas för den miljö där koden skall köras i. När vi pratar om programmeringsolympiaden så är miljön för att testa och rätta uppgifterna döpt till ”Kattis”. Kattis når du på följande url; https://po.kattis.com.

Uppgift 1

För den som vill testa hur Kattis fungerar kan skapa ett konto och sedan prova att ladda upp ett program som skall bedömas. Den enklaste uppgiften som finns tillgänglig är twosum som vi lärde oss i början av kursen programmering01. Svårigheten här är nog mer att kunna jobba med in- och output i Kattis. Kattis är lite kinkig och om något annat skrivs ut än just det korrekta svaret så kommer uppgiften inte att ge några poäng.

Nedan finns en startkod som du kan använda om du vill lämna in uppgifter till Kattis. Just denna startkod är uppbyggd för att mata in två tal med mellanrum mellan. Skall det matas in fler tal behöver du förbereda för detta, skall det matas in flera rader så gör du om inläsningen av en rad.

from sys import stdin
# Läser en rad, splittar den i en lista (tokens)
tokens = stdin.readline().split()   
# Gör om varje token/element till en variabel (välj rätt datatyp)
a = int(tokens[0])                  
b = int(tokens[1])
# Om flera rader skall läsas in.
# tokens = stdin.readline().split()
# c = int(tokens[0])

# beräkningar

# Utskrift, tänk på att göra det exakt som Kattis vill ha det!
print()

Mer info och hjälp om hur Python3 hanteras i Kattis finns i hjälpavsnittet.

Uppgiften

Skapa ett konto på Kattis, lös uppgiften twosum med hjälp av min startkod och skicka sedan in den för rättning av Kattis.

Uppgift 2

Oavsett om du nu har testat Kattis eller inte så finns det en mängd roliga uppgifter som du kan lösa. Att lämna in en lösning till Kattis ger tillfredsställelse om det är rätt men det kan ibland bli fel i någon eller några av testerna och då behöver du revidera koden. Det visar också på vikten av att testa den färdiga applikationen så att den verkligen fungerar som det är tänkt. Här listar jag ett gäng lämpliga uppgifter av lagom svårighetsgrad, känner du att du vill ha svårare uppgifter så finns det även sådana (jag lovar…).

Lämna ett svar

Din e-postadress kommer inte att publiceras.

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.