Göm menyn

TDDC77 Objektorienterad programmering

Extramaterial


Uppgifter

Här följer ett antal övningsuppgifter. Om inget annat anges ska du skriva ett program som löser uppgiften. De flesta uppgifter kommer från föreläsningarna. Det är starkt rekommenderat att du förstår och provar på alla uppgifter.

  • [loggning och kompilering] Från föreläsning 1: Koppla dig mot universitets server och kompilera ett "hello world" Java programm:
    1. öppna en ssh session mot "remote-und.ida.liu.se"
    2. välj/skappa en "demo" katalog, naviguera ditt
    3. skappa ett Java programm som skriver ut ett meddelande (använd dig av emacs). Du kan kolla upp denna "hello world"
    4. kompilera och kör programmet
    5. introducera några fel i programmet (e.g, ta bort en semikolon ";")
    6. försök att kompilera och läs meddelandet från kompilatorn
    7. repetera de sista två stegen ett antal gånger
  • [Strings, Java API]: Från föreläsning 3:
    1. öppna länken till Java standard API:et.
    2. hitta beskrivningen för Klassen (class) String.
    3. ladda ner filen Str.java
    4. för varje string metod (method) XXXX som finns i filen Str.java i form av "kursnamn.XXXX(...)":
      1. läs om metoden XXXX i String:s sidan av API:et
      2. kompilera filen Str.java och kör programmet
      3. ändra på programmet och repetera tills att du tycker att du har förstått vad metoden gör.
  • [Scanner, Java API]: Från föreläsning 3:
    1. öppna länken till Java standard API:et.
    2. hitta beskrivningen för Klassen (class) Scanner.
    3. ladda ner filen Scan.java
    4. för varje string metod (method) XXXX som finns i filen Str.java i form av "scan.XXXX(...)":
      1. läs om metoden XXXX i Scanner:s sidan av API:et
      2. kompilera filen Str.java och kör programmet
      3. ändra i programmet och repetera tills att du tycker att du har förstått vad metoden gör.
    5. ladda ner filen ScanStandard.java
    6. kompilera filen ScanStandard.java och kör programmet
    7. ändra i programmet och repetera tills att du tycker att du har förstått hur man använder sig av Scanner för att läsa in typer som String, int, double och boolean.
    • [Arrayer]: (Fö 4) Gå igenom, förstå, kompliera och kör:
      1. "arrayer och slingor"
      2. ändra på programmerna, prova med andra typer och kombinationer
    • [Slingor]: Från föreläsning 4:
      1. Skapa ett Java program som använder en "while" loop för att skriva ut multiplikations tabellen för 5, från 1 till 100 (dvs. 1x5= 1, 2x5=10, etc).
      2. Använd dig av en "do while" loop istället.
      3. Använd dig av en "for" loop istället.
    • [Skuggning]: (Fö 5) Gå igenom, förstå, kompliera och kör:
      1. "Scope 1"
      2. "Scope 2"
      3. ändra på programmerna, prova med andra typer och kombinationer
  • [metoder, rekursion, command line]: Från föreläsning 5,6,7:
    1. Skapa ett Java program som heter "Factorial" och som har två metoder:
      1. den vanliga metoden "void main(String[] args)", och
      2. en till metod "int factorial(int n)"
    2. Man ska anroppa programmet med "java Factorial x" där "x" är ett heltal
    3. main metoden ska skicka heltalet till "factorial" metoden, sen ska main skriva ut resultatet.
    4. "factorial" metoden ska jämföra argumentet "n" mot 1. Om den är mindre returnerar den 1.
    5. annars ska den returnera "n * factorial (n-1)"
    6. prova med olika heltal. Ni ska få 1 för 1, 2 för 2, 6 för 3, 24 för 4, 120 för 5, etc
  • [ADT]: Från föreläsning 7:
    1. Implementera en stack med:
      1. En "void push(String)" metod,
      2. En "String pop()" metod,
      3. En "boolean isEmpty()" metod,
      4. Du kan anta att stacken kommer ha "MAX" String värden, där "MAX" än en konstant som du kan ändra på
    2. Implementera en kö med:
      1. En "void enqueue(String)" metod,
      2. En "String deque()" metod,
      3. En "boolean isEmpty()" metod,
      4. Du kan anta att stacken kommer ha "MAX" String värden, där "MAX" än en konstant som du kan ändra på
      5. I din implementation, oavset körningen, man ska alltid kunna spara upp till "MAX" element i din kö,

  • Sidansvarig: Ahmed Rezine
    Senast uppdaterad: 2016-09-29