Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen. Tarkka suunnitelma ongelmanratkaisusta ja sen toteuttamisesta säästää myöhemmin paljon aikaa ja vaivaa mahdollisista virheiden etsimisistä. Hyvin toteutettu suunnitelma ongelmanratkaisusta on looginen ja selkeä.
Algoritmit Ohjelman tekemisen hahmottamisessa käytetään apuna algoritmeja. Algoritmia voitaisiin kuvata esimerkiksi tietyn ongelman ratkaisemiseksi annettuina täsmällisinä, suoritettavissa olevina ristiriidattomina peräkkäisinä käskyinä, joita on äärellinen määrä. Muodostetun algoritmin tulee toimia kaikissa mahdollisissa tapauksissa.
Muodosta algoritmi seuraavasta tapauksesta: Laita numerot 1, 5 ja 8 järjestykseen suurimmasta pienimpään. Käytössä olevat toiminnot ovat kahden luvun vertaaminen keskenään ja niiden paikan vaihtaminen.
Esimerkki algoritmista 1 Vertaa ensimmäistä ja toista lukua keskenään. Jos toinen luku on suurempi kuin ensimmäinen, vaihda lukujen paikkoja. uusi järjestys 5, 1, 8 2 Vertaa toista ja kolmatta lukua keskenään. Jos kolmas luku on suurempi kuin toinen, vaihda lukujen paikkaa uusi järjestys 5, 8, 1 3 Vertaa ensimmäistä ja toista lukua keskenään. Jos toinen luku on suurempi kuin ensimmäinen, vaihda lukujen paikkoja. uusi järjestys 8, 5, 1 4 Jatka vertailua, kunnes olet tehnyt kierroksia yhtä monta kuin mitä joukossa on alkioita.
Tehtävän 3 algoritmi vaihtoehto a 1 Vertaa kirjaimia 1 ja 2. Jos kirjain 2 on aakkosissa ennen kirjainta 1 vaihda kirjaimien paikkaa. Uusi järjestys D, G, H, C 2 Vertaa kirjaimia 2 ja 3. Jos kirjain 3 on aakkosissa ennen kirjainta 2 vaihda kirjaimien paikkaa. Uusi järjestys D, G, H, C 3 Vertaa kirjaimia 3 ja 4. Jos kirjain 4 on aakkosissa ennen kirjainta 3 vaihda kirjaimien paikkaa. Uusi järjestys D, G, C, H 4 Toista kohdat 1-3, kunnes tulee kierros, jolloin ei tarvitse tehdä yhtään vaihtoa. Kierroksia yhteensä 3. Vertailuja 9 kappaletta.
Tehtävän 3 algoritmi vaihtoehto b 1 Vertaa kirjaimia 1 ja 2. Jos kirjain 2 on aakkosissa ennen kirjainta 1 vaihda kirjaimien paikkaa. Uusi järjestys D, G, H, C 2 Vertaa kirjaimia 1 ja 3. Jos kirjain 3 on aakkosissa ennen kirjainta 1 vaihda kirjaimien paikkaa. Uusi järjestys D, G, H, C 3 Vertaa kirjaimia 1 ja 4. Jos kirjain 4 on aakkosissa ennen kirjainta 1 vaihda kirjaimien paikkaa. Uusi järjestys C, G, H, D 4 Vertaa kirjaimia 2 ja 3. Jos kirjain 3 on aakkosissa ennen kirjainta 2 vaihda kirjaimien paikkaa. Uusi järjestys C,G, H, D
Tehtävän 3 algoritmi vaihtoehto b 5 Vertaa kirjaimia 2 ja 4. Jos kirjain 4 on aakkosissa ennen kirjainta 2 vaihda kirjaimien paikkaa. Uusi järjestys C,D, H, G 6 Vertaa kirjaimia 3 ja 4. Jos kirjain 4 on aakkosissa ennen kirjainta 3 vaihda kirjaimien paikkaa. Uusi järjestys C,D, G, H 7 Lopeta, kun vertailtavia lukuja ei enää ole. ( Vertailuja 6 kappaletta )
Tehtävä 4A 1 Siirrä ensimmäinen numero muistipaikkaan. Muistipaikka: 7 2 Vertaa muistipaikan numeroa ja toista numeroa keskenään. Jos toinen numero on muistipaikan numeroa suurempi, vaihda toinen numero muistipaikkaan. Muistipaikka: 55 3 Vertaa muistipaikan numeroa ja kolmatta numeroa keskenään. Jos kolmas numero on muistipaikan numeroa suurempi, vaihda kolmas numero muistipaikkaan. Muistipaikka: 65 4 Vertaa muistipaikan numeroa ja neljättä numeroa keskenään. Jos neljäs numero on muistipaikan numeroa suurempi, vaihda kolmas numero muistipaikkaan. Muistipaikka: 65
Tehtävä 4A algoritmi 5 Vertaa muistipaikan numeroa ja viidettä numeroa keskenään. Jos viides numero on muistipaikan numeroa suurempi, vaihda viides numero muistipaikkaan. Muistipaikka: 88 6 Vertaa muistipaikan numeroa ja kuudetta numeroa keskenään. Jos kuudes numero on muistipaikan numeroa suurempi, vaihda kuudes numero muistipaikkaan. Muistipaikka: 88 7 Lopeta vertailu, kun olet päässyt lukujonon viimeiseen lukuun. Muistipaikassa oleva numero on luvuista suurin.
Tehtävän 4B algoritmi Luvut laitetaan ensin suuruusjärjestykseen jommallakummalla tehtävän 3 tavoista. Tällöin suurin luku on lukujonon viimeinen luku. ( Tai ensimmäinen luku, jos järjestys on suurimmasta pienimpään. )
Tehtävän 5 algoritmi Luvut laitetaan suuruusjärjestykseen jommallakummalla tehtävän 3 tavoista. Tällöin toiseksi suurin luku on toiseksi viimeisenä lukujonossa. ( Tai toinen luku, jos järjestys on suurimmasta pienimpään. )
Vuokaavio Algoritmien suunnittelussa ja esittämisessä käytetäänkin usein vuokaavioesitystä. Vuokaavioesityksellä algoritmin toiminta voidaan esittää yksinkertaisemmin kuvioiden avulla eikä samaa selitystä tarvitse turhaan toistaa.
Vuokaavioissa käytettävät merkit Soikiolla kuvataan algoritmin aloitusta ja lopetusta. Aloitussoikiosta lähtee vain yksi nuoli, eikä siihen voi tulla yhtään nuolta. Lopetussoikioosta ei voi lähteä nuolia. Suorakulmio kuvaa tietokoneen prosessointia. Tietokoneen suorittama tehtävä kirjoitetaan suorakaiteen sisään. Suorakulmiosta voi lähteä vain yksi nuoli! Suunnikas kuvaa päätöksen tekoa eli eri vaihtoehtojen valintaa. Suunnikkaasta lähtee aina kaksi nuolta. Nuolilla kuvataan ohjelman etenemissuuntaa.
Harjoitus 6 Aloita Tarkista säätila Epätosi Sataa Tosi Ota sateenvarjo Lähde ulos Lopeta
Harjoitus 7 Aloita Heitä uistin veteen Epätosi Sait kalan Tosi Irrota kala uistimesta ja heitä veteen Mittaa kala Lopeta Tosi Kala on täysimittainen Epätosi
Harjoitus 8A Aloita Heitä noppa Laske silmälukujen summa Tosi Summa on yli 12 Epätosi Lopeta
Aloita Harjoitus 8B Heitä noppa Silmäluku on 4 Epätosi Laske silmälukujen summa Tosi Summa on yli 12 Epätosi Tosi Lopeta
Harjoitus 8C Aloita Heitä noppa Laita silmäluku muistiin Heitä noppa Siirrä silmäluku muistiin Tosi Vertaa silmälukua muistissa olevaan Luku on sama Epätosi Lopeta
Logiikka ohjelmoinnissa Ohjelmoinnissa on paljon valintoja ja toistoa. Edellä tehdyistä algoritmeista voi huomata, että valinta tehtiin aina jonkin ehdon perusteella. Esimerkiksi tehtävässä 6 sateenvarjon mukaan ottamisen ehtona oli sade. Ohjelmoinnissa käytettävät valinta-tapaukset esitetäänkin ehtolausekkeina. Ehtolausekkeissa asioita verrataan toisiinsa. Tehtävässä 6 verrataan ulkona vallitsevaa säätä ehtoon ulkona sataa. Ehto voi ohjelmoinnissa olla joko tosi tai epätosi. Tehtävässä 6 väite ulkona sataa on siis ehtona joko tosi tai epätosi.
Vertailuoperaattorit Ohjelmoinnin ehtolausekkeissa asioiden samanlaisuus tai erilaisuus selvitetään vertailuoperaattoreiden avulla. Java-ohjelmoinnissa vertailuoperaattorit ovat: == Yhtä suuri kuin!= Erisuuri kuin > Suurempi kuin < Pienempi kuin >= Suurempi tai yhtä suuri kuin <= Pienempi tai yhtä pieni kuin
Esimerkki vertailuoperaattoreista 2 >= 1 Tosi väite 3!= 3 Epätosi väite a < c Tosi väite
Ja- ja tai-operaattorit Monimutkaisempien ehtojen täyttymisen tutkimiseen tarvitaan loogisia operaattoreita. Loogisia operaattoreitaovat esimerkiksi ehdolliset ja- ja tai-operaattorit. Yhdistettäessä ehdot ja-operaattorilla, on molempien ehtojen oltava tosia, jotta lopputulos olisi tosi. Yhdistettäessä ehdot tai-operaattorilla, on lopputulos tosi useammassa eri vaihtoehdossa.
Ja-operaattori esimerkki Olkoon lauseet A = Paidassa on punaista ja B = Paidassa on vihreää. Tarkastellaan ja-operaattorilla yhdistettyjä ehtoja seuraavissa tapauksissa: I) A on tosi ja B on tosi? ->Väite A ja B on tosi. II) A on epätosi ( Paidassa ei ole punaista ) ja B on tosi? -> Väite A ja B on epätosi. III) A on tosi ja B on epätosi ( Paidassa ei ole vihreää ) -> Väite A ja B on epätosi. IV) A on epätosi ( Paidassa ei ole punaista ) ja B on epätosi ( Paidassa ei ole vihreää )? -> Väite A ja B on epätosi.
Tai-operaattori Olkoon lauseet A = Paidassa on punaista ja B = Paidassa on vihreää. Tarkastellaan tai-operaattorilla yhdistettyjä ehtoja seuraavissa tapauksissa: I. Onko väite A tai B tosi, jos A on tosi ja B on tosi? ->Väite A tai B on tosi. II. Onko väite A tai B tosi, jos A on epätosi ja B on tosi? -> Väite A tai B on tosi. III. Onko väite A tai B tosi, jos A on tosi ja B on epätosi? -> Väite A tai B on tosi. IV. Onko väite A tai B tosi, jos A on epätosi ja B on epätosi? -> Väite A ja B on epätosi.