VĒL PROGRAMMU PIEMĒRI: Tipiski skolu programmēšanas 8 uzdevumi, pārnesti uz Scratch
+ Noderīgi 8 uzdevumi ievadam programmēšanā. Vairāk vai mazāk klasiski programmēsanas priekšmetu skolas uzdevumi, izpildāmi ne tikai Free Pascal, C++, Java, Visual Basic, bet arī Scratch: mērvienību kalkulators, varbūtību eksperiments, pirmskaitļi, Fibonači skaitļi, Lisažū figūras, fraktāļi un MS Excel funkcijai PMT() līdzīgi aprēķini.
Materiāla autors doc. Imants Gorbāns.
2. Varbūtība
Dzīvē nākas saskarties ar dažādiem varbūtiskiem procesiem, piemēram, metot spēļu kauliņu, metot monētu, spēlējot loteriju, izvēloties respondentus aptaujai, zināmā mērā arī veicot laika prognozi, šaujot mērķī, melojot utt. Tās ir situācijas, kurās precīzi rezultātu nevar paredzēt.
Aplūkosim monētas mešanu. Ideālai monētai varbūtība, ka tā nokritīs ar vinu pusi uz augšu ir 50% un arī ar otru pusi uz augšu - 50%. Tomēr šāds sadalījums (puse uz pusi) parādīsies tikai pie ļoti liela atkārtojumu skaita. Metot vienu vai dažas reizes, rezultāts nav prognozējams. Būtiski, ka arī pie miljons atkārtojumiem nākamā mēģinājuma konkrētais rezultāts ir tikpat neprognozējams kā pirmajā metienā. Bet mēs varam prognozēt situāciju kopumā: aptuveni pusmiljons metienos no miljona nokritīs ar vērtības skaitli uz augšu.
Ir zināmā mērā interesanti eksperimentāli pārbaudīt, pie cik liela atkārtojumu skaita rezultāts (biežums) ir 50% pret 50%, +/- 1. Izveidosim Scratch programmu, kas virtuāli veic monētas metienus. Varbūtība šeit ir attiecība 'sagaidāmo rezultātu skaits' / 'visu rezultātu skaits'. Domas pieraksts formulas veidā: p = m /n. Ja vēlamies izteikt %, tad vēl viss jāpareizina ar 100.
Programma jautās, cik reizes atkārtot un tad ar cikla un nejaušas izvēles operatoru palīdzību skaitliski (ne vizuāli) simulēs monētas mešanu. Savā ziņā šāda programma palīdz novērtēt, no cik lieliem skaitļiem rezultāts top varbūtiski prognozējams, kā arī testē Scratch iebūvētās nejaušību funkcijas kvalitāti. Ievadot lielus skaitļus, piemēram, 5 vai 6 ciparu, nāksies mazliet uzgaidīt, kamēr programma izpildās uz dotās veikt spējas datora.
3. att. Varbūtību programmiņas kods.
4. att. Varbūtību programmiņas saskarnes izskats, atgiežot iegūto biežumu jeb "eksperimentālo varbūtību".
Programma tiešsaistē: http://scratch.mit.edu/projects/25684049/
UZDEVUMI:
1. Izveidojiet programmu, kas atgriež spēļu metamā kauliņa (1-6) rezultātu varbūtības.
2. Kā būs, ja metīsim reizē 2 vai 3 6-skaldņu kauliņus?