C-kieli, syksy 2004 Harjoitus 1 vko 43 Tehtävissä voit halutessasi käyttää kurssin alkuvaiheeseen tarkoitettuja syöttö ja tulostusmakroja (esitetty ohessa, käyttöesimerkki luentorungon sivulla 11, saatavana kurssin www-sivulta). Tee ohjelmat. Syötä ne tietokoneelle, käännä ne ja tarkasta niiden toiminta. Demotilaisuudessa ohjelmat esitetään dataprojektorilla, joten tallenna ne keskuskoneelle (cs tai cc). Demoissa otetaan pääteyhteys keskuskoneeseen. 1. Selvitä, miten vaikuttavat gcc -kääntäjän optiot -W -O -llibrary -S -DXXX 2. Kirjoita ohjelma, joka kysyy käyttäjältä kolme kokonaislukua, ja tulostaa ne suuruusjärjestyksessä pienimmästä suurimpaan 3. Muuta edellistä ohjelmaa siten, että se kysyy kolmen luvun ryhmiä (ja tulostaa ryhmän sisällön suuruusjärjestyksessä) toistuvasti kunnes käyttäjä antaa kolme samaa lukua yhdeksi ryhmäksi. 4. Kirjoita ohjelma, joka kysyy käyttäjältä kokonaisluvun n, ja laskee sekä tulostaa kyseisen luvun kertoman (1*2*3*...*n). 5. Muuta edellistä ohjelmaa siten, että ohjelma varmistaa, ettei kertoma ylitä suurinta käytettävissä olevaa kokonaislukua. Vihje: ota käyttöön limits.h, jossa on vakio INT_MAX. 6. Kirjoita ohjelma, joka lukee käyttäjältä kokonaisluvun n ja tulostaa näytölle n*n kokoisen neliön tähtiä. --------------------------------------------------------------------- /* ckieli.h */ /* C-makroja C-kieli -kurssin alkua varten */ /* Simo Juvaste 25.3.1998 */ /* peruskirjastot */ #include #include #include /* lukee kokonaisluvun */ #define lue(luku) scanf("%d", &luku) /* tulostaa kokonaisluvun */ #define tulosta(luku) printf("%d\n", luku) /* lukee reaaliluvun */ #define lue_reaali(luku) scanf("%f", &luku) /* tulostaa reaaliluvun */ #define tulosta_reaali(luku) printf("%f\n", luku) /* tulostaa merkkijonon */ #define tulosta_merkki(mjono) printf("%s\n", mjono)