Modul 5 - Valg og løkker

Fra Hiofwiki

Gå til: navigasjon, søk

Her skal Gruppe 5 og Gruppe 6 legge ut løsningsforslag

Innhold

Gruppe 5 løsnings forslag

Del 1

Oppgave 1

    public static void main(String[] args) {
        
        String alderLest = JOptionPane.showInputDialog("Skriv inn alder:");
        
        int alder = Integer.parseInt(alderLest);
        
        if (alder<16)
            System.out.println("Er ikke gammel nok til å kjøre moped");
        else
            System.out.println("Er gammel nok til å kjøre moped");
    }

Oppgave 2

    public static void main(String[] args) {
        
        //Bruker skriver inn alder
        String alderLest = JOptionPane.showInputDialog("Skriv inn alder:");
        
        //Konverterer til desimal
        int alder = Integer.parseInt(alderLest);

        //Sjekker alder
        if (alder>=18)
            System.out.println("Du kan kjøre bil");
        else
            if (alder>=16)
                System.out.println("Kan kjøre moped");
            else
                if (alder>=1)
                    System.out.println("Kan gå eller sykle tråsykkel");
                else
                    System.out.println("Du er n00b");
    }

Oppgave 3

Class (oppgave3class)


/*
 * oppgave3class.java
 */

package modul05;

public class oppgave3class {
    
    //Deklareringer
    private int tall;
    
        //Konstruktør    
    public oppgave3class(int nyTall) {
        tall = nyTall;
    }
    
    //Sjekker om tallet er positivt
    public boolean erPositiv() {
        if (tall > 0)
            return true;
        else
            return false;
    }

    //Sjekker om tallet er høyere en et angitt tall
    public boolean erStorreEnn(int nyGrense) {
        if (nyGrense < tall)
            return true;
        else
            return false;
    }
    
    //Sjekker om tallet er innenfor angitt intervall
    public boolean innenforIntervall(int nedre, int ovre) {
        if ((tall < nedre) || (tall > ovre))
            return false;
        else
            return true;
    }
    
    //Sjekker om tallet er delelig på angitt tall
    public boolean erDelelig(int delesPaa) {
        int rest = tall%delesPaa;
        
        if (rest>0)
            return false;
        else
            return true;
    }
    
    //Sjekker om tallet er en bokstav i UNICODE-tabellen
    public boolean erBokstav() {
        if (
            ((tall >= 65) && (tall <= 90)) ||           //A til Z
            ((tall >= 97) && (tall <= 122)) ||          //a til z
            ((tall >= 197) && (tall <= 198)) ||         //Å og Æ
            ((tall >= 229) && (tall <= 230)) ||         //å og æ
            (tall == 216) ||                            //Ø
            (tall == 248)                               //ø
           )
            return true;
        else
            return false;
    }
    
    public boolean erPartall() {
        int rest = tall%2;
        
        if (rest>0)
            return false;
        else
            return true;
    }
}

Main (oppgave3main)


/*
 * oppgave3main.java
 */

package modul05;

import javax.swing.JOptionPane;

public class oppgave3main {
    
    /** Creates a new instance of oppgave3main */
    public oppgave3main() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        String tallLest = JOptionPane.showInputDialog("Skriv inn tall:");
        
        int tallKon = Integer.parseInt(tallLest);
        
        //Oppretter objekter
        oppgave3class tall = new oppgave3class(tallKon);
        
        //Sjekker om tallet er positivt
        System.out.println("Tallet er positivt: " + tall.erPositiv());
        
        //Sjekker om tallet er større enn angitt verdi
        System.out.println("Tallet er større: " + tall.erStorreEnn(11));
        
        //Sjekker om tallet er innenfor angitt verdi
        System.out.println("Tallet er innenfor intervallet: " + tall.innenforIntervall(5, 15));
        
        //Sjekker om tallet er delelig
        System.out.println("Tallet er delelig: " + tall.erDelelig(5));
        
        //Sjekker om tallet er en bokstav i UNICODE-tabellen
        System.out.println("Tallet tilsvarer en bokstav i UNICODE: " + tall.erBokstav());
        
        //Sjekker om tallet er et partall
        System.out.println("Tallet er et partall: " + tall.erPartall());
    }
}


Del 2

