"Ilmiömäistä päässälaskentaa"

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 31.10.2004 9:36

Tilastollisen tietojenkäsittelyn seminaarissa on tarkoitus käsitellä
sukrojen ohjelmointia kahdessa seuraavassa tilaisuudessa eli
 9.11 Sukrojen ohjelmoinnista I  (klo 16-18)
23.11 Sukrojen ohjelmoinnista II (klo 17-19)
Psykologian laitoksella huoneessa 229 (Siltavuorenpenger 20 D).

Taso, jolla aiheesta puhutaan ja keskustellaan, asettukoon paikalle
saapuvien mieltymysten mukaan.

Seminaarissa tullaan myös käsittelemään joitakin valmiita esimerkkejä,
joista yksi (vaativimmasta päästä) on listattuna tämän viestin loppuun.
Sukro LASKE antaa Survon käyttäjälle mahdollisuuden osoittaa "oivallista
päässälaskutaitoa".

Miten tuo taito on hankittavissa, saattaa joillekin valjeta suoraan
kokeilemalla sukron käyttöä. Luulisin, että useimmille totuus selviää
vasta tutkimalla tarkemmin sukron toimintaa.

Esimerkki sukron LASKE käytöstä:

/LASKE
712*916

Kun /LASKE yllä aktivoidaan, se antaa ensin käyttäjälle vapaasti aikaa
harkita vastaustaan ja odottaa, että painetaan ENTER-nappia.
Asetelma muuttuu silloin tilaan
/LASKE
712*916=X
missä X:n paikalle ilmaantuu jatkuvasti eri numeroita. Koska oikea
vastaus on 712*916=652192, käyttäjän tulee painaa nappia ENTER silloin,
kun X:n kohdalla on 6, joka on oikean vastauksen ensimmäinen numero.
Jos painaa väärän numeron kohdalla, tulee virhepisteitä, mutta saa
yrittää uudelleen.
Kun ensimmäinen numero on valittu oikein, kohdistin siirtyy seuraavan
vastausnumeron paikalle eli nähdään
/LASKE
712*916=6X
missä jälleen X:n kohdalla pyörii vaihtoehtoisia numeroita ja jatketaan
samalla tavalla pelkkää ENTER-nappia valikoivasti painellen lopulliseen
vastaukseen asti.

Arvelette tietenkin, että tämähän on helppoa, kun vain ensin laskee
Survolla oikean tuloksen ja sitten panee LASKE-sukron käyntiin.

Varsinainen juju on kuitenkin siinä, ettei suurinumeroisissakaan
laskuissa tarvitse tietää etukäteen tulosta, vaan LASKE-sukro opastaa
käyttäjää tekemään oikeat valinnat!

Miten opastus tapahtuu, se jääköön jokaisen setvittäväksi kokeilemalla
tai, ellei se auta, perehtymällä sukron toimintaan mm. tarkastelemalla
sen listausta.

Vaikka LASKE tarjonnee sellaisenaan hupia (hämmästytä "taidoillasi"
tuttaviasi!), seminaarin yhteydessä on päätarkoituksena ruotia sukron
rakennetta ja toimintaa.

Tahallaan en ole liittänyt sukron listaukseen mitään kommentteja eli
se on huonosti dokumentoitu "opetuksellisista" syistä. Ymmärtäminen
edellyttää siis tietynasteista perehtymistä Survon ominaisuuksiin ja
sukro-kieleen. Samasta syystä en tässä mainitse sukron käyttö-
mahdollisuuksista eikä -rajoituksista mitään.

Toivon, että ne, jotka innostuvat kaivamaan esiin LASKE-sukron salat jo
etukäteen, lähettäisivät minulle oman tulkintansa siitä, miten
"päässälaskut" onnistuvat LASKE-sukron avulla, sähköpostiviestinä
osoitteeseen seppo.mustonen@survo.fi
Pyydän kauniisti: älkää siis paljastako löydöksiänne tässä vaiheessa
kellekään muulle.

-Seppo

........................................................................
Sukron LASKE listaus:

DELETE / Vie kohdistin kontrollisarakkeeseen ja aktivoi tämä rivi!
*TUTSAVE LASKE
*{init}{tempo -1}{R}
*{line end}{l}{save char W1}{r}
- if W1 '<>' = then goto Q
*{l} {l}
+ Q: {ref set 1}{R}{erase}SCRATCH {act}{ref jump 1}
*{message}        Paina ENTER, kun olet valmis vastaamaan!@
*{del stack}{get key}{message}@{ref jump 1}
*={ref set 1}{disp off}{pgdn}{R}
*{W1=8963}int(1000*rnd(0))={act}{l} {save word W6}{line start}{erase}
*{goto K}
+ R: {erase}T{print W5}{act}{next word}{next word}{next word}{next word}
*{r4}{save char W1}{r2}{save char W2}{W1=W1+W2}
- if W1 < 10 then goto S
*{W1=W1-10}
+ S: {ref jump 1}{act}{l} {save word W2}{l}={erase}{W7=0}
*{pgdn}{R}{d}{erase}{print W2}
*{W3=Valitse oikeat numerot painamalla ENTER! (Keskeytys napilla K)}
*{message W3}{break off}
+ B: {ref jump 1}{pgdn}{R}{d}{save char W2}{del}
- if W2 '=' {sp} then goto E
+ C: {ref jump 1}{disp reset}{tempo +1}
- on key
-      key _: continue
-      key k: goto I
-      key K: goto I
-      key ENTER: goto G
-   wait 10
*{tempo -1}{disp off}{pgdn}{R}
*{erase}T{print W5}{act}{next word}{next word}{next word}{next word}
*{r7}{save char W4}
- if W4 <> W1 then goto F
*{W3=W2}{ref jump 1}{print W3}{goto C}
+ F:
*{R}{d}{erase}
*..........{R}
*int(10*rand({print W6}))={act}{l} {save char W3}
*{ref jump 1}{print W3}{l}
*{goto C}
+ G: {tempo -1}
- if W3 = W2 then goto H
*{W7=W7+1}{R}{d}Vääriä "arvauksia" {print W7}{line start}{u2}
*{disp off}{pgdn}{R}
*{erase}PLAY SOUND PROTECT{act}
*{goto C}
+ H:
*{ref jump 1}{r}{ref set 1}{goto B}
+ I: ???{goto E2}
+ K: {W2=W1+2764}{W1=W1*W2}{R}
*{erase}{print W1}{W3=0}{W5=}
+ L: {W3=W3+1}{line start}
- if W3 > 3 then goto R
*{r3}{ins} {ins}{l2}{save word W2}{line start}{del4}
*{R}{erase}{print W2}(10:ascii)={act}{l} {save char W1}
*{W5=W5&W1}{line start}{erase}{u}{goto L}
+ E: {ref jump 1}{R}
- if W7 = 0 then goto E3
*Valmis!{goto E2}
+ E3: {message}        Oikein laskettu!@
*{disp off}PLAY SOUND APPLAUSE{act}{home}{erase}{ref jump 1}
+ E2: {message}@{ref jump 1}{R}{d2}SCRATCH {act}{ref jump 1}{disp reset}
+ E1: {end}

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.