Modul 7 - Databaser

Fra Hiofwiki

Gå til: navigasjon, søk

Gruppe 9


Oppgave 1.

/*
 * oppgave1.java
 * Created on 26. oktober 2007, 09:53
 */

package Modul7;

import java.util.Random;

/**
 * @author tjallis
 */
public class oppgave1 {
    
    /** Creates a new instance of oppgave1 */
    public oppgave1() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        /**
         *Opretter tabell heltall, med plass til 10
         */
        int heltall[] = new int[10];
        /**
         *Fyller tabellen med tilfeldige verdier
         */
        for(int i = 0; i < heltall.length; i++){
            Random ran = new Random();
            heltall[i] = ran.nextInt(101);
        }
        
        /**
         *Skriver ut verdiene i tabellen forlengs
         */
        for(int i = 0; i < heltall.length; i++){
          System.out.println(heltall[i]);
        }
        
        /**
         *Skriver ut verdiene i tabellen baklengs
         */
        for(int i=(heltall.length-1); i >=0; i--){
            System.out.println(heltall[i]);
        }
        
        /**
         *Går gjennom tabellen for å finne den minste verdien
         */
        int min = 10000;        
        for(int i = 0; i < heltall.length; i++){

            if(heltall[i] < min){
                min = heltall[i];
            }
        }
        
        System.out.println("\nMinste tallet er: " + min);
        
        /**
         *Går gjennom tabellen for å finne den største verdien
         */
        int max = -10000;
        for(int i = 0; i < heltall.length; i++){
            if(heltall[i] > max){
                max = heltall[i];
            }
        }
        
        System.out.println("\nStørste taller er: " + max);
    }
    
}

Oppgave 2.

/*
 * oppgave2.java
 * Created on 26. oktober 2007, 10:31
 */

package Modul7;

import java.util.Random;

/**
 * @author tjallis
 */
public class oppgave2 {
    int heltall[], iMax, iMin;
    
    /**
     *Konstruktør
     */
    public oppgave2(int length) {
        heltall = new int[length];
    }
    
    /**
     *Metode som fyller tabellen med tilf. verdier, innen et gitt interval
     */
    public void fillInterval(int startIMax, int startIMin){
        iMax = startIMax;
        iMin = startIMin;
        Random ran = new Random();
        for(int i = 0; i < heltall.length; i++){
            heltall[i] = iMin + ran.nextInt(iMax-iMin);
        }
    }

    /**
    *Metode som returnerer minste verdi
    */
    public int getMin(){
        int min = (iMax+1);        
        for(int i = 0; i < heltall.length; i++){

            if(heltall[i] < min){
                min = heltall[i];
            }
       }   
       return min; 
    } 
    
    /**
     *Metode som returnerer høyeste verdi
     */
    public int getMax(){
        int max = (iMin-1);
        for(int i = 0; i < heltall.length; i++){
            if(heltall[i] > max){
                max = heltall[i];
            }
        }
        return max;
    }
    
    /**
     *Metode som returnerer sum
     */
    public int getSum(){
        int sum = 0;
        for(int i = 0; i < heltall.length; i++){
            sum = sum + heltall[i];
        }
        return sum;
    }
    
    /**
     *Metode som returnerer gjennomsnitt
     */
    public int getAvg(){
        int sum = getSum()/heltall.length;
        return sum;
    }
    
    /**
     *Metode som returnerer hyppigheten
     */
    public int getFrequency(int userInput){
        int count = 0;
        for(int i = 0; i < heltall.length; i++){
            if(userInput == heltall[i]){
                count = count + 1;
            }
        }
        return count;
    }
    
    /**
     *Metode som printer tabellen
     */
    public void print(){
        for(int i = 0; i < heltall.length; i++){
            System.out.println(heltall[i]);
        }
    }
}
/*
 * oppgave2TEST.java
 * Created on 26. oktober 2007, 10:42
 */

package Modul7;

/**
 * @author tjallis
 */
public class oppgave2TEST {
    
    /** Creates a new instance of oppgave2TEST */
    public oppgave2TEST() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /** Opretter tabell med 10 plasser**/
        oppgave2 test = new oppgave2(10);
        
        /** Fyller den med tilfeldige tall i intervallet 10 - 25 **/
        test.fillInterval(25,10);
        
        /** Bruker print metoden til å skrive ut alle verdiene i tabellen (mest for test) **/
        test.print();
        System.out.println("\n");
        
