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.

  1. 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ä.

  2. 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.

  1. Laadi ohjelma, joka saa  komentoriviparametrina roomalaisen numeron (esim. MXLIV) ja tulostaa tämän numeron arabialaisina numeroina. Käsittele vain 1000 pienempiä arvoja.

  2. 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.

  3. 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.

.