Oppgave 1 og 2

 public static void main(String[] args) {
        //Teller til 100
        for (int teller = 0; teller <100; teller ++ ){
         System.out.println(teller + 1);
          }

	//baklengs
        for (int teller = 101; teller >0; teller -- ){
         System.out.println(teller - 1);
        }
         //0.5
        for (double teller = 0; teller <100; teller ++ ){
         System.out.println(teller / 2);
    }


Oppgave 3

    public static void main(String[] args) {
        
        //Deklareringer
        int faktor1 = 1;
        int faktor2 = 1;
        
        //Skriver til skjerm
        for (faktor1 = 1; faktor1 <= 10; faktor1=faktor1+1) {
            for (faktor2 = 1; faktor2 <= 10; faktor2=faktor2+1) {
        System.out.println(faktor1 + "*" + faktor2 + "=" + faktor1*faktor2);
            }
        }
    }

Oppgave 4

    public static void main(String[] args) {
        
        //Deklareringer
        int faktor1;
        int faktor2;
        int radteller = 0;
        
        //Skriver til skjerm
        for (faktor1 = 1; faktor1 <= 10; faktor1=faktor1+1) {
            for (faktor2 = 1; faktor2 <= 10; faktor2=faktor2+1) {
                radteller++;
                if (radteller%10 == 0) {
                    System.out.println(faktor1 + "*" + faktor2 + "=" + faktor1*faktor2);
                    radteller = 0;
                }
                else {
                    System.out.print(faktor1 + "*" + faktor2 + "=" + faktor1*faktor2 + "\t\t");
                }
            }
        }
    }

Gruppe 6 løsnings forslag

Del 1

Oppgave 1&2

    public static void main(String[] args) {
    String mopedInn = JOptionPane.showInputDialog("Hvor gammel er du?");
    double mopedAlder = Double.parseDouble(mopedInn);
    if (mopedAlder >= 18)
    {
        JOptionPane.showMessageDialog(null, "Kan kjøre bil");
        
    }
    else if (mopedAlder >= 16) 
    {
        JOptionPane.showMessageDialog(null, "Er ikke gammel nok til å kjøre moped");
        
    
    }
    else {
        JOptionPane.showMessageDialog(null, "Kan gå eller sykle tråsykkel");
    }
    }

Oppgave 3

package oppgave3;

public class tallAnalyse {
    private double tall;
    
    /** Konstruktør */
    public tallAnalyse(double startTall) {
        tall = startTall;
    }
    //Metoder starter her
    
    //Metode for å hente tall
    
    public double hentTall(){
return tall;        
    }
    
    //Metode for å sette tall
    public void settTall(double nyttTall){
    tall = nyttTall;
    }
    
    //Metode for å sjekke om et tall er positivt
    public boolean erPositivt(){
        if(tall >= 0){
          return true; 
        }
        else {
            return false;
        }
    }
    
    //Metode for å sjekke om et tall er større enn et angitt tall
    public boolean erStorreEnn(double sammenlignTall){
        
        if (sammenlignTall < tall){
            return true;
        } else {
            return false;
        }
    }
    
    //Metode for å sjekke om et tall er innenfor et angitt intervall
    public boolean innenforIntervall(double nedreGrense, double ovreGrense){
        
        if (tall > nedreGrense && tall < ovreGrense) {
            return true;
        } else {
            return false;
            }
            
        }
    //Metode for å sjekke om et tall er delelig med et gitt tall
    public boolean erDelelig(double nevnerTall){
        if (tall%nevnerTall == 0) {
            return true;
        } else {
            return false;
        }
        }
    //Metode for å sjekke om et tall er en unicode-bokstav
    public boolean erUnicodeBokstav(){
        if ((tall <= 90 && tall >= 65) || (tall <= 122 && tall >= 97) || (tall == 230) || (tall == 248) || (tall == 198) || (tall == 216) || (tall == 197)) {
            return true;
        } else {
            return false;
        }
        
    }
    //Metode for å sjekke om et tall er et partall
    public boolean erPartall(){
        if (tall%2 == 0) {
            return true;
        } else {
            return false;
        }
    }
}

Oppgave 4

    public static void main(String[] args) {
        
       //ber brukeren skrive inn navn, konverterer dette til små bokstaver og tar vekk mellomrom
   String navn = JOptionPane.showInputDialog("Skriv fornavnet ditt her");
   String smaaNavn = navn.toLowerCase();
   String trimNavn = smaaNavn.trim();
   // sjekker om navnet tilhører listen over fine navn
   if(trimNavn.equals("thomas") || trimNavn.equals("morten") || trimNavn.equals("harald") || trimNavn.equals("gro") || trimNavn.equals("kristin") || trimNavn.equals("karoline"))
   {
       JOptionPane.showMessageDialog(null, trimNavn +", det var et fint navn!");
   }  else {
        JOptionPane.showMessageDialog(null, trimNavn +", det var et stygt navn!");
    }
    }

Oppgave 5

Klassen


package oppgave5;
 
//ny klasse
public class Person {
    private String navn;
    private String adresse;
    private String personnummer;
 
//konstruktør
    public Person(String startNavn, String startAdresse, String startPersonnummer) {
        navn = startNavn;
        adresse = startAdresse;
        personnummer = startPersonnummer;
        
    }
    //metoder
    
    //metode for sammenlikning av personer
    public boolean equals(Object enPerson)
    {
        Person p = (Person)enPerson;
        
        Boolean like = (personnummer == p.personnummer);
        return like;
    }
}

test klient

    public static void main(String[] args) {
        
//lager to nye person-objekter
        Person p1 = new Person("thomas", "majorstien 5", "3232");
        Person p2 = new Person("kristin", "majorstien 21", "3232");
        
//sammenlikner person-objektene
        if (p1.equals(p2))
        {
            System.out.println("Dette er samme person");
        } else {
            System.out.println("Dette er ikke samme person");
        }
    }

Oppgave 6

Klassen


package oppgave6;

public class merke {
 private String navn;
 private double vekt;
 private double pris;
 private double prisPerGram;
    
//konstruktør
    public merke(String startNavn, double startVekt, double startPris) {
navn = startNavn;
vekt = startVekt;
pris = startPris;
prisPerGram = pris/vekt;
    }
    //metoder
    //metode for å hente navn
    public String hentNavn()
    {
        return navn;
    }

    //metode for å sammenligne pris per gram
    public boolean sammenlignPrisPerGram(Object etMerke)
    {
        merke m = (merke)etMerke;
        if (prisPerGram > m.prisPerGram)
        {
            return true;
                   } else { 
            return false;
                   }
    }
}

Test klient


package oppgave6;

public class oppgave6test {
    
    public oppgave6test() {
    }
    
    public static void main(String[] args) {
        
 //lage merke A og B
 merke m1 = new merke("A", 450, 35.90);
 merke m2 = new merke("B", 500, 39.50);
 
//hente navn
 
String navn1 = m1.hentNavn();
String navn2 = m2.hentNavn();

//sammenligne kilopris og rapportere hvem som er billigst
 if(m1.sammenlignPrisPerGram(m2) == true)
 {
     System.out.println("Merke " + navn1 + " er billigere enn merke " + navn2);
 } else {
     System.out.println("Merke "+ navn2 + " er billigere enn merke " + navn1);
    
 }
 
       
    }
    
}

Del 2

Oppgave 1

    public static void main(String[] args) {
        //setter telleren lik -1
        int teller = -1;
        //gir teller +1 og skriver ut resultatet så lenge teller <100
        while (teller<100) {
            teller = teller+1;
            System.out.println(teller);
        }
    }

Oppgave 2

    public static void main(String[] args) {
        //Fra 100 til 0.
        int teller1=101;
        while (teller1>=1) {
            teller1 = teller1-1;
            System.out.println(teller1);
        }
        //0-50 med 0.5 intervaller.
        double teller2=-0.5;
        while (teller2<50.5) {
            teller2=teller2+0.5;
            System.out.println(teller2);
        }
        //tall delelige med 3
        int teller3=1;
        while (teller3<100) {
            teller3=teller3+2;
            System.out.println(teller3);
            teller3++;
        }
        //partall
        int teller4=0;
        while (teller4<101) {
            if (teller4%2 ==0) {
                System.out.println(teller4);
            }
            teller4++;
           }
        //Oddetall
int teller2 = 1;
      while (teller2 <100)  
      {
    if( teller2%2 == 1){
        System.out.println(teller2);
    } 
    teller2++;
    
    }
//annenhvert tall positivt og negativt
int teller3 = 0;
        while(teller3 < 100)
        {
    if (teller3%2 ==0)
    {
        System.out.println(teller3);
    } else {
        System.out.println(-teller3);
        }
    teller3++;
        }
}

Oppgave 3+4

    public static void main(String[] args) {
   int faktor1;
   int radteller = 0;
           for(faktor1 = 1; faktor1 <= 10; faktor1=faktor1+1)
           {
           int faktor2;
           for (faktor2 = 1; faktor2 <= 10; faktor2=faktor2+1)
           {radteller++;
            if(radteller%10 == 0)
            {
                System.out.println(faktor1 + "*" + faktor2 + "=" + (faktor1*faktor2));
           } else if ((faktor1 == 10))
           {
               System.out.print(faktor1 + "*" + faktor2 + "= "+ (faktor1*faktor2) + "\t");
           } else
           {
                System.out.print(faktor1 + "*" + faktor2 + "= "+ (faktor1*faktor2) + "\t\t");
           }
           }
           }

    }