Grundkurs i programmering, kurstent 19.10 2010/AW Skriv upptill på varje papper kursens namn och tentdatumet, samt ditt namn, studentnummer (eller personbeteckning) och din signatur. Varje svar (1, 2, 3) skall skrivas på ett skilt pappersark! Du får svara på finska, svenska eller engelska. Vid behov får du t.o.m. använda alla dessa språk, så länge ditt svar säkert är begripligt. 1. a) Ett konto med kredit kan vara positivt eller negativt. Endast hela euron förvaras på kontot. Implementera kreditkontot som klassen KrKo. KrKo-API: * public KrKo() skapar objektet KrKo, vars saldo är 0 euro från början. * public KrKo(int saldo) skapar objektet KrKo, vars utgångssaldo man ger. * Med accessorn insattning sätter man in pengar på kontot. * Med accessorn uttag tar man ut pengar från kontot. * Accessorn saldo ger kontots nuvarande saldo som sitt värde. b) En stiftelse har två konton. Det ena kontot är till för dess egna pengar, det andra för stödpengar från Penningautomatföreningen. Låt oss kalla kontona för "tillgångar" och "stöd". Stödkontot får aldrig vara negativt. Tillgångarkontot kan vara negativt. Om ett konto har ett negativt värde betyder det att stiftelsen är skyldig pengar, om det är positivt betyder det att stiftelsen har pengar. Programmera klassen Stiftelse för att förverkliga stiftelsen. Då du implementerar kontona måste du använda klassen KrKo från punkt a. Stiftelse-API: * public Stiftelse(int tillgangar, int stod) skapar objektet Stiftelse, för vilken kontonas startsaldon ges som parametrar. * Metoder getTillgangar, getStod och getBalans ger som sina värden stiftelsens kontoinformation, den sista anger stiftelsens helhetssituation, d.v.s. summan av kontona. * public void tillgangarforandring(int belopp) förändrar saldot för tillgångarkontot enligt parametern. * public boolean stodKommer(int belopp) höjer saldot på stödkontot enligt parametern; endast positivt stöd accepteras. Om Penningautomatföreningen försöker ta pengar av stiftelsen som "negativt stöd" förändrar metoden inte kontots saldo och utmatar värdet false, annars ger metoden värdet true. * public int overforStodtillTillgangar(int belopp) överför det belopp som ges som parameter från stödkontot till tillgångarkontot. Om det begärda beloppet inte finns på kontot, överförs så mycket man kan. Om parametern är negativ överförs ingenting - man kan ju inte börja kalla tillgångar för stöd heller. Som sitt värde ger metoden det överförda beloppet. * public String toString() ger som sitt värde en teckensträng i klartext som beskriver stiftelsens status. c) Illustrera hur man använder klassen Stiftelse genom att implementera klassen StiftelsePresentation, vars huvudprogram ger en mångsidig beskrivning av hur man använder klassen Stiftelse. Programmet behöver inte läsa någonting. (15 poäng) 2. Ge en tydlig förklaring av begreppen parameter, belastning, kapsling. Förklara ditt svar med exempel. (9 poäng) 3. Gör ett program som först frågar efter antalet heltal som skall inmatas, sedan läser heltalet till en tabell, och till slut erbjuder följande tjänst: Man inmatar ett tal åt gången till programmet och det reder ut om talet finns i tabellen. Man måste använda binärsökning för att finna dem. Du kan utgå ifrån att alla inmatningar är acceptabla. (12 poäng)