        /** Finner det minste tallet ved hjelp av metoden .getMin() **/
        int min = test.getMin();
        System.out.println("Minste tallet er: " + min);
        
        /** Finner det største tallet ved hjelp av metoden .getMax() **/
        int max = test.getMax();
        System.out.println("Største tallet er: " + max);
        
        /** Finner summen ved hjelp av metoden .getSum() **/
        int sum = test.getSum();
        System.out.println("Summen av tall er: " + sum);
        
        /** Finner gjennomsnittet ved hjelp av metoden .getAvg() **/
        int avg = test.getAvg();
        System.out.println("Gjennomsnittet av tall er: " + avg);
        
        /** Finner hyppigheten til et tall ved hjelp av metoden .getFrequency() **/
        int frequency = test.getFrequency(20);
        System.out.println("Hyppigheten til tallet er: " + frequency);
        
    }
    
}

Oppgave 3.

/*
 * oppgave3.java
 * Created on 30. oktober 2007, 12:46
 */

package Modul7;

import javax.swing.JOptionPane;

/**
 * @author tjallis
 */
public class oppgave3 {
    
    /** Creates a new instance of oppgave3 */
    public oppgave3() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /**
         *Bruker taster inn en sekvens med tall adskilt med mellomrom
         *Avslutningen med verdien -1 er unødvendig slik det er kodet her, men tok det med siden oppgaveteksten sa så
         */
        String userInput = " " + JOptionPane.showInputDialog("Tast inn tall på tastaturet (0-9), separert med mellomrom (space):", "8 7 9 4 2 3 4 8 7 9 6 0 0 1 5 0") + " -1";

        /** Tallene brukern skrev inn blir skrevet til tabell som streng, verdiene er adskilt med mellomrom */
        String inputSequence [] = userInput.split(" ");

        /** Oppretter int tabellen tempSequence */
        int tempSequence [] = new int[inputSequence.length];
        
        /** Gjør om streng verdiene som ligger i inputSequence til integer, og legger de i int tabellen tempSequence */
        for(int i=1; i < inputSequence.length; i++){
            tempSequence[i] = Integer.parseInt(inputSequence[i].trim());
        }
        
        /** Oppretter int tabellen finalSequence */
        int finalSequence [] = new int [10];
        
        /** Dersom verdien i tabellen tempSequence matcher ett tall i intervalet 0-9 økes verdien med +1 i finalSequence sin tilhørende tabell-spot */
        for(int i=1; i < tempSequence.length; i++){
            if(tempSequence[i]==0){finalSequence[0]++;}
            if(tempSequence[i]==1){finalSequence[1]++;}
            if(tempSequence[i]==2){finalSequence[2]++;}
            if(tempSequence[i]==3){finalSequence[3]++;}
            if(tempSequence[i]==4){finalSequence[4]++;}
            if(tempSequence[i]==5){finalSequence[5]++;}
            if(tempSequence[i]==6){finalSequence[6]++;}
            if(tempSequence[i]==7){finalSequence[7]++;}
            if(tempSequence[i]==8){finalSequence[8]++;}
            if(tempSequence[i]==9){finalSequence[9]++;}
        }
        
        /** Dersom verdien til en spot i finalSequence tabellen er større enn 1 printes den på ønsket form */
        for(int i = 0; i < finalSequence.length; i++){
            if(finalSequence[i]>0){
                System.out.println(i + ": " + finalSequence[i] + " forekomst");
            }
        }
        
    }   
}

Oppgave 4.

/*
 * oppgave4.java
 * Created on 30. oktober 2007, 16:41
 */

package Modul7;

import javax.swing.JOptionPane;
/**
 * @author tjallis
 */
public class oppgave4 {
    
    /** Creates a new instance of oppgave4 */
    public oppgave4() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /**
         * Bruker taster inn en sekvens med tall adskilt med mellomrom
         * Avslutningen med verdien -1 er unødvendig slik det er kodet her, men tok det med siden oppgaveteksten sa så
         */
        String userInput = " " + JOptionPane.showInputDialog("Tast inn tall på tastaturet (0-9), separert med mellomrom (space):", "9 4 6 6 6 6 8 8 7 8 8 9 9 9 9") + " -1";

        /** Tallene brukern skrev inn blir skrevet til tabell som streng, verdiene er adskilt med mellomrom */
        String inputSequence [] = userInput.split(" ");

