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 2024, året finalen går, består av olika delar.
Uppvärmningstävling 2024
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 tredje året som man kör en uppvärmningstävling och den kommer pågå mellan 9 – 20 nov, länk till årets kvaluppvärmningen. Tidigare uppvärmningstävlingar finns för 2023 och 2022.
Skolkvalet 2024
Vi brukar varje år ha ett skolkval men datum och tid för skolkvalet 2024 är ännu inte bestämt. 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 2024
Efter skolkvalet så kommer det finnas ett onlinekval, detta kval pågår 23 – 26 november. Onlinekvalet hittar du här. Innan kvalets alla uppgifter släpps så finns det en uppgift att göra.
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”.
- Äpplen & päron, skolkval 2021. [variabler]
- Tunnelbaneplatser, skolkval 2018. [selektioner]
- Personnummer, skolkval 2021. [selektioner + stränghantering]
- Kuber, första uppgiften i skolkvalet 2019. [loopar]
- Köpa matta, skolkval 2018. [loopar]
- 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.
- Ett dokument med tips i text och länkar till mer info för olika typer av uppgifter som ingår i tävlingsprogrammering.
- Matistjati XVII har en kanal på YouTube där det finns lösningar på tidigare tävlingar inom programmeringsolympiaden.
- Kodsport Sverige har en kanal på YouTube där det finns föreläsningar och genomgångar av gamla tävlingars lösningar.