18.

Vēl mazliet par to, kā skaitļotājs māca bērnus

Nākamajā reizē, kā bija runāts, Pēcis un Maija pētīja programmu, kura apmāca bērnus un kurā tiek izmantoti simbolisko mainīgo masīvi.

— Šī programma bērniem iemāca padomju republiku galvaspilsētas. Domāju, ka tu vēl atceries tos laikus, kad pati mocījies, tās iekaldama.

— Bija pat tāds laiks, kad es nezināju pašas savienotās republikas.

Mācīsimies ģeogrāfiju

— Pašas republikas nu gan šīs programmas lietotājam būtu jāzina. Kas attiecas uz programmu, tad tajā ir paredzēti četri režīmi. Pirmajā režīmā bērnam uz ekrāna izvada visas republikas un to galvaspilsētas. To izmanto pašā apmācības sākumā, kad bērns vēl maz ko zina. Īstā apmācība notiek nākamajā, atkārtošanas, režīmā, kad skolēnam jānosauc vai nu galvaspilsētai atbilstošā republika, vai arī republikai atbilstošā galvaspilsēta. Trešais režīms ir eksāmens.

— Protams, bez eksāmeniem jau nu nevar iztikt!

— Bet kā lai citādi cilvēks uzzina, ka ir visu apguvis? Pēdējais režīms — tā ir darba nobeigšana. Ļoti vienkāršs režīms. Un, lūk, pati programma.

