Helsingfors universitet / Institutionen för datavetenskap / 581258-1 Introduktion till programmering
Copyright © 1998 Arto Wikla. Detta läromaterial får endast användas av privatpersoner för studier. All övrig användning, kommersiell eller på övriga kurser är förbjuden.

581258-1 Introduktion till programmering: Mellanförhör 2, 17 december 1998/AW

Skriv på varje koncept kursens namn och datum för förhöret samt ditt namn, din födelsetid och din underskrift.

Du får i programmeringsuppgifterna använda dig av de hjälpmedel som finns i klassen Lue (Las).



  1. Förklara kort och exakt:
       primitiv typ (primitive type)
       referenstyp (reference type)
       överladdning (el. -lagring)  (overloading)
       ersättning (overriding)
       kompileringsenhet (compilation unit)
                                                                  (5 poäng)
    
    
    

  2. I ett visst spel har varje spelare ett namn, en beskrivning på en rollfigur, figurens godhet betecknat med ett heltal mellan -10 och 10 och figurens styrka betecknat med ett decimaltal mellan 0.0 och 1.0. Spelarens tyngd i "försvarandet av det goda" fås enligt formeln godhet * styrka

    a) Gör en modell för spelaren i en klass Spelare.

    b) Gör upp en biblioteksmetod public static void ordna. Metoden får som parameter en tabell med spelare och ordnar dem enligt ovan definierade tyngd i fallande ordning.

    c) Gör upp en parameterlös biblioteksmetod public static Spelare läsSpelare som ber användaren om en spelares data och returnerar ett objekt Spelare.

    d) Programmera en tillämpning som med hjälp av ovanstående metoder läser in data för olika spelare och skriver ut dem enligt ordningen i uppgift b). Biblioteksklassen förverkligas separat så att metoderna i punkterna b) och c) inte placeras i huvudprogramklassen. Avgör själv hur programmet vet hur många spelare som deltar.

                                                                    (8 poäng)
    
    

  3. En god vän på kursen Introduktion till programmering har inte riktigt förstått vad man menar med inladdning av en klass och skapande av ett objekt. Han har inte ens riktigt förstått varför det är viktigt att känna till dessa begrepp. Hjälp din vän genom att göra en skriftlig beskrivning. Kom ihåg att även exempel hjälper till vid inlärning. Vid bedömningen beaktas även den tilltänkta läsaren. Skriv alltså inte för korrigeraren utan för din fiktiva vän.
                                                                  (5 poäng)
    
    

  4. Du har i din användning klasserna Indatafil och Utdatafil för att läsa ock skriva textfiler. Klasserna har konstruktorerna Indatafil(String namn) och Utdatafil(String namn). Filens namn ges som parameter.

    Följande metoder läser och skriver en rad

      public String lasRad()
      public void skrivRad(String rad)
    
    Indatafilens slut betecknas med ett null-värde.

    Klasserna beaktar även undantag (exceptions): Om det sker ett fel, ger klasserna ett lämpligt felmeddelande och avbryter exekveringen av programmet.

    Gör upp ett program Modifiera. Programmet ber användaren om indatafilens namn, utdatafilens namn, om ett tecken (char) som skall ersättas och om en ersättande teckensträng (String). Programmet modifierar indatafilen så att det givna tecknet ersätts med den givna teckensträngen på alla ställen där tecknet förekommer. Resultatet skrivs ut i utdatafilen. Till slut berättar programmet även hur många tecken som ersatts.

    Programmet behöver inte självt behandla undantag, filhanteringsklasserna sköter dem.

                                                                  (8 poäng)
    










God Jul!