C-ohjelmointi syksy 2006
Harjoitus 5
Tehtävät käsitellään harjoitustilaisuuksissa 5.10 TO 12-14 salissa B119 ja 6.10 PE 12-14 salissa B119.
Kirjoita funktio, joka etsii merkkijonosta tiettyä merkkiä. Funktiolle annetaan parametreina merkkijono ja merkki. Funktio palauttaa arvonaan osoittimen merkkijonon ensimmäiseen sellaiseen merkkiin, jota etsitään. Ellei etsittävää merkkiä löydy, funktio palauttaa arvon NULL. Kirjoita funktiolle myös käyttöympäristö eli pääohjelma, josta kutsut sitä.
Kirjoita funktio void fill (char *p, int n, char pat), joka alustaa muistia seuraavasti: se täyttää osoitteesta p alkaen n muistitavua merkin pat arvolla.
Laadi ohjelma, joka saa komentoriviparametrina roomalaisen numeron (esim. MXLIV) ja tulostaa tämän numeron arabialaisina numeroina. Käsittele vain 1000 pienempiä arvoja.
Laadi ohjelma, jolle komentoriviparametreina voidaan antaa joko pelkkä tiedoston nimi (program file1) tai tiedoston nimi ja tulostettavien rivien lukumäärä (program file1 –d). Jos komentorivillä on vain tiedoston nimi, niin tiedostosta tulostetaan 20 ensimmäistä riviä näytölle, muuten tulostetaan d ensimmäistä riviä. Esimerkiksi program aputied -10 tulostaa tiedoston aputied 10 ensimmäistä riviä. Jos tiedostossa on vähemmän rivejä, niin tulostetaan niin monta riviä kuin on mahdollista. Varaudu myös erilaisiin virhetilanteisiiin.
Laadi "Master mind" ohjelma, jossa värillisten pallojen sijaan käytetään numeroja 1-8. Tietokone arpoo rivin ja käyttäjä arvaa aina koko rivin. Käyttäjälle kerrotaan jokaisen arvauksen jälkeen, kuinka monta oikeaa numeroa rivillä on oikeilla paikoilla. Lisäksi kerrotaan kuinka monta oikeaa numeroa on väärillä paikoilla.
.