Ilustrācija
10 REM PROGRAMMA MAHCA SAVIENOTO REPUBLIKU GALVASPILSEHTAS
20 REM R¤ - MASIHVS AR REPUBLIKU NOSAUKUMIEM
30 REM G¤ - MASIHVS AR GALVASPILSEHTU NOSAUKUMIEM
40 DIM R¤(15),G¤(15)
50 REM PROGRAMMA VAR LIKT NOSAUKT REPUBLIKU
60 REM ZINAHMAI GALVASPILSEHTAI VAI ARI' OTRAHDI
70 REM U1 - VARBUHTIHBA, KA JAUTAHS GALVASPILSEHTAI
72 REM ATBILSTOSHO REPUBLIKU
100 DIM E(15) \  \ U1=.5
110 REM U1 SKOLOTAHJS VAR MAINIHT
120 \
130 DATA "KRIEVIJ","MASKAVA","UKRAIN","KIJEVA"
140 DATA "BALTKRIEVIJ","MINSKA","KAZAHIJ","ALMA-ATA"
150 DATA "MOLDAHVIJ","KISHINJEVA","GRUZIJ","TBILISI"
160 DATA "ARMEHNIJ","EREVAHNA","AZERBAIDZHAHN","BAKU"
170 DATA "LATVIJ","RIHGA","LIETUV","VILJNJA"
180 DATA "IGAUNIJ","TALLINA","UZBEKIJ","TASHKENTA"
190 DATA "TADZHIKIJ","DUSHANBE","TURKMEHNIJ","ASHHABADA"
200 DATA "KIRGIHZIJ","FRUNZE"
205 \
210 REM NOLASA REPUBLIKU UN GALVASPILSEHTU.NOSAUKUMUS
220 FOR I=1 TO 15 \ READ R¤(I),G¤(I)
230 A¤=" PSR" \ IF I<>1 THEN 240 \ A¤=" PFSR"
240 R¤(I)=R¤(I)+"AS"+A¤ \ REM IZVEIDO PILNU NOSAUKUMU
250 NEXT I
255 \
260 PRINT  \ PRINT  \ PRINT  \ PRINT
270 PRINT " ******************** TAGAD MAHCIHSIMIES"
280 PRINT "  SAVIENOTO REPUBLIKU GALVASPILSEHTAS *********"
290 PRINT  \ PRINT  \ PRINT
300 PRINT "IEVADI 1 - UZZINAHSI GALVASPILSEHTAS"
310 PRINT "IEVADI 2 - VAREHSI ATKAHRTOT"
320 PRINT "IEVADI 3 - VAREHSI LIKT EKSAHMENU"
330 PRINT "IEVADI 4 - DARBS BEIDZIES"
340 PRINT "TAVS IEVADS "; \ INPUT M
345 \
350 ON M GO TO 360,450,780,990
355 \
360 REM PARAHDIHSHANA 1111111111111111111111111111111111111
365 \
370 PRINT  \ PRINT
380 PRINT "PADOMJU SAVIENIHBA' PAVISAM IR 15 SAVIENOTAHS";
390 PRINT " REPUBLIKAS" \ PRINT
400 FOR I=1 TO 15
410 PRINT I;"  ";R¤(I);"  AR GALVASPILSEHTU  ";G¤(I)
420 NEXT I
430 GO TO 290
435 \
440 REM ATKAHRTOSHANA 2222222222222222222222222222222222222
445 \
450 PRINT  \ PRINT  \ PRINT  \
460 PRINT "ATKAHRTOSIM SAVIENOTO REPUBLIKU GALVASPILSEHTAS"
470 PRINT "ATBILDES JAHDOD MASHIHNPAREIZRAKSTIHBA'"
480 PRINT  \ PRINT "  KAD TEV BUHS APNICIS, IEVADI #"
510 REM IZVEHLAS REPUBLIKAS
530 J=0 \ K=0 \ REM JAUTAHJUMU UN KLJUHDU SKAITS
545 \
550 REM SAHKAS ATKAHRTOSHANA ******************************
560 R=RND
570 IF R>U1 THEN 670
580 REM DOTA GALVASPILSEHTA, JAHNOSAUC REPUBLIKA ----------
590 PRINT "KAHDAS REPUBLIKAS GALVASPILSEHTA IR ";
600 GOSUB 1000 \  \ REM ATROD REPUBLIKAS NUMURU
610 PRINT G¤(I);
620 INPUT R1¤ \  \ REM IEVADA REPUBLIKAS NOSAUKUMU
630 IF R1¤="#" THEN 750 \ REM     VAI NAV APNICIS?
640 N¤=R¤(I) \  \ REM SAGATAVO N¤ APAKSHPROGRAMMAI
650 GOSUB 2000 \  \ REM         ATBILDES PAHRBAUDE
660 GO TO 560
665 \
670 REM DOTA REPUBLIKA,JAHNOSAUC GALVASPILSEHTA ----------
680 GOSUB 1000
690 PRINT "NOSAUC ";R¤(I);" GALVASPILSEHTU";
700 INPUT R1¤
710 IF R1¤="#" THEN 750
720 N¤=G¤(I)
730 GOSUB 2000
740 GO TO 560
750 PRINT "NO ";J;" ATBILDEHM ";J-K;" BIJA PAREIZAS"
760 GO TO 290
765 \
770 REM EKSAHMENS 333333333333333333333333333333333333333
775 \
780 PRINT  \ PRINT  \ PRINT  \
790 PRINT "SAHKAM EKSAHMENU"
800 REM MASIHVA' E TIEK ATZIHMEHTS,KURAS REPUBLIKAS
802 REM IR JAUTAHTAS
810 FOR I=1 TO 15 \ E(I)=0 \ NEXT I
820 J=0 \ K=0
830 N=INT(RND*15)+1
840 IF E(N)<>0 THEN 830
850 PRINT "NOSAUC ";R¤(N);" GALVASPILSEHTU";
860 INPUT G1¤
870 IF G1¤<>G¤(N) THEN 890
880 PRINT "ATBILDE IR PAREIZA" \ GO TO 900
890 PRINT "ATBILDE NAV PAREIZA" \ K=K+1
900 J=J+1 \ E(N)=1 \ REM ATZIHME', KURAS REPUBLIKAS BIJA
910 IF J<15 THEN 830 \ PRINT
920 IF K<>0 THEN 940
930 PRINT "ATZIHME - TEICAMI (5)" \ GO TO 290
940 IF K<>1 THEN 960
950 PRINT "ATZIHME - APMIERINOSHI (3)" \ GO TO 290
960 PRINT "VAJAG ATKAHRTOT VEHL - BIJA ";
970 PRINT K;" KLJUHDAS"
980 GO TO 290
985 \
990 PRINT "DARBA BEIGAS" \ STOP
995 \
1000 REM APAKSHPROGRAMMA ATROD NUMURUS
1010 N=INT(RND*15)+1
1040 IF N=9 THEN 1010 \ REM RIHGU ZINA VISI
1060 RETURN
1965 \
2000 REM APAKSHPROGRAMMA PAHRBAUDA ATBILDES
2010 IF R1¤<>N¤ THEN 2030
2020 PRINT "ATBILDE IR PAREIZA" \ GO TO 2060
2030 PRINT " NEPAREIZI!!! PAREIZA' ATBILDE IR ";N¤ \ K=K+1
2060 J=J+1 \ RETURN
2070 END

