Toteuta tehtävien 2 ja 3 ohjelmat C/C++:lla turvallisen ohjelmoinnin periaatteiden mukaisesti.

Tehtävä 1 (2 pistettä)

Asenna jokin valitsemasi staattinen analysaattori. Näistä löytyy ilmaisversioita. Tarkastele analysaattorilla valitsemaasi lähdekoodia, jossa on vähintään 100 riviä ohjelmakoodia. Tarkoitukseen voi hakea esimerkiksi avoimen lähdekoodin ohjelmiston. Tarkastele, mitä virheitä löytyy ja miten analysaattori ilmoittaa näistä. Jollei analysaattori löydä virheitä, lisää vähintään kaksi eri tyyppistä virhettä lähdekoodiin ja tarkastele, löytääkö analysaattori virheet.

Tehtävä 2 (2 pistettä)

Toteuta olio-ohjelma, jossa olion ominaisuutena on dynaamisesti varattu taulukko. Olion avulla taulukkoa voi käsitellä normaalisti eli sen indeksien arvoja voi lukea ja indekseihin voi asettaa arvoja. Yhtenä ominaisuutena on taulukon yhdistäminen toiseen, jolloin taulukon koko kasvaa. Huolehdi, että taulukko ei vuoda yli ja että muistinvaraus ja –vapautus toimii oikein. Huomaa tarkistaa myös, että muistinvaraus onnistuu. Testaa pääohjelmassa taulukon kaikki eri toiminnot ja tulosta taulukon sisältö eri vaiheissa. Kokeile myös virheideksointeja.

Tehtävä 3 (2 pistettä)

Toteuta ohjelma, joka pystyy yhdistämään kaksi eri tiedostoa. Ohjelmalle voi syöttää yhdistettävien tiedostojen nimet ja tuloksena on näiden yhdistelmä. Huolehdi tiedostojen käsittely oikein eli toteuta virheidenkäsittely ja anna virheilmoituksia sen mukaan, mikä tiedostojen käsittelyssä menee pieleen.