Lab 2

  1. Skriv en metod
    public static boolean tvåLika(int a,int b,int c)
    
    som returnerar true om minst två av talen a,b,c är lika, och annars false.

  2. Skriv en metod
    public static int miniMax(int[] a, int[] b)
    
    som returnerar det minsta av de två talen m och n, där m är det största talet i a och n är det största talet i b.

  3. Skriv ett program som beräknar och skriver ut det minsta heltalet k för vilket k*(k-1)*(k-2)*(k-3) är större än 101091.

  4. Skriv en metod
    public static int längsta(String[] a)
    
    som returnerar längden av den längsta strängen i arrayen a, eller 0 om arrayen a är tom. Om a har värdet null ska metoden returnera -1.

  5. Skriv ett program Konkatenera (som alltså är namnet på klassen som innehåller main) som när det exekveras skriver ut hopslagningen av de strängar som följer efter klassnamnet på kommandoraden. Exempelvis ska anropet
    java Konkatenera a b c Kalle Kajsa
    
    ge utskriften
    abcKalleKajsa
    

  6. Skriv en metod
    public static boolean tvåLika(String[] a)
    
    som returnerar true om det i arrayen a finns (minst) två strängar som är lika, och annars false.

  7. Skriv en metod
    public static double geoMedel(double[] a)
    
    som returnerar det geometriska medelvärdet av talen i a, under förutsättning att alla talen i a är större än 0. Om något tal är mindre än 0 ska metoden returnera -1. Med det geometriska medelvärdet av talen x1,..,xn menas (x)1/n, där x är produkten av de n talen. (Ledning: använd klassen java.lang.Math.)

  8. Skriv en metod
    public static String taBort(char a,String s)
    
    som returnerar den sträng som fås om man i strängen s tar bort alla förekomster av tecknet a. Anropet
    taBort('p',"Arbetsplatsombud")
    
    ska alltså returnera "Arbetslatsombud". Alla metoder i klassen String får användas.

  9. (Redovisning) Denna uppgift går ut på att beräkna och presentera en återbetalningsplan för studielånet. Användaren matar in sitt födelseår, startår för återbetalning, lånets ränta och storlek och får en återbetalningsplan utskriven. Klassen ska ha namnet Payback som i nedanstående exempel på en körning (I denna utskrift har jag klippt bort åren 2006-2026):
    >java Payback 1980 2004 3.1 150000
    
    Återbetalningsplan med (yyyy) : (belopp) kr
    2004 : 7014 kr
    2005 : 7155 kr
    ...
    2027 : 11061 kr
    2028 : 11282 kr
    >
    

    Argumenten till programmet är alltså...
    java Payback <Födelseår> <Startår> <Ränta> <Skuld>
    ...och ska skrivas i den ordningen på kommandoraden när programmet startas.

    Det årsbelopp som ska betalas varje år bestäms av skuldens storlek, räntesatsen (f.n. 3.1 %) för lånet och antalet betalningsår. Årsbeloppet ökar med två procent per år vid oförändrad ränta. Antalet betalningsår är 25 men återbetalningen ska avslutas det år personen fyller 60 år. D.v.s. Kalle börjar betala när han är 37 och får därför 23 år på sig att betala lånet.

    Utöver detta finns det en hel rad av regler och specialfall som styr återbetalningstakten som vi inte tar hänsyn till i denna laboration. Se CSNs regler för återbetalning om du är nyfiken på mer information.

    Samband mellan skuldbelopp, räntesats, antal återbetalningsår och förändringsfaktor för återbetalningsbeloppet:

    Skuldbelopp             s
    antal återbetalningsår  n
    Förändringsfaktor       f1 = 1,02
    Förändringsfaktor       f2 = 1 + räntesats/100 = 1 + 3/100 = 1,03
    
    Formel för att beräkna det första årsbeloppet a:

    Formeln kan användas rakt av i programmet utom i ett fall. Den beskriver en icke kontinuerlig funktion och programmet ska kunna hantera det specialfall som uppstår när f1 är lika med f2. Just i det fallet är
    a = f2 * s / n.

    Formel för att beräkna det n:te årsbeloppet a(n):
    a(n) = a * f1n-1
    T.ex. det tionde årsbeloppet a(10): a(10) = a * f110-1