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 defined
Huom! 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.