class vattenkraft{ public static void main(string[] args){ int num=150; int i, totflöde, maxflöde;

23
class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen Vector v = new Vector(); Vattenfall ettFall; // Koden i a-, b- och c-delen hamnar här. } } class Vattenfall{ int flöde; String namn; public Vattenfall(int flöde, String namn){ this.flöde = flöde; this.namn = namn; } }//class Vattenfall Uppgift 3 från Tenamen 2000-10-28 http://www.nada.kth.se/~vahid/prgm00/ovning6

Upload: brinda

Post on 25-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Uppgift 3 från Tenamen 2000-10-28 http://www.nada.kth.se/~vahid/prgm00/ovning6. class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num ]; //vattenflödet i vattenfallen Vector v = new Vector(); Vattenfall ettFall; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen Vector v = new Vector(); Vattenfall ettFall; // Koden i a-, b- och c-delen hamnar här. }}class Vattenfall{ int flöde; String namn; public Vattenfall(int flöde, String namn){ this.flöde = flöde; this.namn = namn; }}//class Vattenfall

Uppgift 3 från Tenamen 2000-10-28http://www.nada.kth.se/~vahid/prgm00/ovning6

Page 2: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

a) Skriv kod som summerar alla vattenflöden (dvs alla värden i fall).

Index: 0 1 …..……… 148 149

fall

a) Skriv kod som summerar alla vattenflöden (dvs alla värden i fall).

23 20 40 50

length 150

a)

totflöde=0;for(i=0;i < fall.length;i++) totflöde += fall[i];

b)

totflöde=0;for(i=0;i<fall.length();i++) totflöde += fall[i];

c)

totflöde=0;for(i=0;i<fall.length;i++) totflöde= fall.elementAt(i);

d)

totflöde=0;for(i=0;i<fall.length-1;i++) totflöde += fall[i];

Page 3: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

totflöde=0;while(i < fall.length){ totflöde += fall[i]; i++;}

En till FEL lösning:totflöde=0;i=0;While(i<fall.length){ i++; totflöde += fall[i];

} varför?

Betrakta koden ovan kan man ändra genom att byta plats mellan två rader så att det blir en RÄTT lösning?

Page 4: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Index: 0 1 …..……… 148 149

fall 100 20 40 50

length 150

c)System.out.println(… …fall[bakvänd]);

d)

for(i=0;i > fall.length-1;i++) System.out.println(… …fall[i]);

b)for(i=fall.length-1;i>=0;i--) System.out.println(… …fall[i]);

a)for(i=fall.length;i>0;i--) System.out.println(… …fall[i]);

b) Skriv kod som skriver ut alla flöden i omvänd ordning (dvs det sista flödet i fall ska skrivas ut först).

Page 5: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

”vf1””vf1”

c) ettFall=(Vattenfall)v.elementAt[0];System.out.println(ettFall.namn);

b) ettFall=v.elementAt(0);System.out.println(ettFall.namn);

a)ettFall = v[0];System.out.println(…

…ettFall.namn);

c) Anta att flera element (av typen Vattenfall) lagts in i vektorn v. Skriv kod som skriverut namnet på Vattenfallet på den första positionen i vektorn.

v

0 1 …..……… 148 149

20flöde

namn

”vf4”

100flöde

namn

”vf1”

60flöde

namn ”vf9”

50flöde

namn

”vf3”

Instanse av Vector

d) ettFall=(Vattenfall)v.elementAt(0);System.out.println(ettFall.namn);

Page 6: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Uppgift 4 från Tenamen 2000-10-28class Faarskallen{ public static void main(String[] args){ FaarHage hagen = new FaarHage(200); if (hagen.klipp(40)) System.out.println("Klipp fåren!!!"); }}//class Faarskallenclass FaarHage{ public Faar[] bä; private int antal; public FaarHage(int n){ /*konstruktor som ger värden till instansvariablerna och som läser in information från en fil om fåren och fyller bä med får*/ } double medelUllLängd(){ /* Metod som beräknar medelullängden på alla fåren i hagen*/ } boolean klipp(int gräns){ /*metod som jämför medelullängden med gräns och returnerar true om fåren ska klippas. Om medellängen överstiger gränsvärdet ska fåren klippas.*/ }}//class FaarHageclass Faar{ double ullängd; int födelseÅr; Faar(double ullängd, int år){ /* Konstruktor som ger instansvariablerna värden*/ }}//class Faar