        /** Oppretter int tabellen tempSequence */        
        int tempSequence [] = new int[inputSequence.length];
        
        /** Gjør om streng verdiene som ligger i inputSequence til integer, og legger de i int tabellen tempSequence */
        for(int i=1; i < inputSequence.length; i++){
            tempSequence[i] = Integer.parseInt(inputSequence[i].trim());
        }
        
        /** Oppretter streng tabellen finalSequence, og fyller den med ingenting */
        String finalSequence [] = new String[10];
        for(int i=0; i < finalSequence.length; i++){
            finalSequence[i] = "";
        }
        
        /** Dersom verdien i tabellen tempSequence matcher ett tall i intervalet 0-9 skjøtes strengen til den tilhørende spot'n i finalSequence tabellen med "*" */
        for(int i=1; i < tempSequence.length; i++){
            if(tempSequence[i]==0){finalSequence[0]+= "*";}
            if(tempSequence[i]==1){finalSequence[1]+= "*";}
            if(tempSequence[i]==2){finalSequence[2]+= "*";}
            if(tempSequence[i]==3){finalSequence[3]+= "*";}
            if(tempSequence[i]==4){finalSequence[4]+= "*";}
            if(tempSequence[i]==5){finalSequence[5]+= "*";}
            if(tempSequence[i]==6){finalSequence[6]+= "*";}
            if(tempSequence[i]==7){finalSequence[7]+= "*";}
            if(tempSequence[i]==8){finalSequence[8]+= "*";}
            if(tempSequence[i]==9){finalSequence[9]+=  "*";}
        }
        
        /** Dersom en spot i finalSequence tabellen inneholder noe skrives den ut */
        for(int i = 0; i < finalSequence.length; i++){
            if(finalSequence[i]!=""){
                System.out.println(i + ": " + finalSequence[i]);
            }
        }
    } 
}

Oppgave 5. Medium:Url-list.txt (Right-click og lagre i prosjekt mappa)

/*
 * oppgave5.java
 * Created on 30. oktober 2007, 17:58
 */

package Modul7;

import java.io.*;
import java.util.Scanner;

/**
 * @author tjallis
 */
public class oppgave5 {
    
    /** Creates a new instance of oppgave5 */
    public oppgave5() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException{
        /** Oppretter en scanner som leser fil som inneholder url liste */
        Scanner scan = new Scanner(new File("url-list.txt"));
        
        /** Oppretter streng tabell som skal inneholde hele url banen, samt fyller den med ingenting */
        String [] urlWhole = new String[50];
        for(int i=0; i < urlWhole.length; i++){
            urlWhole[i] = "";
        }
        
        /** Oppretter stren tabell som skal inneholde oppdelt url bane, samt fyller den med ingenting */
        String [] urlList = new String[75];
        for(int i=0; i < urlList.length; i++){
            urlList[i] = "";
        } 

        /** Setter counter variabler til 0 */
        int counter=0;
        int counter2=0;
        
        /** Utfører while løkka fram til det ikke er mer å lese */
        while (scan.hasNext()){
            /** Leser fra filen, og lagrer det i streng tabellen urlSplitVersion, blir her splittet ved hver forekomst av "/" */
            String dataRead = scan.next();
            String [] urlSplitVersion = dataRead.split("/");

            /** Hele url banen puttes i urlWhole tabellen */
            for(int i=0; i < urlSplitVersion.length; i++){
                urlWhole[counter] = urlWhole[counter] + urlSplitVersion[i] + "/";
            }
            System.out.println("URL: " + urlWhole[counter]);
            counter++;
            
            /** Splittet url bane puttes i urlList tabellen */
            for(int i=0; i < urlSplitVersion.length; i++){               
                urlList[counter2] = urlSplitVersion[i];
                System.out.println("\t" + urlList[counter2]);
                counter2++;              
            }            
        }        
    }            
}

Gruppe 10

Oppgave 1:

package modul7;
import java.util.Random;
import java.lang.Math.*;
class Oppgave1 {
    public static void main(String[]args){
        
        //Oppretter en tilfeldig-tall generator
        double d = java.lang.Math.random();
        d = d*100;
        int e = (int)d;
        java.util.Random ranGen = new Random(e);
        
        //Oppretter tabellen og fyller den med tilfeldige tall fra -50 til 50.
        int[] tall = new int[10];        
        for (int i =0;i<tall.length;i++){
            tall[i]=ranGen.nextInt(100)-50;
        }
        //Skriver ut tallene i tabellen
        System.out.println("Tallene i tabellen tall");
        for (int i = 0;i<tall.length;i++){
            System.out.print(tall[i]+" ");
        }
        //Skriver ut tallene i tabellen baklengs
        System.out.println("\r\n");
        System.out.println("Tallene i tabellen tall baklengs");
        for (int i =9;i>=0;i--){
            System.out.print(tall[i]+" ");
        }
        System.out.println("\r\n");
       
        //Bruker klassen Tabeller til å utføre operasjoner på tabellen
        System.out.println("Minste tallet i tabellen tall er: " + Tabeller.minste(tall));       
        System.out.println("Største tallet i tabellen tall er: " + Tabeller.største(tall));        
        System.out.println("summen av tallene i tabellen er:" + Tabeller.sum(tall));
        System.out.println("Snittet av alle  tallene er: " + Tabeller.snitt(tall));
        System.out.println("Antall ganger tallet 10 finnes i tabellen er:" + Tabeller.forekomst(tall,10));
    }
}

Oppgave 2

package modul7;

class Tabeller{
    
        
    public static int største(int[] tabell){
        int størst =tabell[0];
        int midl;
        for (int i = 0;i<tabell.length-1;i++){
            midl = tabell[i+1];
            if (midl>størst) størst = midl;
        }
        return størst;
    }
    
    public static int minste(int[] tabell){
        int minste = tabell[0];
        int midl;
        for (int i = 0;i<tabell.length-1;i++){
            midl = tabell[i+1];
            if (midl<minste) minste = midl;
        }
        return minste;
    }
    
    public static int sum(int[] tabell){
        int sum=0;
        int midl;
        for (int i =0;i<tabell.length;i++){
            midl=tabell[i];
            sum+=midl;
        }
        return sum;
    }
    public static double snitt(int[] tabell){
        int sum=0;
        int midl;
        for (int i =0;i<tabell.length;i++){
            midl=tabell[i];
            sum+=midl;
        }
        double snitt = sum/tabell.length;
        return snitt;
    }
    
    public static int forekomst(int[] tabell, int tall){
        int forekomst=0;
        for(int i = 0;i<tabell.length;i++){
            if (tabell[i]==tall) forekomst++;
            
        }
        return forekomst;
    }
}

Oppgave 3 og 4.

package modul7;
import java.io.*;
import java.util.Arrays;


class Oppgave3{
    public static void main(String[]args) throws Exception{
        
        //Oppretter variabler osv.
        InputStreamReader leser = new InputStreamReader(System.in);
        BufferedReader input = new BufferedReader(leser);
        int[] tallRekke = new int[100];
        int i = 0;   
        int [] antall = new int[10];
        String tekst="";
        
        //Ber om tall og begynner innlesningen av tallrekken
        System.out.println("Skriv inn et tall,skriv et negativt tall når alle tallene er innlest, \r\n trykk enter etter hvert tall");
        tekst = input.readLine();
        int midlTall = Integer.parseInt(tekst);                 
        while ( midlTall>=0){
                tallRekke[i] = midlTall;
                tekst = input.readLine();
                midlTall = Integer.parseInt(tekst);
                i++;
        }
         
         //Kopierer den midlertidige tallrekken "tallrekke" over til en tabell som innholder like mange plasser som tall innlest
         //Oppretter en tabell som inneholder forekomsten av tallene 0-9.
         int[] tall = new int[i];
         
         for (int j = 0;j<i;j++){
             tall[j]=tallRekke[j];
         }
         
         //Registrerer hvor mange ganger tallene 0-9 forekommer i tabellen. Lagrer dette i en ny tabell.
         for (int j = 0;j<10;j++){
             for (int k = 0;k<tall.length;k++){
                 if (tall[k]==j) {
                     antall[j]++;
                 }
             }
         }
        
         //Skriver ut hvor mange ganger tallene som er med i tabellen går igjen.
         for (int j = 0;j<antall.length;j++){
             if (antall[j]!=0 )System.out.println("Forekommsten av tallet " + j + " i tabellen er " + antall[j]);
         }
         
         //Skriver ut et søylediagram for å illustrere hvor mange ganger tallene som er med i tabellen går igjen
         for (int j = 0;j<antall.length;j++){
             System.out.print(j + ":");
             
             for (int k = 0;k<antall[j];k++){
                 System.out.print("*");
             }
                         
            System.out.println("");
             
         }
        
    }
}