— Šausmas! Tā nu gan ir gara programma! Ko te var saprast?

— Garums vēl neko nenozīmē. Būtiskais ir tas, cik tā ir sarežģīta. Bet par sarežģītu šo programmu nevar uzskatīt. Tūlīt pati redzēsi, ka tās lielākā daļa ir vienkārši, uzskatāmi izvades vai piezīmju operatori. Varu garantēt, ka visu sapratīsi. Ar laiku, protams.

— Sākumu jau sapratu. Līdz rindai 70. Tur parādās kaut kāda varbūtība.

— Redzi, atkārtošanas laikā var uzdot divējādus jautājumus. Piemēram: kādas republikas galvaspilsēta162 ir Kišiņeva? Vai arī — kas ir Moldāvijas PSR galvaspilsēta? Tu jau zini, kas jāatbild. Mainīgā U1 vērtība norāda, vai biežāk būs pirmā vai otrā tipa jautājumi, vai arī tie būs vienlīdz bieži. Rindā 100 skolotājs U1 vērtību var mainīt. Ja viņš, piemēram, grib, lai skolēns nosauc tikai galvaspilsētas, tad mainīgajam U1 jāpiešķir vērtība 0. Vai arī kā citādi.

Ilustrācija

— Bet kas tas rindā 130 un tālāk? Kaut kāds neparasts operators DATA. Ja tas ir operators.

Kā programmās glabā datus

— Tas ir operators. Datu glabāšanas operators. «Deita» angliski nozīmē «dati». Šis operators vienīgi glabā datus un vairāk neko. Interpretators, šādu operatoru sastapis, tam pārskries pāri. Mainīgo vērtībās dati tiek dabūti ar operatora READ palīdzību.

— «Rīd» nozīmē «lasīt». Tad jau operators READ ir nolasīšanas operators ...

— Jeb ielasīšanas operators. No glabātavas DATA operatoros tas ielasa vajadzīgo mainīgo vērtībās. Mūsu programmā operators READ ir rindā 220. Šeit sākas cikls no 1 līdz 15, tātad pa visām republikām, un šajā ciklā tiek nolasīti visu republiku un to galvaspilsētu nosaukumi.

Kas zog datus manā dārzā?!
Kas zog datus manā dārzā?!

Pati nolasīšana notiek šādi. Ejot cauri ciklam pirmo reizi, kad I=1, interpretators, uzdūries operatoram READ, kurš satur simbolisko masīvu elementus163 R¤ (I) un G¤ (I) jeb — šajā gadījumā — R¤ (1) un G¤ (1), sāk meklēt, kur programmā ir operators DATA, un atrod, ka pirmo reizi tas sastopams rindā 130 un ka pirmās divas simbolu virknes, kas tur glabājas, ir «KRIEVIJ» un «MASKAVA». Tās tad arī kļūst par mainīgo R¤ (1) un G¤ (1) vērtībām. Jā, vai vari pateikt, kā lai uzzina, kur operatorā DATA beidzas pirmā simbolu virkne un sākas otrā?

— Muļķīgs jautājums! Tās taču tiek atdalītas ar komatu!

