Distansakademin

Övningar java

Nivå 1 (nybörjare)

  1. Skriv ett program som skriver ut “Hello, World!” på konsolen.
  2. Skapa en variabel av typen int och tilldela den ett värde. Skriv sedan ut värdet på konsolen.
  3. Skapa två variabler av typen int och addera dem tillsammans. Skriv sedan ut resultatet på konsolen.
  4. Skriv ett program där användaren kan mata in två heltal och programmet skriver ut summan av dessa tal.
  5. Skapa två variabler av typen double och multiplicera dem med varandra. Skriv sedan ut resultatet på konsolen.
  6. Skapa en variabel av typen String och tilldela den ett namn. Skriv sedan ut “Hej, [namn]!” på konsolen.
  7. Skriv ett program som kontrollerar om ett tal är jämnt eller udda.
  8. Skapa en array med fem heltal och skriv ut dem på konsolen.
  9. Skriv ett program som beräknar medelvärdet av de fem talen i en array.
  10. Skriv ett program som läser in en textsträng och räknar antalet tecken.
  11. Skapa en for-loop som skriver ut talen 1 till 10 på konsolen.
  12. Skapa en while-loop som skriver ut talen 10 till 1 på konsolen.
  13. Skapa en metod som tar emot två tal som parametrar och returnerar deras summa.
  14. Skapa en metod som tar emot en array som parameter och returnerar det största talet i arrayen.
  15. Skapa en metod som tar emot en sträng som parameter och returnerar strängen baklänges.

Nivå 2 (FizzBuzz)

  1. Skriv ett program som skriver ut alla tal mellan 1 och 100. Om talet är jämnt ska programmet skriva ut “Fizz” istället för talet. Om talet är delbart med 5 ska programmet skriva ut “Buzz” istället för talet. Om talet är både jämnt och delbart med 5 ska programmet skriva ut “FizzBuzz” istället för talet.

Projektidéer (nybörjare)

  1. En enkel kalkylator: Skapa en kalkylator som kan utföra grundläggande matematiska operationer som addition, subtraktion, multiplikation och division.

  2. En temperaturomvandlare: Bygg en applikation som kan omvandla temperaturer från Celsius till Fahrenheit och vice versa.

  3. En uppgiftshanterare: Skapa en applikation som kan hjälpa användaren att organisera och spåra sina uppgifter och göra-listor.

  4. En textbaserad spelautomat: Implementera en textbaserad spelautomat där användaren kan satsa och snurra hjulen för att försöka vinna pengar.

  5. En enkel chattapplikation: Bygg en klient-server chattapplikation där användare kan skicka meddelanden till varandra över nätverket.

  6. En bankapplikation: Utveckla en enkel bankapplikation där användaren kan skapa konto, göra insättningar, uttag och visa saldo.

  7. Ett enkelt biljettbokningssystem: Skapa en applikation som låter användaren boka biljetter till olika evenemang eller resor.

  8. En enkel URL-förkortare: Bygg en applikation som tar en lång URL och genererar en kortare och unik URL som kan användas för att hänvisa till den ursprungliga länken.

  9. Ett enkelt ordspel: Implementera ett ordspel där spelaren får gissa ett slumpmässigt ord baserat på ledtrådar.

  10. Ett enkelt fotoalbum: Skapa en applikation där användaren kan lägga till och visa bilder i ett fotoalbum.


Nivå 3 (proffs)

  1. Skapa en klass som representerar en cirkel med instansvariabler för radien och metoder för att beräkna omkretsen och arean.
  2. Skriv en rekursiv funktion för att beräkna det n:te Fibonacci-talet.
  3. Implementera en enkel sorteringsalgoritm (t.ex. bubblesort eller insertion sort) för att sortera en array med heltal i stigande ordning.
  4. Skapa en klass som representerar en bok med instansvariabler för titel, författare och utgivningsår. Implementera metoder för att jämföra bokobjekt baserat på titel och utgivningsår.
  5. Skriv en metod som tar in en sträng och returnerar den omvända strängen utan att använda inbyggda Java-funktioner.
  6. Implementera en algoritm för att beräkna det största gemensamma delaren (GCD) av två heltal.
  7. Skapa en klass som representerar en bank, med möjlighet att skapa kunder och hantera bankkonton. Implementera metoder för att sätta in och ta ut pengar från konton.
  8. Implementera en algoritm för att hitta och ersätta alla förekomster av en viss sub-sträng i en given sträng.
  9. Skriv en metod som tar in två sorterade arrayer och kombinerar dem till en ny sorterad array utan att använda inbyggda Java-funktioner.
  10. Skapa en klass som representerar en spelkortlek, med metoder för att blanda korten och dra ett slumpmässigt kort.
  11. Implementera en algoritm för att räkna ut pi med hjälp av en Monte Carlo-simulering.
  12. Skriv en metod som tar in en textsträng och räknar antalet förekomster av varje unikt ord i strängen.
  13. Skapa en klass som representerar en binärträdstruktur, med metoder för att lägga till och ta bort noder samt söka efter en specifik nod.
  14. Implementera en algoritm för att räkna ut den n:te primtalen.
  15. Skapa en klass som representerar en enkel grafdstruktur, med metoder för att lägga till och ta bort noder och kanter samt hitta kortaste vägen mellan två noder med hjälp av Dijkstras algoritm.