Page 7: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Faar{ double ullängd; int födelseÅr;

Faar(double ullängd, int år){ /* Konstruktor som ger instansvariablerna värden*/

}}//class Faar

a) Skriv den kod som saknas i konstruktorn i klassen Faar

c)ullängd=år;födelseÅr=ullängd;

a)ullängd=ullängd;födelseÅr=år;

d)ullängd=this.ullängd;födelseÅr=år;

b)this.ullängd=ullängd;födelseÅr=år;

Page 8: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

b) Skriv den kod som saknas i metoden klipp().

…double medelUllLängd(){/* Metod som beräknar medelullängden på alla fåren i hagen*/}…boolean klipp(int gräns){ /*metod som jämför medelullängden med gräns och returnerar true om fåren ska klippas. Om medellängen överstiger gränsvärdet ska fåren klippas.*/}

a)

medelUllLängd == gräns;

c)if(this.medelUllLängd==gräns) return true;else return false;

b)if(medelUllLängd==this.gräns) return true;else return false;

d)if(medelUllLängd()==gräns) return true;else return false;

Page 9: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Uppgift 5 från Tenamen 2000-10-28

class Fem{ public static void main(String[] args){ Vulkan krafla = new Vulkan(true, 1984, 97.3); krafla.snartUtbrott(); }}//class Femfortsätter…

Page 10: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