Ilustrācija

— Kā tad. Ja mums vajadzētu ielasīt nevis simbolisko, bet skaitlisko mainīgo vērtības, tad nekas nemainītos: operatorā DATA glabātos skaitliskās vērtības. Tālāk. Ciklam cauri ejot otro reizi, notiek tāpat un tiek ielasītas mainīgo R¤ (2) un G¤ (2) vērtības. Un tā līdz cikla beigām. Protams, visam jābūt rūpīgi saskaņotam. Operatoros DATA visām vērtībām jāglabājas tieši tādā kārtībā, kā tās tiks lasītas, jeb, ja tev patīk labāk, tās jālasa tieši tādā kārtībā, kā glabājas operatorā DATA.

Darba laikā interpretators atzīmē, līdz kurai vietai dati DATA operatoros ir nolasīti. Ja visi dati jau ir nolasīti, taču pēkšņi parādās vēl kāds operators READ, tad ir kļūda.

Dažkārt šie dati, kurus glabā DATA operatori, programmistam var būt vajadzīgi vairākas reizes. Tad viņam jāizmanto operators RESTORE. «Ristor» nozīmē «atjaunot». Kad interpretators programmā būs atradis šo vārdu, operators READ, kurš būs jāizpilda nākamais, nolasīs datus no paša pirmā DATA operatora.

Datus lasiet no paša sākuma!
Datus lasiet no paša sākuma!

— Man visu laiku mēles galā ir jautājums. Kāpēc tu visos šajos DATA operatoros tik jocīgi raksti — KRIEVIJ, LATVIJ?

Piemēriņi darbam ar simboliem

— Tikai lai taupītu laiku. Republikas izvadīšu formā KRIEVIJAS PFSR, LATVIJAS PSR. Bet man vieglāk uzrakstīt ciklu, kas pieliek šo «AS PSR», nekā visos DATA operatoros rakstīt pilnu formu. Skaties, cik vienkārši. To beigu pielikšanu es izdaru šajā pašā datu nolasīšanas ciklā. Vispirms rindā 230 atrodu simboliskā mainīgā A¤ vērtību, kura ir «PFSR», ja runa ir par Krieviju, tas ir, ja I vērtība ir 1, turpretī pārējos gadījumos A¤ vērtība paliek «PSR».

— Un tad rindā 240 tiek izveidots pilns nosaukums. Nav slikti.

— Tālāk nāk piemērota režīma izvēle.

— Visvienkāršākais laikam būs parādīšanas režīms.

— Nē, apstāšanās režīms ir vēl vienkāršāks, taču parādīšanas režīms rindās 370—430 arī nav sarežģīts: uz ekrāna stabiņā izvada republikas kārtas numuru, republikas nosaukumu un galvaspilsētas nosaukumu. Tālāk ir atkārtošanas režīms. Bet rindas ar numuriem 440—480 tev, cerams, ir saprotamas.

— It īpaši rinda 480. Kaut jel vienu vienīgu reizīti man būtu pateikts: kad tev būs apnicis mācīties, tad ... Bet nekā!

Ļoti svarīgs jēdziens — «apakšprogramma»

APAKŠPROGRAMMA— Pirms skatāmies tālāk, nedaudz parunāsim vēl par vienu ļoti svarīgu programmēšanas jēdzienu. Par apakšprogrammas jēdzienu. Var gadīties, ka kaut kas programmā jāizdara daudzas reizes, bet katrreiz ar citām mainīgo vērtībām. Piemēram, šajā programmā man vairākas reizes vajadzēja noteikt, kurai republikai atbilst izraudzītais gadījumskaitlis. Bet katrreiz citā programmas vietā un ar citām mainīgo vērtībām. Definēt funkciju nevaru, jo algoritmu vienā izteiksmē iespiest nav iespējams. Tāpēc šo algoritmu noprogrammēju atsevišķi, kā apakšprogrammu, rindas sākot numurēt ar tūkstoti, lai 165gan varēja būt arī cits numurs. Tur, kur vajag izpildīt šo algoritmu, rakstu operatoru GOSUB. GOSUB 1000

