Helsingin yliopisto / Tietojenkäsittelytieteen laitos / Ohjelmoinnin perusteet / Copyright © 2000 Arto Wikla.

581325-0 Introduktion till programmering, förhör 13.11.2000/AW

Skriv namnet på kursen och datumet för tenten, ditt namn, personnummer och din namnteckning på varje svarspapper.

Skriv varje svar på sitt eget papper!

  1. Svara kortfattat och koncist på de följande frågorna:

                                                                (12 poäng)
    
    

  2. Apparaten MinMax används till att registrera minimi- och maximitemperaturen. Temperaturer matas in i apparaten, och man kan när som helst fråga den, vilken den högsta respektive lägsta temperaturen är till dags dato. Då apparaten tas i bruk ställer den in 0,0 för både maximum och minimum. Man kan också nollställa apparaten senare. Man kan fråga apparaten om den är nollställd eller om man kan lita på dess utslag.

    Implementera apparaten i form av klassen MinMax, som förutom konstruktören har de följande accessoarerna:

                                                                (12 poäng)
    
    

  3. "Va-i-allvärlden e didär parametrarna och va e de fö skillnadmellan int-värdet och PikkuVarasto-objektet som parametrar?", frågar din vän dig då han hört på dina historier om kursen Introduktion till programmering. Din vän har programmerat så pass mycket att han känner till enkla variabler, uttryck och satser. Han har också förstått idéen med att kalla på metoder, men då han kommit till parametrar är det stopp. Hjälp din kompis att förstå vad det egentligen är fråga om då man använder parametrar, vad man har för nytta och glädje av dem. Skriv alltså en förklaring (högst 1 ark lång)Då svaret poängsätts tas den tilltänkta läsaren i beaktande. Skriv alltså inte för den som rättar tenten, som redan känner till saken, utan för den där kompisen!
                                                                (12 poäng)
    
    
    

  4. I proportionella val räknar man ut ett jämförelsetal (double) på följande sätt:

    • Den kandidat som fått mest röster i ett valförbund får det totala antalet röster som sitt jämförelsetal.
    • Den kandidat som fått näst mest röster får hälften av valförbundets antal röster som sitt jämförelsetal.
    • Den kandidat som fått tredje mest röster får en tredjedel av valförbundets antal röster som sitt jämförelsetal.
    • ...
    • Ett större jämförelsetal vinner över ett mindre.
    • Om två kandidater som tillhör samma valförbund får samma antal röster avgörs deras ställning med hjälp av lotter, och de får sina jämförelsetal på basis av den utlottade ordningsföljden.
    • Om två kandidater från olika valförbund har samma jämförelsetal avgörs deras ordningsföljd med lottdragning.

    Gör en modell av klassen Kandidat som åtminstone har attributen namn (String, inte-tom), valförbund (int, 1-10) och natalet röster (int, 0-). Attributen skall implementeras som klassens private fält.

    Skriv med hjälp av klassen Kandidat ett program som först frågar efter och kontrollerar 903 kandidaters data (namn, valförbund, antal röster). Sedan räknar programmet ut kandidaternas jämförelsetal.

    Till slut matar programmet ut 85 fullmäktige och 85 suppleanter med all sin data i jämförelsetalens ordning. Man blir alltså vald enligt jämförelsetalet. Lotten avgör då rösterna fördelats jämnt.

    Man kan använda följande praxis vid lottdragningen:

      if (Math.random() < 0.5) 
         // det första alternativet
      else 
         // det andra alternativet
    
                                                                (14 poäng)