previous next Up Title Contents Index

Tehtävä 9

a) Kirjoita ohjelma, joka arpoo satunnaisluvun 0-9 satunnaislukugeneraattoria käyttäen ja pyytää ohjelman käyttäjää arvaamaan näin arvotun luvun. Arvauksesta ohjelma ilmoittaa joko

- arvaus oli liian pieni
- arvaus oli liian suuri
- arvaus oli aivan oikein.

Ohjelma arpoo luvun lauseella: x = rand() % 10; (missä x on tyyppiä int).

Jotta ohjelma tuottaisi jokaisella suorituskerralla erilaisen satunnaisluvun, tulee satunnaislukugeneraattori alustaa ohjelmassa ennen satunnaisluvun arpomista. Alustaminen tehdään funktionkutsulla srand(time(NULL)); Kutsu kirjoitetaan ohjelman alkuun muuttujien määrittelyjen jälkeen.

Lisäksi tarvitaan seuraavat include-määrittelyt:

    #include <stdlib.h> 
    #include <time.h>

(srand()-funktio saa parametrinaan tietokoneen kellonajan, jonka perusteella se asettaa arvon satunnaislukugeneraattorin siemenluvulle, jota käyttäen satunnaisluku lasketaan. Jotta satunnaisluku olisi peräkkäisillä rand()-funktion kutsukerroilla aina eri, funktio rand() muuttaa siemenlukua jokaisen satunnaisluvun laskemisen jälkeen.)

b) Lisää ohjelmaan sellainen piirre, että se pyytää käyttäjää arvaamaan samaa lukua uudelleen, mikäli arvaus ei osunut oikeaan. Tulosta ohjelmassasi lopuksi arvauskertojen lukumäärä.

c) Lisää ohjelmaan piirre, joka saa sen aloittamaan uudelleen alusta, mikäli käyttäjä niin haluaa: Ohjelma kysyy lopuksi käyttäjältä, haluaako tämä arvailla uudestaan, ja toimii käyttäjän toiveen mukaan.

previous next Up Title Contents Index