Wikisida, DD1380 HT21/VT22Javaprogrammering för Pythonprogrammerare: Uppgifterna

Wikisida
2021-06-16T09:52:29+02:00

Inlämningsuppgifter

Börja med att registrera dig på kurssidan i Kattis.

Läs sedan introduktionen till Java här och/eller här. Hjälp med att installera och köra java hittar du här. Instruktioner för att använda Java i Kattis finns här.

För godkänt på kursen krävs godkänt på uppgift 1 − 6 nedan. För den som vill ha ytterligare utmaning finns även de två extrauppgifterna 7 och 8.

OBS! Inlämningsuppgifterna ska göras individuellt. Man kan diskutera uppgifterna med sina kurskompisar, men det är absolut förbjudet att titta på någon annan students programkod, eller att visa sin kod för någon annan student. Detta kommer att betraktas som fusk! Alla insända bidrag kommer att plagiatkontrolleras. Se även EECSs hederskodex.

Notera också att uppgifterna har en deadline.

Testa gärna Hello World, för att se hur Kattis fungerar.

1. Boff.
Läs först om variabler, operatorer, uttryck och grundläggande kontrollstrukturer i Java., och sedan om in- och utmatning i Java, t.ex. här och här.

2. Sumsort
Arrays har metoder för sortering. Notera att talen i sekvensen kan vara upp till 10^6, inte 10^5 som det står i uppgiften, samt att summan kan bli upp till 10^10.

3. Ord till tal
Läs om klassen String, och andra verktyg för att hantera text.

4. Kommentarer För att läsa in all indata på bästa sätt kan man göra så här. Notera att listan över tillåtna skiljetecken ska vara:
(.,!?%/*’-=)

5. Almanackan
Läs först om klasser och objekt t.ex. här . För att lösa uppgiften, definiera en hjälpklass Appointment som representerar en inbokning. Denna klass bör implementera interfacet Comparable<Appointment> med metoden compareTo för att smidigt kunna jämföra vilken av två inbokningar som inträffar först. Man kan läsa mer om Comparable här och här, och mer om interface i allmänhet här.
Almanackan bör sedan representeras som en array av Appointment. Klassen Arrays tillhandahåller ett smidigt sätt att sortera arrayer med hjälp av metoden sort.

6. Kvadranter.
Ledning: För att dela upp en sträng med tal och punkter kan man använda String.split("\\.").

Notera att en av bilderna i Kattis har fel numrering på kvadranterna, så här ska det se ut:

7. Fältet
(Extrauppgift)

8. Fönster
(extrauppgift)
För den här uppgiften måste man tänka till lite för att få den att bli tillräckligt snabb. Hitta en algoritm som inte behöver behandla alla pixlar som ligger innanför redan behandlade fönster.