Skip to content
Snippets Groups Projects
Commit 5d99ce19 authored by ljenck's avatar ljenck
Browse files

"3 commit"

parent 79c051a9
No related branches found
No related tags found
No related merge requests found
...@@ -28,3 +28,19 @@ public class Apurutiinit { ...@@ -28,3 +28,19 @@ public class Apurutiinit {
} }
} }
/**
* 'kuplaLajittelu' rutiinilla on sivuvaikutus, koska se muuttaa alkuperäistä taulukkoa sen sijaan, että tekisi siitä kopion ja muuttaisi kopiota.
*
* Kuplalajittelu on hyödyllinen silloin kun halutaan muuttujan muuttuvan pysyvästi ja silloin voidaan myös käyttää useampaa rutiinia peräkkäin jolloin alkuperäinen
* muuttujan arvo voidaan muokata millaiseksi tahansa, joka voisi olla hyödyllinen esimerkiksi tiedon suojaamisessa. Kuplalajittelu on haitallinen siinä tapauksessa, jos halutaan säilyttää alkuperäinen taulukko ja esimerkiksi
* käyttää samaa taulukkoa useassa eri rutiinissa.
*
* Koodilla on sivuvaikutuksia, koska 'teksti' muuttujan arvo muuttuu useammassa rutiinissa.
* Sivuvaikutukset mukauttavat jatkuvasti 'teksti' muuttujan arvoa, mikä voi olla hyvä asia siinä tapauksessa, jos halutaan sen muuttuvan.
* Jos useampi henkilö käyttää ohjelmaa samanaikasesti ja suorittaa samat tehtävät täysin samanaikaisesti, niin 'teksti' muuttujan arvon muuttuminen johtaisi vähintääkin virheeseen.
*
* Tässä tapauksessa olisi kannattavampaa vain palauttaa muuttunut teksti ilman, että se muuttaa 'teksti' muuttujaa.
* 'teksti' muuttujan arvoa voidaan muuttaa 'asetaArvot(lkm, teksi)' rutiinilla, mikä johtaa siihen, että luokka on kapseloitu paremmin
* eikä asiakas pääse muuttamaan arvoja mitenkään muuten kuin käyttämällä tätä rutiinia, mikä johtaa vähemmän virhealttiiseen ohjelmaan.
*
*/
...@@ -77,7 +77,7 @@ public class Main { ...@@ -77,7 +77,7 @@ public class Main {
* @.post RESULT sisältää kaikki syötteen alkiot ja on järjestetty nousevaan järjestykseen * @.post RESULT sisältää kaikki syötteen alkiot ja on järjestetty nousevaan järjestykseen
*/ */
public static int[] kuplaLajittelu(int[] inArr) { public static int[] kuplaLajittelu(int[] inArr) {
int[] outArr = inArr; int[] outArr = Arrays.copyOf(inArr, inArr.length);
int n = outArr.length; int n = outArr.length;
int temp = 0; int temp = 0;
for(int i=0; i < n; i++){ for(int i=0; i < n; i++){
...@@ -129,6 +129,9 @@ public class Main { ...@@ -129,6 +129,9 @@ public class Main {
} }
} }
...@@ -5,9 +5,8 @@ public class Opiskelija { ...@@ -5,9 +5,8 @@ public class Opiskelija {
/* Tehtävä 2A Määrittele luokkainvariantti /* Tehtävä 2A Määrittele luokkainvariantti
* *
* Luokkainvariantti: * Luokkainvariantti:
* Mikään muuttujista ei saa olla null ja 1900 <= 'syntymavuosi' <= (nykyinen vuosi - 18) * 1900 <= 'syntymavuosi' <= (nykyinen vuosi - 18)
* 'etunimi' eikä 'sukunimi' saa sisältää numeroita * getEtunimi() != null & getSukunimi() != null & getOpiskelijaNumero() != null
* 'opiskelijanumero' tulee sisältää pelkästään numeroita
*/ */
private String etunimi; private String etunimi;
private String sukunimi; private String sukunimi;
......
A. Tietueluokka sopisi tähän, koska tiedetään etteivät tiedot muutu ja rivit voidaan helposti esittää tietueina ja niitä voidaan tallentaa listaan niin monta kuin
tarvitaan.
B. Abstrakti luokkaa voitaisiin käyttää, koska se toimii hyvin pohjana alaluokille ja alaluokat voisivat helposti toteuttaa haluttuja metodeja käyttäen Vaatekokoja.
Tälle abstrakti luokalle voitaisiin helposti myös tehdä staattinen rutiini joka hakee numeerisia kokoja kirjaintunnusten perusteella.
\ No newline at end of file
...@@ -7,7 +7,8 @@ public class VuosiKurssi { ...@@ -7,7 +7,8 @@ public class VuosiKurssi {
/* Tehtävä 2A Määrittele luokkainvariantti /* Tehtävä 2A Määrittele luokkainvariantti
* *
* Luokkainvariantti: * Luokkainvariantti:
* 1920 <= 'kurssinAloitusvuosi' <= nykyinen vuosi, eikä se voi olla null * 1920 <= 'kurssinAloitusvuosi' <= nykyinen vuosi
* getKurssinAloitusvuosi() != null & getOpiskelijat() != null
* 'opiskelijat listan pituus on vähintään 0 ja enintään vuosikurssille sallittu opiskelijoiden määrä esim. 500 * 'opiskelijat listan pituus on vähintään 0 ja enintään vuosikurssille sallittu opiskelijoiden määrä esim. 500
*/ */
private int kurssinAloitusvuosi; private int kurssinAloitusvuosi;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment