Ohjelmakoodin osa, joka suorittaa joitakin ohjelman toimintoja.
0Äänestä
Jonttu
..tarkoitus on tehdä ohjelmasta selkeämpi, vähentää tarvittavan koodin määrää ja parantaa mm. muutosten hallittavuutta.
Kuvittele vaikka ohjelma, jonka tehtävänä on piirtää kuusi erikokoista ympyrää näytölle. Koodiltaan näiden ympyröiden piirtäminen on lähes yhteneväiset erottuen ainoastaan muutaman parametrin osalta: - x-paikka (x-koordinaatti) - y-paikka (y-koordinaatti) - halkaisija (tai säde) - väri, jne...
Ei ole siis ollenkaan järkevä kirjoittaa lähes samaa koodia useaan kertaan, koska yhdelläkin tulee toimeen. Samalla pitää myös muistaa, että muutosten tekeminen yksinkertaistuu, koska nyt muutos pitää tehdä vain yhteen paikkaan (aliohjelmaan) usean sijasta.
private static void piirraYmpyra(int xpaikka, int ypaikka, int halkaisija, Color piirtovari) throws Exception { ... //yhteinen piirtokoodi tulee tähän ... if (vitullinenKoordinaatti == true) { throw new Exception("Mitka vitun koordinaatit oikein annoit?"); } } }
Tuon esimerkin lisäksi aliohjelma voi palauttaa esim. jonkin parametrien perusteella laskemansa arvon, mutta siinäkin perusajatus säilyy; - samaa koodia ei kirjoiteta kahteen kertaan.
Jonttu
0Äänestä
tase
Aliohjelmia voisi ajatella eräänlaisina komponentteina joista voit muodostaa rakennuspalikoita. Ohjelma jakautuu useampiin loogisiin yksiköihin mistä on mm. helpompi etsiä virheitä(debuggaus). Hyvin tehtyjä aliohjelmia voi useasti käyttää muissakin ohjelmissa.
erilaisia aliohjelmia: Sub tee_jotain() 'ei palauta arvoa End Sub
Function teejotain()As Integer 'palauttaa arvon 'jos esim "As Integer"(paluuarvon tyyppi) puuttuu ' funktio palauttaa Variant tietotyypin End Function
Property - aliohjelmia käytetään palauttamaan/sijoittamaa arvoja sekä asettamaan viittauksia objekteihin
0Äänestä
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 3
Vanhimmat
Ohjelmakoodin osa, joka suorittaa joitakin ohjelman toimintoja.
..tarkoitus on tehdä ohjelmasta selkeämpi, vähentää tarvittavan koodin määrää ja parantaa mm. muutosten hallittavuutta.
Kuvittele vaikka ohjelma, jonka tehtävänä on piirtää kuusi erikokoista ympyrää näytölle. Koodiltaan näiden ympyröiden piirtäminen on lähes yhteneväiset erottuen ainoastaan muutaman parametrin osalta:
- x-paikka (x-koordinaatti)
- y-paikka (y-koordinaatti)
- halkaisija (tai säde)
- väri, jne...
Ei ole siis ollenkaan järkevä kirjoittaa lähes samaa koodia useaan kertaan, koska yhdelläkin tulee toimeen. Samalla pitää myös muistaa, että muutosten tekeminen yksinkertaistuu, koska nyt muutos pitää tehdä vain yhteen paikkaan (aliohjelmaan) usean sijasta.
Esimerkki (Java):
public class Esim
{
public static void main(String args[])
{
... koodia ...
try
{
piirraYmpyra(10, 20, 30, Color.BLUE);
piirraYmpyra(20, 20, 20, Color.RED);
piirraYmpyra(30, 48, 32, Color.BLACK);
piirraYmpyra(102, 220, 7, Color.GREEN);
piirraYmpyra(220, 300, 48, Color.GRAY);
piirraYmpyra(150, 300, 60, Color.ORANGE);
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
System.exit(1);
}
... koodia ...
}
private static void piirraYmpyra(int xpaikka, int ypaikka, int halkaisija, Color piirtovari) throws Exception
{
...
//yhteinen piirtokoodi tulee tähän
...
if (vitullinenKoordinaatti == true)
{
throw new Exception("Mitka vitun koordinaatit oikein annoit?");
}
}
}
Tuon esimerkin lisäksi aliohjelma voi palauttaa esim. jonkin parametrien perusteella laskemansa arvon, mutta siinäkin perusajatus säilyy; - samaa koodia ei kirjoiteta kahteen kertaan.
Jonttu
Aliohjelmia voisi ajatella eräänlaisina komponentteina joista voit muodostaa rakennuspalikoita.
Ohjelma jakautuu useampiin loogisiin yksiköihin mistä on mm. helpompi etsiä virheitä(debuggaus).
Hyvin tehtyjä aliohjelmia voi useasti käyttää muissakin ohjelmissa.
erilaisia aliohjelmia:
Sub tee_jotain()
'ei palauta arvoa
End Sub
Function teejotain()As Integer
'palauttaa arvon
'jos esim "As Integer"(paluuarvon tyyppi) puuttuu
' funktio palauttaa Variant tietotyypin
End Function
Property - aliohjelmia käytetään palauttamaan/sijoittamaa arvoja sekä asettamaan
viittauksia objekteihin