Oppgave 5.

package modul7;
import java.io.*;
class Oppgave5{
    public static void main(String[]args)throws Exception{
        //Oppretter klasse variabler osv.
        String filNavn = "fil.txt";
        String linje="";
        FileReader filLeser = new FileReader(filNavn);
        BufferedReader leser = new BufferedReader(filLeser);
        String [] linjer = new String[5];
        String tekst = "";
        int i = 0;
        
        //Legger hver linje i filen i en plass i en String tabell.
        String buffer =leser.readLine();
        while (buffer!=null){
            linjer[i]= buffer;
            buffer=leser.readLine();
            i++;
                    }
        
        //Deler hver linje opp i flere linjer der '/' forekommer,lagrer dette i en String
        for (int j = 0;j<i;j++){
            tekst+="URL:" + linjer[j] + "\r\n";
            tekst +="        ";
            for (int k = 0;k<linjer[j].length();k++){
                    if (linjer[j].charAt(k)!='/'){                    
                        tekst += linjer[j].charAt(k);
                        }else {                    
                            tekst += "\r\n";
                            tekst+="        ";
                        }
                
            }
            tekst+="\r\n";
            }
        
        //Skriver ut Stringen.
        System.out.println(tekst);
        
        }
        
    }

Oppgave 6.

package modul7;
import java.io.*;
import java.util.Arrays;


class Oppgave6{
    public static void main(String[]args)throws Exception{
        InputStreamReader inLeser = new InputStreamReader(System.in);
        BufferedReader input = new BufferedReader(inLeser);
        int valg=0;
        String[] nyTabell;
        String sHvor;
        int hvor;
        String sValg;
        String key;
        int maks,min;
        String kopier;
        char sMin,sMaks;
        
        //Spør bruker om hvor mange ord som skal lagres i tabellen
        System.out.println("Skriv inn hvor lang tabellen skal være");
        String lengdeMidl = input.readLine();
        int lengde = Integer.parseInt(lengdeMidl);
        String[] tabell = new String[lengde];
        //Lagrer hvert ord fra brukeren på en plass i tabellen
        for (int i = 0;i<lengde;i++){
            System.out.println("Skriv inn et ord");
            tabell[i] = input.readLine();
        }
        //Brukervalg.
        while(valg>=0){
            System.out.println("1.Skriv ut tabellen til skjerm");
            System.out.println("2.Sorter tabellen alfabetisk");
            System.out.println("3.Sjekk om tabellen inneholder et ord, og hvilken plass det ligger lagret");
            System.out.println("4.Kopiere deler av tabellen over i en ny tabell");
            System.out.println("Tast -1 for å avslutte");
            sValg = input.readLine();
            valg = Integer.parseInt(sValg);
                    
            //Skriver ut tabellen.    
            if (valg==1){
                    System.out.println(Arrays.toString(tabell));
                }
            //Sorterer innholdet i tabellen.
            else if(valg==2){
                    Arrays.sort(tabell);
                }
            //Spør brukeren om et ord og sjekker om det finnes i tabellen.
            else if(valg ==3){
                    System.out.println("Skriv inn hvilket ord du vil finne");
                    key = input.readLine();
                    hvor = Arrays.binarySearch(tabell,key);
                        if (hvor==-1){
                            System.out.println("Ordet finnes ikke i tabellen");
                        }else{
                            System.out.println("Ordet ligger lagret påplass nr " + hvor);
                        }
                }
            //Kopierer deler av tabellen over i en ny tabell
            else if(valg==4){
                    System.out.println("Skriv inn hvilken del av tabellen som skal kopieres(*,*)");
                    kopier = input.readLine();
                    sMin = kopier.charAt(0);
                    sMaks = kopier.charAt(2);
                    String sSmaks=""+sMaks;
                    String sSmin = ""+sMin;
                    min = Integer.parseInt(sSmin);
                    maks = Integer.parseInt(sSmaks);
                    nyTabell=Arrays.copyOfRange(tabell,min,maks); 
                    System.out.println("Den nye tabellen er: " + Arrays.toString(nyTabell));
                    }
                    
        }//Slutt meny-løkke
    }
}