Modul 7 - Databaser
Fra Hiofwiki
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++;
}
}
}
}
[rediger]
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
}
}