— Tagad, protams, noskaidrosim, kā šo vārdu izrunā un ko tas nozīmē angliski.

— Izrunā «gousab», un tas ir saīsinājums no go to subroutine, kas nozīmē «ej uz apakšprogrammu». Bet tas vēl nav viss. Šis operators, gluži tāpat kā GO TO, vadību nodod uz norādīto rindu, mūsu gadījumā — uz rindu 1000. Programmas izpilde turpinās no šīs rindas līdz rindai, kur interpretators sastop operatoru RETURN.

Maija Saprātiņa apakšprogrammas lomā
Maija Saprātiņa apakšprogrammas lomā

— «Ritēn» nozīmēja ... nozīmēja ...

— ... atgriezties. Un programmas vadība atgriežas uz nākamo operatoru pēc GOSUB. Tātad, lai programmas daļu varētu uzskatīt par apakšprogrammu, tajā ir jābūt operatoram RETURN. Ar ko tad GO TO atšķiras no GOSUB?

— Nu, GO TO aizsūta uz kaut kurieni, no kurienes nekad neatgriezīsies, bet, ja GOSUB aizsūta, tad atgriezīsies. Bet vispār, manuprāt, ir pēdējais laiks atgriezties pie tavas superprogrammas.

— Cik tālu mēs tikām?

— Līdz rindai 530.

Par pedagoģijas automatizēšanu

— Šeit piešķiram nulles tiem mainīgajiem, kuri apzīmē kļūdaino atbilžu un uzdoto jautājumu skaitu, un sākam atkārtošanu.

— Vispirms izvēlas gadījumskaitli. Dīvaini, ka ar 166to nekas netiek darīts, vienmēr taču ar kaut ko reizināja un ņēma veselo daļu.

— Šoreiz ir vajadzīgs gadījumskaitlis intervālā no 0 līdz 1, jo tas nosaka, kādu jautājumu uzdosim: vai parādīsim republiku un pavaicāsim, kāda ir tās galvaspilsēta, vai otrādi. Tam izmanto U1 vērtību, par kuru mēs jau runājām.

— Tas nekas, var parunāt vēl. Gribu paskatīties, kas te notiks. U1 vērtība tev sākumā ir 0,5.

— Tas nozīmē, ka pusē gadījumu būs viena tipa jautājums, pusē — otra tipa jautājums.

— Labi. Bet, ja U1=0 ... Tad R — izraudzītais gadījumskaitlis starp nulli un vienu — vienmēr būs lielāks par U1, un mēs aiziesim uz rindu 670.

— Arī tad, ja U1 vērtība būtu mazāka par nulli.

— Cits gadījums. Ja tā ir lielāka par vienu. Tad vadība arvien tiks nodota uz nākamo rindu — 580. Bet, ja šī vērtība, piemēram, būs 0,9, tad gandrīz vienmēr izpildīsies nākamā rinda un tikai vienā gadījumā no desmit vadība tiks nodota uz rindu 670. Domāju, ka šos trikus saprast var. Turpināsim.

— Ja vadība pēc salīdzināšanas rindā 570 tiek nodota uz nākamo rindu, tad mēs uzreiz izvadām jautājumu un griežamies pie apakšprogrammas, kas ir rindā ar numuru 1000. Tā pasaka numuru — kuru republiku lai izvēlamies.

— Šo apakšprogrammu vajadzētu paskatīties.

— Tā ir pavisam vienkārša. Izvēlas gadījumskaitli starp 1 un 15. Ja šis skaitlis ir deviņi, tātad jājautā par Latvijas PSR, izvēlas citu gadījumskaitli, jo cilvēks, kurš dzīvo Rīgā, laikam taču zina, kam tā ir galvaspilsēta.

— Un pašās beigās — operators RETURN, kā jau katrā pieklājīgā apakšprogrammā ir jābūt.