... fortsättningclass Vulkan{ public static final double GRÄNSVÄRDE = 103; public static int numAktiv = 0; boolean aktiv; int utbrottsÅr; //årtal för senaste utbrott double tryck; //inre tryck i vulkanen public Vulkan(boolean aktiv,

int utbrottsÅr, double tryck){ this.aktiv = aktiv; this.utbrottsÅr=utbrottsÅr; this.tryck = tryck; if (aktiv) numAktiv++; //a } public void snartUtbrott(){ double kvot = tryck/GRÄNSVÄRDE; if (kvot>1) System.out.println("Vulkanen har ett utbrott NU!!"); else if (kvot>0.7) System.out.println("Troligtvis utbrott snart"); else System.out.println("Ta det LUNGT..."); //b }}//class Vulkan

Page 11: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Klasser och

klassvariabler

Metodanrop och

lokala variabler

Objekt (instans )och

instansvariabler

Page 12: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{……}//class Fem

class Vulkan{……}

Page 13: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Klasser och

klassvariabler

Metodanrop och

lokala variabler

Objekt (instans )och

instansvariabler

class Fem

class Vulkan

Page 14: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{ …

}//class Fem

class Vulkan{ public static final double GRÄNSVÄRDE = 103; public static int numAktiv = 0; … …}//class Vulkan

Page 15: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Klasser och

klassvariabler

Metodanrop och

lokala variabler

Objekt (instans )och

instansvariabler

class Fem

class Vulkanint GRÄNSVÄRDE: 103int numAktiv : 0

Page 16: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{ public static void main(String[] args){ Vulkan krafla = new Vulkan(true, 1984, 97.3);

HÄR BLIR DET EN ANROP TILL KONSTRUKTOREN FÖR KLASSEN VULKAN, OBSERVERA ATT VÄRDENA TRUE, 1984 OCH 97.3 SKICKAS TILL KONSTRUKTOREN SOM PARAMETER:

Page 17: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{ public static void main(String[] args){Vulkan krafla= new Vulkan(true, 1984, 97.3);

class Fem{ public static void main(String[] args){

class Vulkan{public static final double GRÄNSVÄRDE = 103;public static int numAktiv = 0; boolean aktiv;int utbrottsÅr;double tryck;public Vulkan(boolean aktiv, int utbrottsÅr,…

Vulkan krafla= new Vulkan(true, 1984, 97.3);

this.aktiv = aktiv;this.utbrottsÅr=utbrottsÅr;this.tryck = tryck;

if (aktiv){

numAktiv++;

}

//a

…}

}…

…double tryck){

class Vulkan{

int utbrottsÅr;double tryck;public Vulkan(boolean aktiv, int utbrottsÅr,…

this.aktiv = aktiv;this.utbrottsÅr=utbrottsÅr;this.tryck = tryck;

if (aktiv){

numAktiv++;

}

//a

…double tryck){

krafla

aktiv false

Utbrt… 0

tryck 0.0

boolean aktiv;

true

1984

97.3

numAktiv 01

GRÄNSVÄRDE 103

main

vulkanboolean aktiv

this:

int utbr…

bouble tryck

true

1984

97.3

args

Page 18: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Klasser och

klassvariabler

Metodanrop och

lokala variabler

Objekt (instans )och

instansvariabler

class Fem

class Vulkan

int GRÄNSVÄRDE: 103int numAktiv : 1

krafla aktiv false

Utbrt… 0

tryck 0.0

true

1984

97.3

Main

vulkanboolean aktiv

this:

int utbr…

bouble tryck

true

1984

97.3

a)

args

Page 19: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{ public static void main(String[] args){Vulkan krafla= new Vulkan(true, 1984, 97.3);

class Vulkan{public static final double GRÄNSVÄRDE = 103;public static int numAktiv = 0; boolean aktiv;int utbrottsÅr;double tryck;public Vulkan(boolean aktiv, int utbrottsÅr,…

this.aktiv = aktiv;this.utbrottsÅr=utbrottsÅr;this.tryck = tryck;

if (aktiv){

numAktiv++;

}

//a

…}

}…

…double tryck){

krafla

aktiv false

Utbrt… 0

tryck 0.0

true

1984

97.3

numAktiv 01

GRÄNSVÄRDE 103

main

vulkanboolean aktiv

this:

int utbr…

bouble tryck

true

1984

97.3

}…

args

Page 20: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{ public static void main(String[] args){Vulkan krafla= new Vulkan(true, 1984, 97.3);

class Vulkan{public static final double GRÄNSVÄRDE = 103;public static int numAktiv = 0; boolean aktiv;int utbrottsÅr;double tryck;public Vulkan(boolean aktiv, int utbrottsÅr,…

this.aktiv = aktiv;this.utbrottsÅr=utbrottsÅr;this.tryck = tryck;

if (aktiv){

numAktiv++;

}

//a

…}

}…

…double tryck){

krafla

aktiv false

Utbrt… 0

tryck 0.0

true

1984

97.3

numAktiv 01

GRÄNSVÄRDE 103

main

}…

args

Page 21: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

class Fem{ public static void main(String[] args){Vulkan krafla= new Vulkan(true, 1984, 97.3);

class Vulkan{public static final double GRÄNSVÄRDE = 103;public static int numAktiv = 0;

int utbrottsÅr;double tryck;public Vulkan(boolean aktiv, int utbrottsÅr,…

…double tryck){…}

krafla.snartUtbrott();

public void snartUtbrott(){double kvot = tryck/GRÄNSVÄRDE;if (kvot>1)System.out.println("Vulkanen har ett utbrott NU!”);

else if (kvot>0.7)

System.out.println("Troligtv utbrott snart");

else

System.out.println("Ta det LUNGT...");

//b

}

}

krafla

aktiv false

Utbrt… 0

tryck 0.0

true

1984

97.3

numAktiv 01

GRÄNSVÄRDE 103

main

krafla.snartUtbrott();

public void snartUtbrott(){double kvot = tryck/GRÄNSVÄRDE;if (kvot>1)

else if (kvot>0.7)

System.out.println("Troligtv utbrott snart");

//b

snartUtbrott

double kvot 0.94

this:

}

args

Page 22: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

Klasser och

klassvariabler

Metodanrop och

lokala variabler

Objekt (instans )och

instansvariabler

class Fem

class Vulkan

int GRÄNSVÄRDE: 103int numAktiv : 1

kraflaaktiv false

Utbrt… 0

tryck 0.0

true

1984

97.3

Main

vulkan

Double kvot

this:

0.94

b)

args

Page 23: class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde;

args