Algoritmit ja tietorakenteet TP03S Syksy 2005 Tehtävä 13. (Rekursio) Kirjoita rekursiivinen funktio, joka laskee "mustetahraan" kuuluvien ruutujen lukumäärän. Ohjelmassa käytetään kaksi- ulotteista taulukkoa kuvaamaan ruudukkoa. Ruudukon ruudussa voi olla mustetta tai ei (ruutu on siis tyhjä tai ei). Tahra muodostuu yhtenäisestä alueesta, jonka jokaisessa ruudussa on mustetahra. Mustetahrainen ruutu liittyy alueeseen, jos siitä on yhteys johonkin alueen mustetahraiseen ruutuun suoraan ylös, suoraan alas tai vinottain ylös tai vinottain alas. Funktiolle välitetään ruudukko ja yhden ruudun koordinaatit. Funktio palauttaa sen mustetahran koon (tahraan kuuluvien ruutujen lukumäärän), jonka sisällä annettu ruutu on. Tässä ratkaisussa funktio saa muuttaa sille annetun taulukon sisältöä. Verkossa on pohjaksi tähän tehtävään (linkki tähän tiedostoon johtavan linkin vieressä pääsivulla) valmis pääohjelma blobbase.c. Riittää siis, kun kirjoitat funktion CellCount ja testaat sen. Lisäpohdintaa. Jos vaatimuksena olisi, että funktio ei saa muuttaa sille välitetyn taulukon sisältöä, minkälaisen ratkai- sun silloin kehittäisit?