Ohjelmoinnin perusteet

Wikikirjastosta

Ohjelmoinnilla tarkoitetaan tietokoneelle tehtävän ohjelman, tietokoneohjelman toteuttamista.

Ohjelmoinnissa tarvitaan ohjelmointikieltä sekä ohjelmointikielestä riippuen joko kääntäjää tai tulkkia. Ohjelmaa voidaan ajatella komentosarjana, jonka tietokone suorittaa ohjelman käyttäjän pyynnöstä ja halusta.

Ohjelmointikielten jaottelu[muokkaa | muokkaa wikitekstiä]

Ohjelmointikielet jaetaan niiden kieliopin mukaan lausekielisiin ja konekielisiin ohjelmointikieliin. Lausekieliset ohjelmointikielet muodostuvat lausekkeista, joissa käytetään luettavissa olevia komentoja. Konekieliset ohjelmat ovat vain tietyn tietokonetyypin ymmärtämässä muodossa.

Ohjelmointikielet voidaan jaotella myös niiden suoritustavan mukaan käännettäviin ja tulkattaviin kieliin. Käännettävä kieli käännetään ohjelmointikielen kääntäjällä lausekielestä tietokoneen ymmärtämään konekieleen ennen ohjelman suorittamista. Tulkattava ohjelmointikieli tulkataan konekielelle ohjelman suorituksen aikana.

Kolmas tietokoneohjelmien jaottelu jakaa ohjelmointikielet proseduraalisiin ja olioperustaisiin ohjelmointikieliin. Proseduraalinen ohjelmointikieli jäsennetään suoritettaviin ohjelmalohkoihin aliohjelmien eli funktioiden avulla, kun taas olio-ohjelmoinnissa pyritään toteuttamaan ohjelmointiongelmasta olioita, jotka toimivat itsenäisesti.

Yleisiä nykyisin käytössä olevia käännettäviä ohjelmointikieliä ovat C ja C++. C-kieli on proseduraalinen, ja C++ on C-kielen pohjalta kehitetty olio-ohjelmointikieli. WWW:n yleistyminen on tuonut käyttöön runsaasti tulkattavia skriptikieliä, joista yleisimpiä ovat JavaScript, Perl, PHP sekä ASP.

Tämän kirjan esimerkeissä käytetään JavaScriptiä, joka on www-selaimissa toimiva skriptikieli, tosin sen voi kytkeä pois ja siksi ei toimi kaikkien selaimissa.

JavaScript ja WWW:n selainohjelmointi[muokkaa | muokkaa wikitekstiä]

JavaScript on alunperin Netscapen kehittämä tulkattava kieli, jonka tarkoitus on tuoda vuorovaikutteisuutta (eli interaktiivisuutta) www-sivuille. Netscapen jalanjälkiä seuraten Microsoft toteutti omalle Internet Explorer -selaimelleen JavaScriptistä oman JScript-skriptikielen. Kaikki nykyaikaiset www-selaimet tukevat JavaScriptiä, mutta valitettavasti kaikkien selainohjelmien JavaScript-toteutus poikkeaa hieman toisistaan. JavaScript on standardoitu ECMAScript-nimelle, ja selainohjelmat tukevat ECMAScript-standardin yleisimpiä määrityksiä kohtalaisen hyvin. ECMAScript-standardin voit ladata osoitteesta http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf

Ohjelmointiympäristö[muokkaa | muokkaa wikitekstiä]

Ohjelmointiympäristö on ohjelma, jolla ohjelmoija luo ohjelmia. Yksinkertaisimmillaan ohjelmointiympäristö on tekstieditori, jolla tuotetaan lähdekoodia.


Tämän kirjan esimerkkien ja harjoitusten toteuttamiseen tarvitaan seuraavat ohjelmat:

  • WWW-selainohjelma (ilmeisesti sinulla on sellainen, koska luet tätä kirjaa)
  • Tekstieditori (käyttöjärjestelmäsi mukana toimitettu editori riittää tähän)
    • kannattaa kuitenkin ladata jokin tekstieditori, joka tukee vähintään erilaisin värein JavaScript-tulkkauskieltä, esim. Notepad++ tai ConText

Ensimmäinen tietokoneohjelmani[muokkaa | muokkaa wikitekstiä]

