Programmeringsolympiaden

Programmeringsolympiaden är Sveriges största gymnasietävling i datorbaserad problemlösning. Varje år koras Sveriges gymnasiemästare i programmering, och det tas också ut ett landslag till de internationella tävlingarna. Programmeringsolympiaden 2022/23 består av olika delar.

Uppvärmningstävling

Under vecka 45 & 46 kommer det finnas en uppvärmningstävling för att träna och förbereda sig inför de olika kvaltävlingarna. Detta är andra året som man kör en uppvärmningstävling och den kommer pågå mellan 7 – 20 nov, länk till årets kvaluppvärmningen. Uppvärmningstävlingen för 2022 hittar du här.

Skolkvalet

Vi brukar varje år ha ett skolkval och det kommer genomföras måndagen 21 november klockan 08.30 – 12.30 för de elever som är intresserad. All tävlingsprogrammering kommer utgå ifrån Classroom: Tävlingsprogrammering så om du är intresserad klicka på länken och gå med i detta Classroom.

Onlinekvalet

Efter skolkvalet så kommer det finnas ett onlinekval, detta kval pågår 24 – 27 november. Onlinekvalet hittar du här.

Vidare tävlan

Skolkvalet och onlinekvalet är tillsammans samt var och en för sig uttagningstävlingar till vidare tävlingar. Först så är det ett slutkval i Sverige och de duktigaste eleverna här kommer sedan att få representera Sverige i olika internationella tävlingar. Nytt för i år är att det anordnas specifika tävlingar för tjejer.

Att tävla i programmering

Att tävla i programmering handlar lika mycket om att lösa problem som att programmera. Eftersom det redan finns en bra miljö via programmeringsolympiaden så kommer vi använda oss av denna, systemet heter Kattis och du hittar det här. Har du inte redan skapat ett konto så gör du det enkelt.

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.

Sedan en tid tillbaka så godkänner Kattis ett enklare sätt att ta emot data till Python. Då använder du istället input() på samma sätt som du är van vid när vi programmera konsollapplikationer.

# Inläsning från Kattis
tokens = input().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 = input().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. Vill du använda ett annat programmeringsspråk så finns hjälp om samtliga av Kattis godkända programmeringsspråk här, där finner du också lite allmän info om rättning och bedömning av uppgifters svårighet.

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…). Samtliga tillgängliga uppgifter finns länkade under ”Länkar”.

  1. Äpplen & päron, skolkval 2021. [variabler]
  2. Tunnelbaneplatser, skolkval 2018. [selektioner]
  3. Personnummer, skolkval 2021. [selektioner + stränghantering]
  4. Kuber, första uppgiften i skolkvalet 2019. [loopar]
  5. Köpa matta, skolkval 2018. [loopar]
  6. Hundraeleva kr, skolkval 2021. [loopar]

Länkar

Här följer ett gäng nyttiga länkar;

  • Programmeringsolympiadens hemsida.
  • Samtliga uppgifter som går att lösa via Kattis.