— Un šis operators vadību nodod atpakaļ uz rindu 610, kur operators PRINT izvada vajadzīgo galvaspilsētu un operators INPUT — nākamajā rindā — ievada republikas nosaukumu.

— Tas ir kā vienmēr. Arī nākamā salīdzināšana ir diezgan parasta. Skatāmies, vai lietotājs nav ievadījis numura zīmi, un, ja ir, tad dodamies uz rindu 750. Kas tur notiek? Ahā! Izvada darba rezultātus un nodod vadību uz jauna režīma izvēli. Bet ja nu vēl nav apnicis? Ja nav apnicis, tad nezin kāpēc mainīgajam N¤ piešķir ... ko piešķir?

— N¤ man ir mainīgais, kura vērtība ir pareizā 167atbilde. Šajā gadījumā tas ir republikas nosaukums, kurš skolēnam bija jāievada.

— Un atkal aizejam uz apakšprogrammu?!

— Jā, bet nu tā ir cita apakšprogramma. Šī apakšprogramma ievadīto atbildi salīdzina ar pareizo un paziņo salīdzināšanas rezultātus. Programmā to var redzēt. Papildu darbs ir tad, ja atbilde bijusi nepareiza; tad vajag palielināt kļūdu skaitu par vienu.

— Un, kad mēs atgriežamies no apakšprogrammas, tad dodamies uz rindu 560, lai visu sāktu no jauna.

— Nākamā programmas daļa, kurā tiek parādīts republikas nosaukums un skolēnam jāievada galvaspilsētas nosaukums, ir pilnīgi līdzīga nule izpētītajai. Nedaudz atšķiras izvade, un pareizo atbildi, protams, ņemam no galvaspilsētu masīva.

Mašīna pieņem eksāmenu

— Tad jau jāiet uz eksāmena pieņemšanu.

— Pirms «pieņemam» eksāmenu, pastāstīšu, kā tas notiek. Izvēlamies vienu no 15 republikām un pavaicājam tās galvaspilsētu, pēc tam vienu no atlikušajām 14 republikām, pēc tam vienu no 13 un tā tālāk, līdz visas ir bijušas. Atšķirībā no atkārtošanas, divreiz vienu un to pašu jautājumu šeit neuzdod. Masīvā E fiksējam tās galvaspilsētas, kuras ir noskaidrotas. Sākumā tur iesūtām nulli, bet, kad galvaspilsēta jau ir atprasīta, attiecīgajā elementā iesūtām vieninieku.

— Redzu. Nuļļu iesūtīšanas cikls ir rindā 810. Nākamajā rindā tu nulles piešķir mainīgo J un K vērtībām, acīmredzot jautājumu un kļūdu skaitam.

— Jā, tā tas ir domāts. Un nākamā rinda — 830?

— Šeit, kā parasti, tiek izraudzīts gadījumskaitlis N no 1 līdz 15. Bet pēc tam ir jocīga salīdzināšana.

— Šī salīdzināšana noskaidro, vai republika ar numuru N ir vai nav atprasīta. Ja ir, tad ņem nākamo gadījumskaitli un, ja vajag, atkal nākamo, līdz kamēr atrodas tāda republika, kuras galvaspilsēta vēl nav vaicāta.

— Bet tā jau tos gadījumskaitļus var ņemt un ņemt. Ja, teiksim, ir atlikusi tikai viena neatprasīta republika ...

168— Kritika vietā. Ņem un izdomā tādu algoritmu, kurš strādātu labāk.

— Atkal pedagoģiski triki!

— Nav nekādi triki — tev tiek dota iespēja augt. Skaties tagad rindu 850.

— Tur nekā interesanta nav! Liek nosaukt izraudzītās republikas galvaspilsētu, pēc tam ievada, ko tas nabadziņš ir izdomājis, un tad, protams, salīdzina — un, ja nepareizi, tad baras. Kas gan cits te var būt?

— Var gan. Ja atbilde ir nepareiza, tad palielinās kļūdu skaits. Bet jebkurā gadījumā palielina jautājumu skaitu un atzīmē, kuras republikas galvaspilsēta jau ir atprasīta. Kad jautājumu skaits būs 15, tad eksāmens beigsies un tiks aprēķināta atzīme.