Koska JavaScript toimii www-selaimessa, kaikki kirjan ohjelmaesimerkit ja harjoitukset tallennetaan HTML-sivuina (monimutkaisemmat ohjelmat voidaan tallentaa myös erillisinä JavaScript-tiedostoina, mutta sen opit myöhemmin). Jos olet opiskellut HTML-kielen perusteet, sinulla on riittävä osaaminen jotta pääset alkuun. Jos HTML-kieli ei ole sinulle tuttu, sinun kannattaa perehtyä johonkin HTML-oppaaseen.

Ohjelmoinnin opiskelu kannattaa aloittaa tekemällä, joten avaa tekstieditori ja kirjoita siihen seuraava lähdekoodi:


<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<HEAD>
<TITLE>Ensimmäinen JavaScript-ohjelmani</TITLE>
</HEAD>
<BODY>
Alla oleva rivi on tulostettu JavaScriptin avulla:<BR/>
<SCRIPT language="javascript">
document.writeln('Hello world');
</SCRIPT>
</BODY>
</HTML>

Tallenna tiedosto nimellä helloworld.html, ja avaa tiedosto selainohjelmassa. Jos esimerkkitiedoston tallennus onnistui, ja sait avattua tiedoston selaimessasi pitäisi näkyä tämän kaltainen teksti.

Alla oleva rivi on tulostettu JavaScriptin avulla Hello world

Hello World rivi riviltä[muokkaa | muokkaa wikitekstiä]

Käytämme ohjelmoinnissa yksinkertaisuuden vuoksi tuttua ympäristöä, mutta älä huoli: voimme käydä tästä huolimatta hyvin läpi kaikki tärkeimmät ohjelmointiin liittyvät seikat. Koska kyseessä on ensimmäinen esimerkki, lienee tarpeen tutkia ohjelman sisältö tarkkaan.

<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<HEAD>
<TITLE>Ensimmäinen JavaScript-ohjelmani</TITLE>
</HEAD>
<BODY>
Alla oleva rivi on tulostettu JavaScriptin avulla:<BR/>

Ohjelman ensimmäiset yhdeksän riviä kuuluvat tavalliseen HTML-asiakirjaan, emmekä tarkastele rivien sisältöä tarkemmin. Seuraava rivi kiinnostaa meitä jo enemmän:

<SCRIPT language="javascript">

Tämä rivi kertoo selainohjelmalle, että tulossa on JavaScript-kielistä lähdekoodia. Tämän <SCRIPT>-tagin jälkeiset rivit annetaan JavaScript-tulkin suoritettavaksi.

document.writeln('Hello world');

Tämä rivi sisältää jo oikeaa ohjelmointia - klassisen Hello World -rivin. Rivi alkaa ohjelmointikielen komennolla, ja komentoa pyydetään tulostamaan teksti 'Hello World'. Juuri tämän tekstin näet selaimen ikkunassa kuten pitääkin.

</SCRIPT>

JavaScript-koodilohko päätetään </SCRIPT> -tagiin. Loput rivit päättävät HTML-asiakirjan:

</BODY>
</HTML>

Tietokoneohjelman peruskäsitteitä[muokkaa | muokkaa wikitekstiä]

Syöte ja tuloste[muokkaa | muokkaa wikitekstiä]

Syöte tarkoittaa ohjelman saamia tietoja, ja tuloste ohjelman antamia tietoja. Yksinkertaisesti toimivaa ohjelmaa voidaan kuvata seuraavasti:


Syöte --> Ohjelma --> Tuloste


Todellisuudessa ohjelmat ovat harvoin tällaisia: yleensä ohjelma ottaa syötettä ja antaa tulostetta vuorotellen koko ohjelman suoritusajan. Voit ajatella esimerkkinä vaikka kuvankäsittelyohjelmaa:

Käyttäjä antaa ohjelmalle syötettä hiiren ja näppäimistön avulla. Lisäksi ohjelma ottaa syötettä kiintolevyltä lukemalla esimerkiksi avattavan kuvatiedoston. Kuvankäsittelyohjelma tulostaa muokattavaa kuvaa näyttöön jatkuvasti - aina kun käyttäjä muuttaa jotakin, kuva tulostetaan näyttöön. Käyttäjä saattaa pyytää ohjelmaa tulostamaan kuvan tulostimelle tai tiedostoon, jolloin kuva tallennetaan. WWW-selainohjelmoinnissa syötettä voidaan ottaa vastaan esimerkiksi tunnistamalla HTML-lomakkeen elementtien arvoja tai hiiren liikkeitä, tai ottamalla vastaan käytäjän antamaa näppäimistösyötettä kysymysikkunassa. Tulostetta voidaan antaa esimerkiksi selaimen tilariville, asiakirjaan tekstinä, muuttamalla lomake-elementtien sisältöä, vaihtamalla kuvia tai näyttämällä käyttäjälle huomautusikkuna.

