1 / 36

Ohjelman perusrakenteet

Ohjelman perusrakenteet. 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE. Ohjelman perusrakenteet. 1. PERÄKKÄISRAKENNE koko ohjelman toiminta on peräkkäinen kaikki ohjelman toiminnot suoritetaan loogisesti peräkkäin kerran tehtyä toimintoa ei voi enää peruuttaa

corin
Download Presentation

Ohjelman perusrakenteet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ohjelman perusrakenteet 1.PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE @ Leena Lahtinen Helia 10.1.2006

  2. Ohjelman perusrakenteet • 1. PERÄKKÄISRAKENNE • koko ohjelman toiminta on peräkkäinen • kaikki ohjelman toiminnot suoritetaan loogisesti peräkkäin • kerran tehtyä toimintoa ei voi enää peruuttaa • ohjelman kulkua ei voi eikä pidä ohjata takaisin ohjelman alkuun päin @ Leena Lahtinen Helia 10.1.2006

  3. VALINTARAKENNE • 2. VALINTARAKENNE • valintarakennetta käytetään ohjelmassa vaihtoehtoisten toimintojen suorittamiseen • ehdon jälkeen ohjelman kulku haarautuu kahteen vaihtoehtoiseen kulkusuuntaan, joista aina vain toinen suoritetaan @ Leena Lahtinen Helia 10.1.2006

  4. VALINTARAKENNE • valintarakenne alkaaaina kysymyksellä eli ehdolla • kysymys eli ehtolauseke on aina sulkujen sisällä • ehtolausekkeella on aina kaksi vastausta: • tosi • epätosi • perustoiminta tiedon vertailu tarkoittaa samaa asiaa eli valinrakennetta @ Leena Lahtinen Helia 10.1.2006

  5. VALINTARAKENNE • Ehdon totuustilan sääntöjä • Tosi: • ehto pitää rakentaa niin, että tosi osaan tulee aina toimenpiteitä • tosi osa sisältää aina 1 - n. kpl toimenpiteitä • Epätosi: • voi puuttua eli se ei sisällä yhtään toimenpidettä (0 kpl) • tai sisältää 1 - n. kpl toimenpiteitä @ Leena Lahtinen Helia 10.1.2006

  6. VALINTARAKENNE • YKSINKERTAINEN EHTO • (lampotila > 0) • (lukumaara = = 100) • (luku1 < luku2) • (a >= b) • tosi ja epätosi tilanteet on suoraan ymmärrettävissä @ Leena Lahtinen Helia 10.1.2006

  7. VALINTARAKENNE UML –toimintakaavion symbooli: EHTO EPÄTOSI [lampotila > 0] TOSI TULOSTA ”Ei pakkasta” @ Leena Lahtinen Helia 10.1.2006

  8. VALINTARAKENNE • Edellinen Javalla: if (lukumaara = = 100){y = y + 1 ;tosi-osan lohko}Huom ! lohkosulut { ja } ! @ Leena Lahtinen Helia 10.1.2006

  9. VALINTARAKENNE • LOHKOSULKUJEN KÄYTTÖ • lohko muodostetaan aina aaltosulkeillaeli lohkon toiminnat ovat aaltosulkeiden sisällä • lohkon aloittaa vasen aaltosulku { ja sen lopettaa oikea aaltosulku } • tosi–osasta tehdään oma lohko • epätosi–osasta tehdään oma lohko @ Leena Lahtinen Helia 10.1.2006

  10. VALINTARAKENNE Esimerkki Javalla, jossa on mukana kaksi lohkoa:if (lukumaara = = 100){y = y + 1 ; x = 5 ; tosi - lohko}else{ y = y – 1 ;a = b / 7 ; epätosi – lohko} @ Leena Lahtinen Helia 10.1.2006

  11. VALINTARAKENNE YHDISTETTY EHTO • ehto koostuu useasta (2 – 3) kysymyksestä • yhdistetyn ehdon loogiset operaattorit: • JA • TAI @ Leena Lahtinen Helia 10.1.2006

  12. VALINTARAKENNE YHDISTÄVÄ SANA - > JA(syntvuosi > 1980 JA syntvuosi < 1990) • Ehdossa yksimuuttuja, syntvuosi • koko ehto on tosi vain silloin: • kun syntvuosi - muuttujan arvoalue on väliltä 1981-1989 • koko ehto on epätosi kahdessa tilanteessa: • muuttujan arvo on 1980 tai pienempi • muuttujan arvo on 1990 tai suurempi @ Leena Lahtinen Helia 10.1.2006

  13. VALINTARAKENNE YHDISTÄVÄ SANA -> JA (&&) • Edellinen Javalla: if (syntvuosi > 1980 && syntvuosi < 1990) { a = 0; c = 100 ; } @ Leena Lahtinen Helia 10.1.2006

  14. VALINTARAKENNE YHDISTÄVÄ SANA -> JA (hinta > 55,95 JA laji = = 1) • Ehdossa kaksi muuttujaa, hinta ja laji • koko ehto on tosi vain silloin: • kun molempiin ehtoihin tulee vastaus tosi eli • hinta on suurempi kuin 55,96 ja laji on yksi • koko ehto on epätosi: • jos jompi kumpi ehdoista on epätosi tai molemmat ehdot ovat epätosia @ Leena Lahtinen Helia 10.1.2006

  15. VALINTARAKENNE YHDISTÄVÄ SANA -> JA (&&) • Edellinen Javalla:if (hinta > 55.95 && laji = = 1){ ale = 5 ; summa = 0 ;}else{ ale = 10 ; laskuri -- ;} @ Leena Lahtinen Helia 10.1.2006

  16. VALINTARAKENNE YHDISTÄVÄ SANA -> TAI (kappale = = 10 TAI kappale >= 150) • Ehdossa yksimuuttuja, kappale • koko ehto on tosi kahdessa eri tilanteessa: • vain ensimmäinen ehto on tosi • vain toinen ehto on tosi • koko ehto on epätosi: • kun molemmat ehdot ovat epätosia @ Leena Lahtinen Helia 10.1.2006

  17. VALINTARAKENNE YHDISTÄVÄ SANA -> TAI ( || ) • Edellinen Javalla:if (kappale = = 10 || kappale >= 150){ summa = 0 ; a = 10 ;} @ Leena Lahtinen Helia 10.1.2006

  18. VALINTARAKENNE YHDISTÄVÄ SANA -> TAI(saldo < 0 TAI luottoraja < 1000.00) • Ehdossa kaksi muuttujaa saldo ja luottoraja • koko ehto on tosi kolmessa eri tilanteessa: • vain ensimmäinen ehto on tosi • vain jälkimmäinen ehto on tosi • molemmat ehdot ovat tosia • koko ehto on epätosi silloin: • kun molemmat ehdot ovat epätosia @ Leena Lahtinen Helia 10.1.2006

  19. VALINTARAKENNE YHDISTÄVÄ SANA -> TAI ( || ) • Edellinen Javalla:if (saldo < 0 || luottoraja < 1000.00){ summa = 0 ; a ++ ;} @ Leena Lahtinen Helia 10.1.2006

  20. VALINTARAKENNE • YHDISTETTYJÄ EHTOJA((vv >= 2000 JA vv < 2003) TAI koodi = = 1) • sulkujenkäyttö suositeltavaa • koko ehto on tosi tilanteissa: • jos vv on väliltä 2000 – 2002 • tai koodi on 1 • tai molemmat edellä mainitut ehdot ovat tosia • koko ehto on epätosi: • muuttujien muilla arvoilla @ Leena Lahtinen Helia 10.1.2006

  21. VALINTARAKENNE YHDISTETTYJÄ EHTOJA Edellinen Javalla:if ((vuosi >= 2000 && vuosi < 2003)|| kpl = = 1){ alku = 10 ; summa = 0 ;} @ Leena Lahtinen Helia 10.1.2006

  22. VALINTARAKENNE • Yhdistetyn ehdon sääntöjä: • ehtoon ei pidä laittaa liikaa kysymyksiä • suositus on yhdestä kolmeen (2 -3) • jos ehtoja on likaa, on hyvin vaikeaa mieltää milloin koko ehto on tosi ja milloin se on epätosi • useiden ehtojen sijaan käytä sisäkkäisiä ehtoja eli sisäkkäisiä valintarakenteita @ Leena Lahtinen Helia 10.1.2006

  23. VALINTARAKENNE • Sisäkkäinen valintarakenne • ehdon kysymykset hajoitetaan useampaan kysymykseen • yhteen kuuluvista kokonaisuuksista tehdään oma ehtolauseke @ Leena Lahtinen Helia 10.1.2006

  24. VALINTARAKENNE • Sisäkkäinen valintarakenne • ehdon tosi-osa samoin kuin epätosi-osa voi siis sisältää edelleen valintarakenteita • sisäkkäiset valintarakenteet ovat teknisesti täysin samanlaisia kuin valintarakenne yleensä @ Leena Lahtinen Helia 10.1.2006

  25. VALINTARAKENNE • seuraava lauseke tulisi tehdä sisäkkäisillä valintarakenteilla • esimerkki Javalla:if (((a < b) && (b = = c)) || c > d){ luku = 5 ;}else{ luku = 10 ;} @ Leena Lahtinen Helia 10.1.2006

  26. VALINTARAKENNE • Edellinen Javalla sisäkkäisinä rakenteina:if (a < b && b = = c) { luku = 5 ; } else { if (c > d) { luku = 5 ; } else { luku = 10 ; } } @ Leena Lahtinen Helia 10.1.2006

  27. VALINTARAKENNE • Erilaiset valintarakenteet: • if .. • if .. else .. • if .. else if .. • switch • ehto ? : @ Leena Lahtinen Helia 10.1.2006

  28. VALINTARAKENNE • Usean arvon vertailu eli monivalinta ja raja-arvojen vertailu • Arvojentehokas vertailu: • jokaisesta raja-arvosta tehdään yksi kysymys eli ehto • ei käytetä yhdistettyjä ehtoja • UML – kaaviossa oma esitystapansa • Javalla käytetään else if – muotoa tai switch - muotoa @ Leena Lahtinen Helia 10.1.2006

  29. VALINTARAKENNE if… else if – rakenne • esimerkki Javalla :Huom! vertailtavat arvot etenevät pienemmästä suurempaan.if (lampotila < -10) System.out.println (”Liikaa pakkasta”) ;else if (lampotila < 0) System.out.println (”Sopiva pakkanen”) ;else if (lampotila < 15) System.out.println (”Keväinen sää”) ;else if (lampotila < 25) System.out.println (”Kesäinen sää”) ;else System.out.println (”Helteinen sää”) ; @ Leena Lahtinen Helia 10.1.2006

  30. VALINTARAKENNE • SWITCH - rakenne • käytetään moni valinnassa • ehtomuuttujalla on useita eri arvoja, joilla ehto on tosi • korvaa if - valintarakenteen • saadaan selkeämpi kokonaisuus @ Leena Lahtinen Helia 10.1.2006

  31. VALINTARAKENNE • rakenne alkaa sanalla switch • sen jälkeen tulee suluissa ehtomuuttuja, johon voi liittyä myös esim. laskukaava • tämän jälkeen luetellaan kaikki ne ehtomuuttujan arvot, joilla ehto on tosi • lopussa voi olla lisäksi epätosi @ Leena Lahtinen Helia 10.1.2006

  32. VALINTARAKENNE • UML – kaavion esitystapa: [luku = = 2] a ++ ; a ++ ; break; break; [luku = = 5] b ++ ; break; [luvun muut arvot] muut ++ ; @ Leena Lahtinen Helia 10.1.2006

  33. VALINTARAKENNE • Edellinen Javalla ja switch - rakenteena:switch (luku){ case 2: a++ ; break ; case 5: b++ ; break ; default: muut ++ ;} @ Leena Lahtinen Helia 10.1.2006

  34. VALINTARAKENNE • edellinen esimerkki Javalla, kun käytetään else if – rakennetta:if (luku == 2) a++ ;else if (luku == 5) b++ ;else muut ++ ; @ Leena Lahtinen Helia 10.1.2006

  35. VALINTARAKENNE • Ehto ? : - rakenne • muuttuja = ((ehto) ? arvo : arvo) • rakennekoostuu neljästä osasta: • muuttuja, johon sijoitetaan kysymyksen tuloksena tuleva arvo (sijoitus) • ehto suluissa • ? – merkin jälkeen tosi–arvo • : – merkin jälkeen epätosi-arvo • Käytetään harvoin @ Leena Lahtinen Helia 10.1.2006

  36. VALINTARAKENNE • Edellisen ehdon esimerkki tapaus: • Jos laskuri on suurempi kuin 10, kpl – muuttuja saa arvokseen luvun 5, muuten arvon 0. • Javalla: kpl = ((laskuri > 10) ? 5 : 0) ; @ Leena Lahtinen Helia 10.1.2006

More Related