— Šausmas! Ja cilvēks nav zinājis vienu galvaspilsētu, tad viņam trulis, bet, ja divas, tad cālis. Tu, Pēci, esi nodevējs! Vajadzēja taisīt citādi: ja zina kaut vienu, tad — trijnieciņš.

— Galvaspilsētas gan nav grūti iemācīties. Un jāzina tās ir. Algoritms vispār lika taisīt tā, ka liek vai nu piecnieku, vai divnieku. Tas trijnieks ir mana pašdarbība. Labāk pārdomāsim programmu. Kā to varētu pārveidot?

Ko vēl varētu mācīt ar mašīnu ģeogrāfijā ...

— Visvieglāk būtu izveidot tādu programmu, kas māca autonomo republiku galvaspilsētas. Tur pat mainīt neko daudz nevajadzētu.

— Šo to jau nu vajadzētu. Jānomaina viss DATA operatoru saturs un savienotās republikas visur 169jāaizstāj ar autonomajām republikām. Kā arī vēl daži sīkumi. Tādi paši grozījumi būtu vajadzīgi, ja gribētu sastādīt pasaules valstu galvaspilsētu mācīšanas programmu.

Jā, nu es ticu, ka skaitļotājs var mācīt ģeogrāfiju
Jā, nu es ticu, ka skaitļotājs var mācīt ģeogrāfiju

— Tas nu gan būtu milzu darbs! Pasaulē jau ir ap pusotrsimt valstu. Visu valstu un to galvaspilsētu nosaukumus ievadīt vien!

— Drusciņ jau nu būtu jāpastrādā, bet dzīva tu, Maijiņ, paliktu. Tiesa, liekas, ka tādu eksāmenu neviens nespētu izturēt. Ievadīt pusotrsimt atbilžu — tas būtu par daudz. Eksāmenu vajadzētu pārveidot tā, lai atprasa tikai, teiksim, divdesmit valstis.

— Nevis divdesmit, bet nodibināt konstanti — un lai skolotājs tajā liek, kādu vērtību grib. Līdzīgi, kā tev ir ar konstanti U1. Arī atzīmju likšanas sistēma būtu jāpārveido. Vispār — tā ir jāpārveido.

— Arī šeit jau varēja nodibināt konstantes. Ar tik kļūdām liek četri, ar tik — trīs un ar tik — divi. Arī šīs konstantes skolotājs varētu mainīt, kā iepatīkas. Vēl varētu izdarīt tā, ka mašīna biežāk prasītu tās republikas, par kurām skolēns ir kļūdījies.

... valodās ...

Bet vispār — pilnīgi līdzīgi šo programmu varētu pārveidot svešvalodu vārdu apgūšanai. Vienā masīvā ieliec kādu tūkstoti svešvalodas vārdu, otrā masīvā — tūkstoti latviešu vārdu un — uz priekšu! Tiesa, ar vienu vārdu pārtulkot svešu vārdu latviski pa īstam jau nu nevar, bet vārda pamatnozīmi varētu. Varētu mācīt ne tikai vārdu nozīmes, bet arī dažādus likumus, piemēram, neregulāro darbības vārdu formas, kādas ir angļu valodā un kādas, iespējams, arī citās valodās atradīsies.

Ilustrācija

— Ar neregulārajiem darbības vārdiem tik vienkārši vis nebūs. Tur ir trīs formas, piemēram, go, went, gone, bet tev, Pēci, tikai divi masīvi.

— Nav jau nekāda lielā māka pielikt vēl vienu masīvu, bet var iztikt arī bez tā. Vienā masīvā es lieku nenoteiksmi go, bet otrā — abas pārējās formas went un gone. Mašīnai nebūs ne mazākās jausmas, ka vienā masīva elementā ir divi vārdi. Simbolu virkne tā taču ir.

