Upload
brinda
View
54
Download
0
Embed Size (px)
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
Citation preview
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
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];
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?
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).
”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);
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
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;
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;
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…
... 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
Klasser och
klassvariabler
Metodanrop och
lokala variabler
Objekt (instans )och
instansvariabler
class Fem{……}//class Fem
class Vulkan{……}
Klasser och
klassvariabler
Metodanrop och
lokala variabler
Objekt (instans )och
instansvariabler
class Fem
class Vulkan
class Fem{ …
}//class Fem
class Vulkan{ public static final double GRÄNSVÄRDE = 103; public static int numAktiv = 0; … …}//class Vulkan
Klasser och
klassvariabler
Metodanrop och
lokala variabler
Objekt (instans )och
instansvariabler
class Fem
class Vulkanint GRÄNSVÄRDE: 103int numAktiv : 0
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:
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
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
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
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
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
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
args