html>C-ohjelmointi, laskuharj. 1

C-ohjelmointi syksy 1999

Harjoitus 5 (18.-22.10.1999)

1. Kirjoita ohjelma, joka tulostaa annettua merkkiä käyttäen suorakulmion, jonka leveys on k merkkiä, korkeus n riviä. Ohjelma saa komentorivillä kuvion leveyden, korkeuden ja käytettävän merkin.
Esim. nelikulmio  10  4 c    tulostaa 
        cccccccccc 
        cccccccccc
        cccccccccc
        cccccccccc

2. Tee oma versiosi strcat-funktiosta. Funktio lisää merkkijonon s2 merkkijonon s1 perään. Parametri n kertoo merkkijonon s1 maksimipituuden.

3. Kirjoita ohjelma, jolla teet komennon nurin. Komento nurin kääntää sille argumentteina annetut merkkijonot päinvastaiseen järjestykseen. Esimerkiksi nurin tämä kääntyy tulostaa ämät yytnääk. Ps. Suoritettavan ohjelman nimeksi saat nurin kääntämällä sen optiolla -o nurin: gcc -Wall -ansi -o nurin .c

4. Tee ohjelma, joka arpoo 7 lottonumeroa ja 3 lisänumeroa. Sama numero saa lottonumeroissa esiintyä korkeintaan kerran. Jaa ohjelma järkevästi funktioihin. Tee numeroarvoista 7 ja 3 helposti muutettavia.

5. Kirjoita funktio, joka laskee kahden 10*10 -matriisin summan. Matriisit lasketaan yhteen summaamalla vastinalkiot keskenään. Palauta tulos muuttujaparametrissa. Kirjoita myös pääohjelma, jolla testaat funktiotasi. 10*10 -matriisi on kaksiulotteinen 10*10 -taulukko.

6. Kirjoita ohjelma, joka tulostaa C-kielisestä ohjelmasta ohjelmassa määriteltyjen funktioiden esittelyt (prototyypit). Esimerkiksi, jos ohjelmassa on määritelty funktiot int r(int maxvalue), void lajittele(int taulukko[], int koko), void st(int taulukko[], int koko, int raja) ja int main(), niin tehtävän 6 tulostuksena tulisi:

      int r(int maxvalue);
      void lajittele(int taulukko[], int koko);
      void st(int taulukko[], int koko, int raja);
      int main();
Yritä tehdä ohjelmastasi mahdollisimman yleinen, niin että se toimii erilaisilla C-ohjelmilla.