— Tas viss par valodu; bet kā ar citiem mācību 170priekšmetiem? Vai tur šai programmai būtu kāda jēga?

— Kādus priekšmetus tu gribētu?

— Piemēram, literatūru.

— Sacerējumus jau nu mašīna nerakstīs un to, kā tas darāms, arī nemācīs. Vienīgi varētu sastādīt programmu, kas atkārto rakstnieku dzīves datus, programmā neko būtisku nemainot, bet mums tos datus diez ko mācīties nespiež. Vēsturē pilnīgi tāpat varētu mācīties svarīgāko notikumu gadskaitļus. Pirmajā masīvā notikums, otrajā — gadskaitlis.

... vēsturē ...

— Vai tu gribi teikt, ka viena masīva elementa vērtība varētu būt kāda vēsturiskā notikuma apraksts, piemēram, «Franču buržuāziskās revolūcijas sākums»?

— Kāpēc gan ne! Bet, mācoties vēsturi, ir jēga atprasīt tikai notikumus un atbildēt ar gadskaitļiem. Ja otrādi, tad pavisam grūti būs atbildēt, kas noticis, piemēram, 1890. gadā. Tad taču notika daudz kas, un nevar jau zināt, ko programmas sastādītājs ir domājis.

— Es gan nezinu nekā tāda, kas varētu būt noticis šajā gadā.

— To es tāpat — piemēram. Ja arī tu pareizi iedomātos, kas tajā gadā ir noticis, tad tā notikuma apraksts būtu jāievada tieši tāpat, kā tas programmā, operatoros DATA, glabājas.

— Izdomāju, kā šo programmu varētu pārveidot!

— Kā?

... un vēl kur citur

— Tikai tas nav gluži skolas vajadzībām. Varētu atkārtot pasaules rekordus vieglatlētikas disciplīnās. Vienā masīvā disciplīna, otrā — rekords. Ja kādam gribas paspīdēt ar savām zināšanām, tad var samācīties.

— Varētu gan. Bet kurš tad tos rekordus nezina! Tad jau labāk populāru dziesmu nosaukumus un tos ansambļus, kuri tās izpilda.

171— Tos zina visi. Tāpēc tos arī sauc par populāriem.

— Vai zini, kas man pašam šajā programmā visvairāk nepatīk? Tas, ka tā liek ievadīt mašīnpareizrakstībā. Vajadzēja noprogrammēt tā, ka stabiņā tiek izvadītas sanumurētas republikas vai galvaspilsētas un skolēnam jāizvēlas, kurš numurs kam atbilst. Pirmkārt, ievade tad būtu krietni vien ātrāka, un, otrkārt, mazāka būtu iespējamība, ka skolēns kontroldarbā uzraksta, ka «Moldahvijas galvaspilsēta ir Kishinjeva». No otras puses, tāds saraksts būtu gandrīz vai špikeris.

— Ilgi gan esam noņēmušies ar šo programmu! Bet viss taču sākās ar to, ka apspriedām, kā manu lietvārdu locīšanas programmu izmantot bērnu mācīšanai! Iznāk, ka atmiņā ar operatoru DATA būtu jāglabā nezin cik pirmās deklinācijas lietvārdu, pēc tam tie jāsaliek masīvā un pēc tam no tā masīva jāņem ārā, kā pagadās, un jādod bērnam locīt.

— Es domāju, varētu ņemt vēl vienu gadījumskaitli no 1 līdz 6, kurš apzīmētu locījuma numuru, un šo locījumu arī atprasīt. Protams, tad tev vajadzētu nodibināt simbolisko masīvu ar locījumu nosaukumiem un atbilstošajām galotnēm. Lai varētu izveidot izvadu. Vēl būs jāpārbauda, vai nav uzkritis instrumentālis. Tas ir tāds sevišķs locījums, jo tajā ne tikai mainās lietvārda galotne, bet lietvārdam tiek arī pievienots prievārds «ar». Bet nu gan jābeidz. Man vēl jāmācās latene un nepavisam ne par pirmās deklinācijas lietvārdu locīšanu.