int a=7, c=4, m=15, i=4, i0=4, k=0, n=0, j=1, p=0; /* variables a,c, i, i0, k, n, j, p */ main(){ /*main program, basic linear congruential algorithm */ scanf("%d", &n); /* read an integer into n */ scanf("%d", &p); /* read an integer into p */ while (k < n) { if (i0 == i) /* if the value of i0 is same as the value of i */ j=1; if (p==1) /* print only random numbers */ printf("%d \n", i); /* print i */ else printf("%d %d %d\n", k, j, i); /* print k, j, i */ i = (a * i + c ) % m; /* take module m from expression inside () */ k++; j++; /* increment 1 into k and j */ } }
Tarkista ohjelmasi toimivuus kääntämällä ja suorittamalla se Titokoneen
avulla. Kokeile antaa syötteiksi esimerkiksi n=17 ja p=1. (Tällöin
tuloksena pitäisi tulla luvut 4 2 3 10 14 12 13 5 9 7 8 0 4 2 3 10 14)
Anna esimerkki tilanteesta, jossa tapa (a) olisi sopivin. Vastaavasti tapauksille b ja c. Perustele esimerkkisi.
; record party: 4 integer fields Places EQU 0 ; relative address within record Votes EQU 1 Change EQU 2 VoteC EQU 3
Tietueet SDP ja KESK on varattu muistista alustettuna ja tietue KOK on varattu muistista osittain alustettuna pseudokäskyillä
SDP DC 2585 ; Places = 2585 s1 DC 575822 ; Votes = 575822 s2 DC 26 ; Change = 26 s3 DC 64452 ; VoteC = 64452 KESK DC 4425 k1 DC 543885 k2 DC -200 k3 DC 15566 KOK DC 2078 kok1 DC 521412 kok2 DS 1 ; initial values not defined kok3 DS 1 ; initial values not definedHuom! Muuttujanimiä s1, s2, s3, k1, k2,k3, kok1, kok2 ja kok3 ei saa käyttää ohjelmassa. Ne on kirjoitetttu vain koska Titokone simulaattori tulkitsee virheelliseksi pelkän DC komennon ilman symbolin nimeä. Myös 2 viimeistä muistin varausta voitaisiin ttk91-koneen mukaan tehdä DS 2, mutta titokone varaa virheellisesti vain yhden muistipaikan.
Esimerkki: Jos R4 osoittaa tietueen SDP alkuun, niin SDP:n
paikkojen muutos verrattuna vuoden 2000 kuntavaalitulokseen saadaan
rekisteriin R5 konekäskyllä "LOAD R5, Change(R4)".
Tee ttk-91 koneen symbolisella konekielellä ohjelma, joka
Tarkista ohjelmasi toimivuus kääntämällä ja suorittamalla se Titokoneen avulla.