Ohpen tentin arvosteluperusteet
1
- 1p selitetty alkeistyyppi oikein
- 1p selitetty viittaustyyppi oikein
- 1p kun selitetty viittaustyyppien ja alkeistyyppien erot metodien parametreinä oikein
2a
- 1p seuraavat kolme kuukautta oikein kaikissa tapauksissa ( 1-12 )
- 1p kysytään oikein, tulostetaan oikein ja ohjelma toimii
import java.util.Scanner;
public class SeuraavatKuukaudet {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
System.out.println("Syötä kuukauden numero:");
int kuukaudenNumero = Integer.parseInt(lukija.nextLine());
System.out.println("Seuraavat kolme kuukautta ovat:");
for (int i = 0; i < 3; i++) {
kuukaudenNumero++;
if (kuukaudenNumero == 13) {
kuukaudenNumero = 1;
}
System.out.print(kuukaudenNumero + " ");
}
}
}
2b
- 1p tulostukset ja käyttäjältä kysyminen oikein
- 1p ehtolause oikein (lukuväli)
- 1p neliöiden summa laskettu oikein
Scanner lukija = new Scanner(System.in);
System.out.println("syötä lukuja väliltä 1-100. välin ulkopuoleinen lopettaa");
int nelioidenSumma = 0;
while(true) {
int luku = Integer.parseInt(lukija.nextLine());
if(luku < 1 || luku > 100) {
break;
}
nelioidenSumma += luku * luku;
}
System.out.println("syöttämiesi lukujen neliöiden summa: " + nelioidenSumma);
3a
- 1p metodi palauttaa oikean vastauksen
- 2p molempien taulukoiden läpi käynnistä, miinuksia jos jäi esim käymättä taulukon eka tai vika jäsen. 1 piste pois jos käytiin vain toista taulukkoa läpi.
- 1p demonstraatiosta. Miinusta jos tulosta ei hyödynnetty tai metodia ei kutsuttu oikein.
public static boolean sisaltavatSaman(int[] luvut1, int[] luvut2) {
for (int i = 0; i <luvut1.length; i++) {
for (int u = 0; u < luvut2.length; u++) {
if (luvut1[i] == luvut2[u]) {
return true;
}
}
}
return false;
}
public static boolean sisaltavatSaman(ArrayList<Integer> luvut1, ArrayList<Integer> luvut2){
for(int luku:luvut1){
if(luvut2.contains(luku)){
return true;
}
}
return false;
}
3b
- 1p For-loop on kunnossa
- 1p If-komento on kunnossa
- 2p Palautettava ArrayList luodaan oikein
- 2p Palautetaan oikea ArrayList metodin lopussa
- 2p Metodi toimii
for (int i = 0; i < luvut.size(); i++) {
if (!palautettava.contains(luvut.get(i))) {
palautettava.add(luvut.get(i));
}
}
4a
- 1p konstruktori
- 1p toString
- 1p getNimi
- 1p getPisteet
public class Opiskelija {
private String nimi;
private int pisteet;
public Opiskelija(String nimi, int pisteet) {
this.nimi = nimi;
this.pisteet = pisteet;
}
@Override
public String toString() {
return nimi + " " + pisteet + " pistettä";
}
public String getNimi() {
return this.nimi;
}
public int getPisteet() {
return this.pisteet;
}
}
4b
- 1p ArrayList (import, listan luominen)
- 2p konstruktori
- 1p lisaaOpiskel
- 3p tulokset
- 3p korkeinPistemaara
public class Kurssi {
private String nimi;
private int lapipaasyraja;
private ArrayList<Opiskelija> opiskelijat;
public Kurssi(String nimi, int lapipaasyraja) {
this.nimi = nimi;
this.lapipaasyraja = lapipaasyraja;
this.opiskelijat = new ArrayList<Opiskelija>();
}
public void lisaaOpiskelija(Opiskelija lisattava) {
this.opiskelijat.add(lisattava);
}
public void tulokset() {
System.out.println("Kurssin " + this.nimi + " tulokset:");
for (Opiskelija opiskelija : opiskelijat) {
String tuomio = (opiskelija.getPisteet() < lapipaasyraja) ? "HYLÄTTY" : "HYVÄKSYTTY";
System.out.println(opiskelija + " " + tuomio);
}
}
public int korkeinPistemaara() {
int max = 0;
for (Opiskelija opiskelija : opiskelijat) {
if (opiskelija.getPisteet() > max) {
max = opiskelija.getPisteet();
}
}
return max;
}
}