Tietojenkäsittelytiede				Harjoitustehtäviä
Graafisten käyttöliittymien toteutus		7.2.2001



1.  Tarkastellaan luennolla esitettyä jakoa käyttöliittymän abstrak-
    tiotasoihin. Mille tasoille seuraavat resurssit sijoittuvat tässä
    ajattelussa: bittikuvio, valintaikkuna, kirjasinlaji, pääteikku-
    nan historialistan pituus, varmistuskysymysten esittäminen (esi-
    tetään / ei esitetä).


2.  Resurssina olevan valintaikkunan vuorovaikuttimien määrää ja la-
    jeja voidaan periaatteessa muuttaa koskematta ohjelmaan. Keksi
    jokin käyttö tälle ominaisuudelle. Mitä ohjelman tulisi voida ky-
    syä valintaikkunan ominaisuuksista, jotta tällainen ohjelma voi-
    taisiin laatia?


3.  Lisää (kynä-ja-paperi-harjoituksena) luentojen luvussa 4 esitel-
    tyyn yksinkertaiseen piirto-ohjelmaan toinen painike, jota paina-
    malla käyttäjä voi kokonaan estää lopussa olevan varmistuskysymyk-
    sen esittämisen.


x2.  +-------------------------------------------------------+
     |            Tämä tehtävä on pakollinen.                |       
     |                                                       |
     | Ratkaisu on lähetettävä sähköpostina osoitteella      |
     | gkt01@cs.joensuu.fi viimeistään 6.2.2001 klo 8.00.    |
     |                                                       |       
     | ÄLÄ LÄHETÄ VASTAUSTA LIITETIEDOSTONA VAAN OSANA ITSE  | 
     | KIRJEEN TEKSTIÄ !!!                                   |       
     |                                                       |
     | Tuo harjoitustilaisuuteen ohjelmalistaus ja valmiiksi |
     | täyttämäsi x-tehtävän arviointilomake.                |
     +-------------------------------------------------------+


    Laadi ja testaa Delphillä merkkipohjainen ohjelma, joka toimii 
    samoin kuin seuraava ohjelma, mutta joka hakee kaikki käyttä-
    mänsä merkkijonot resurssitiedostosta. Mikäli jotain jonoa ei 
    ole resurssitiedostossa, niin korvaa se jonolla '(Teksti xxx 
    puuttuu)', missä xxx on ohjelman jonolle käyttämä ID-numero.

    program karkausvuosi;
    var vuosi: integer;
    begin
      writeln('Karkausvuoden ilmoittaminen.'); writeln;
      write('Anna vuosiluku: '); readln(vuosi);
      if (vuosi mod 400 = 0) or
         ((vuosi mod 4 = 0) and (vuosi mod 100 <> 0))
      then writeln('Vuosi ',vuosi:4,' on karkausvuosi')
      else writeln('Vuosi ',vuosi:4,' ei ole karkausvuosi')
   end.

   Laadi kaksi eri resurssitiedostoa - suomenkielinen ja englannin-
   kielinen - ja vaihda käyttöliittymän kieltä kääntämättä ohjelmaa
   uudelleen. Lähetä myös resurssitiedostot sähköpostina.