Muuttujat[muokkaa | muokkaa wikitekstiä]

Muuttuja on ohjelmoijan kannalta tiedon varastointipaikka. Ohjelmoija tallentaa muuttujiin tietoa tiedon käsittelemistä varten. Muuttuja määritellään esittelemällä muuttuja ja usein muuttujalle annetaan myös arvo esittelyn yhteydessä:

var x=1;

Ylläolevassa esimerkissä määritellään muuttuja x, ja sen arvoksi sijoitetaan 1. Muuttujasta tulee lukumuuttuja ja sen arvoa voidaan käsitellä kuten lukuja käsitellään: laskemalla. Muuttujan arvo voidaan myös tulostaa:

document.writeln(x);

Muuttujien tietotyypit[muokkaa | muokkaa wikitekstiä]

Muuttujan tietotyyppi vaikuttaa siihen, kuinka muuttujan sisältöä voidaan käsitellä. Eri ohjelmointikielissä muuttujien tietotyypit vaihtelevat, mutta useimmissa tietotyypit ovat samankaltaisia kuin JavaScriptissä. JavaScriptissä muuttujan tietotyyppi voi olla:

  1. Määrittelemätön (engl. Undefined)
  2. Tyhjä (engl. Null)
  3. Totuusarvo eli tosi tai epätosi (engl. True tai False)
  4. Merkkijono (engl. String)
  5. Luku (engl. Number)

JavaScript on heikosti tyypitetty ohjelmointikieli. Ohjelmoijan kannalta heikosti tyypitetty ohjelmointikieli on helppo, koska muuttujien tietotyyppejä ei tarvitse määritellä muuttujaa määriteltäessä, ja muuttujan tietotyyppiä voidaan muuttaa helposti.

Tietokoneohjelman lauserakenne[muokkaa | muokkaa wikitekstiä]

  • Ehtolauseet
  • Toistorakenteet

Aliohjelmat eli funktiot[muokkaa | muokkaa wikitekstiä]

Ohjelmoija voi määritellä usein suoritettavista tai useassa ohjelman eri kohdassa toistuvista toimenpiteistä aliohjelmia eli funktioita.

Aliohjelman määrittely[muokkaa | muokkaa wikitekstiä]

Aliohjelma määritellään avainsanalla function:

function varoitus()
{
alert('Olet tekemässä jotakin vaarallista');
}

Function-avainsanan jälkeen annetaan *aliohjelman nimi*. Lohkosulkujen sisällä oleva ohjelmakoodi on aliohjelman runko, joka suoritetaan aliohjelmaa kutsuttaessa.

Aliohjelman kutsuminen[muokkaa | muokkaa wikitekstiä]

Aliohjelmaa kutsutaan sen nimellä:

varoitus();

Huomaa, että aliohjelman nimen jälkeen kirjoitetaan sulkumerkit auki ja kiinni.

Aliohjelman parametrit[muokkaa | muokkaa wikitekstiä]

Parametrien avulla välitetään tietoja aliohjelmalle. Aliohjelmaparametrien tarkoitus on tehdä aliohjelmasta monipuolisempi: samaa aliohjelmaa voidaan käyttää useissa eri tilanteissa. Aliohjelman vastaanottamat parametrit mainitaan aliohjelman määrittelyssä:

function varoitus(varoitusteksti)
{
alert(varoitusteksti);
}

Yllä olevassa esimerkissä oleva aliohjelma varoitus() ottaa yhden parametrin (jonka nimi on varoitusteksti). Samaa aliohjelmaa voidaan käyttää varoitustekstistä riippumatta. Aiempi ilman parametria toimiva aliohjelma tulosti aina saman varoitustekstin. Parametri annetaan aliohjelman kutsussa sulkumerkkien sisällä:

varoitus('Kiintolevytila on täynnä!');

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]