Nivå 4 (expert)

  1. Implementera en algoritm för att lösa det klassiska problemet med “Hanoi-tornen” för en given antal brickor och torn.
  2. Skapa en algoritm för att hitta den längsta gemensamma delsträngen mellan två givna strängar.
  3. Implementera en algoritm för att hitta alla permutationer av en given sträng.
  4. Skapa en klass som representerar en graf med metoder för att hitta den kortaste vägen mellan alla par av noder med hjälp av Floyd-Warshalls algoritm.
  5. Implementera en algoritm för att konvertera ett binärt sökträd till en sorterad dubbelriktad länkad lista.
  6. Skriv en metod för att räkna ut determinantvärdet för en given kvadratisk matris.
  7. Implementera en algoritm för att lösa det berömda “Knapsack-problemet” – att hitta den mest värdefulla kombinationen av föremål som kan packas i en begränsad vikt.
  8. Skapa en klass som implementerar en mycket effektiv datastruktur för att hantera en mängd unika värden och utföra operationerna “lägg till”, “ta bort” och “finns” i konstant tid.
  9. Implementera en algoritm för att lösa problemet med att placera åtta drottningar på ett schackbräde utan att de kan hota varandra.
  10. Skapa en algoritm för att lösa problemet med “resenärssäljaren” – att hitta den kortaste vägen som passerar genom alla givna städer exakt en gång.
  11. Implementera en algoritm för att sortera en stor lista med heltal på ett effektivt sätt utan att använda någon av de klassiska sorteringsalgoritmerna som mergesort eller quicksort.
  12. Skriv en metod för att beräkna klyvningspunkten för två givna cirkulära länkade listor (om de överlappar varandra).
  13. Implementera en algoritm för att hitta den längsta vägen i en viktad riktad acyklisk graf (topologisk ordning och användning av dynamisk programmering kan vara användbara här).
  14. Skapa en klass som implementerar en “min-heap” datastruktur och dess relaterade operationer förstoring, infogning och borttagning av minsta elementet.
  15. Implementera en algoritm för att lösa problemet med “longest common subsequence” mellan tre givna strängar.

Nivå 5 (forskare)

  1. Skapa en algoritm för att faktorisera stora primtal med hjälp av kvantberäkningar och Shor’s algoritm.
  2. Implementera en algoritm för att hitta den kortaste cykeln i en ocyklisk riktad graf.
  3. Skriv en metod för att generera en slumpmässig labyrint och hitta den kortaste vägen mellan två givna punkter i labyrinten.
  4. Implementera en distribuerad algoritm för att hitta den största oberoende mängden i en stor nätverksgraf.
  5. Skapa en algoritm för att lösa problemet med “Travelling Salesman” i en distribuerad miljö med flera agenter.
  6. Implementera en deep learning-modell för att känna igen och klassificera objekt i realtid från en videoström.
  7. Skriv en algoritm för att lösa problemet med “Maximum Clique” i en stor ocyklisk graf med miljontals noder och kanter.
  8. Implementera en effektiv algoritm för att lösa ekvationssystem med många variabler och okända.
  9. Skapa en algoritm för att hitta den mest optimala planeringen för resurser i en stor produktionslinje med flera restriktioner och mål.
  10. Implementera en algoritm för att lösa problemet med “String Subsequence” med många mönster och variabler som kan matchas.
  11. Skriv en metod som kan motsvara komplexa musikaliska algoritmer för att generera unika musikstycken från givna musikaliska regler och parametrar.
  12. Implementera en algoritm för att detektera och hantera konflikter mellan parallella transaktioner i en distribuerad databas.
  13. Skapa en optimeringsalgoritm för att lösa problemet med optimal resursallokering för energibesparing i stora nätverkssystem.
  14. Implementera en algoritm för att hitta den mest optimala vägen för att utföra flera parallella beräkningar på en superdator med många processorer och resurser.
  15. Skriv en metod för att lösa problemet med automatisk översättning mellan flera språk med hjälp av djupa neurala nätverk och stora språkmodeller.