Dari kā es, dari labāk par mani!
93 Katru dienu pie elektroniskā skaitļotāja nevar tikt, tāpēc Pēcis ierosināja paskatīties vecās programmas, kuras viņš bija sastādījis, savā laikā mācīdamies.
— Zini, reizēm nemaz nenāk par ļaunu papētīt citu sastādītās programmas. Es domāju, pēc tam tev radīsies sajūta, ka arī tu tā varētu.
— Kur nu! Ar tādiem programmēšanas klasiķiem kā Pēcis Beisikāns es jau nekad nevarēšu mēroties.
Visvienkāršākā vienādojuma risināšanas programma
— Labi, labi. Lūdzu, pirmā programma, kurā tiek risināts vienādojums AX=B, A un B — zināmie koeficienti, X — nezināms lielums.
— Lai atrisinātu tādu vienādojumu, nekāda lielā gudrība jau nu nav vajadzīga.
— Nav gan. Vienīgais triks ir tāds, ka jāpārbauda, vai A nav vienāds ar nulli. Ja ir vienāds, tad savukārt jāpārbauda, kāds ir B, un tikai tad, ja B=0, vienādojumam būs atrisinājums, pat bezgalīgi daudz atrisinājumu, jo X var būt patvaļīgs skaitlis. Ja B nav nulle, tad nekā, atrisinājuma nav, jo, lai ko ar nulli arī reizinātu, nulle vien iznāks.

— Jā, patīkami atcerēties jaunību, kad viss tas likās neaptveramas gudrības kalngali.
94 — Programma ir sastādīta pēc šādas blokshēmas:


Un pati programma izskatās šāda:
10 PRINT " PROGRAMMA RISINA VIENAHDOJUMU A*X=B"
20 REM MAINIHGAIS A - KOEF. A; B - KOEF. B
30 PRINT \ PRINT "IEVADIET KOEFICIENTU A";
40 INPUT A
50 PRINT "IEVADIET KOEFICIENTU B"; \ INPUT B
55 \
60 REM IEVADIHJUSHI A UN B, SALIHDZINAHM A AR 0
70 REM JA A=0, TAD IZVADAHM REZULTAHTU,
80 REM ATKARIHGU NO TA', VAI B=0, VAI NAV
85 \
90 IF A<>0 THEN 150
100 IF B<>0 THEN 130
110 PRINT "ATBILDE: X IR PATVALJIHGS SKAITLIS"
120 GO TO 160
130 PRINT "ATBILDE: ATRISINAHJUMA NAV"
140 GO TO 160
150 PRINT "ATBILDE: X=";B/A
155 \
160 PRINT \ PRINT "JA DARBU BEIDZAT, IEVADIET 0"
170 INPUT K
180 IF K<>0 THEN 30
190 STOP
200 END
— Skaties, blokshēmā pie katra bloka es pierakstīju to rindu numurus, ar kurām sākas bloka izpilde.
— Labi, skatāmies tavu programmu. Pirmajā rindā ar numuru 10 nekā sevišķa neredzu. Uz ekrāna tiek izdrukāts ziņojums, un tas ir viss. Otrā gan sākas jocīgi...
Kā savu programmu lai paskaidro!
— Tur parādās jauns operators — piezīmju operators, kuru apzīmē ar REM, kas ir saīsinājums no remark — «rimāk» — «piezīme». Šā operatora darbs ir gaužām vienkāršs. Tas nekā nedara.
— Jā, nekā nedarīt tiešām ir vienkārši. Bet kāpēc tad tāds operators ir vajadzīgs?
— Pēc REM programmā var ierakstīt visu, ko vien vēlas. Gandrīz visu, kā tu pati sapratīsi no programmas nākamās rindas. Tie var būt paskaidrojumi par programmas darbu: ko tā dara, kāds algoritms ir izraudzīts. Atsevišķās sarežģītākās vietās var paskaidrot, kas tur notiek.

— Vai tas atkal domāts lietotājam? Bet paši lietotāji programmu patiesībā nemaz neredz.
PIEZĪMES— Ir visādi lietotāji. Taču piezīmes būs noderīgas 96 ne tikai lietotājiem, bet arī pašam programmistam, kad viņš jau pēc neilga laika savu programmu būs krietni piemirsis. Tāpēc ir svarīgi, lai programmā būtu piezīmes. Ne tik svarīgi, lai to būtu daudz, cik svarīgi, lai piezīmes dotu ko jaunu, salīdzinot ar pašu programmu. Piemēram, nav lielas jēgas rakstīt kaut ko tādu:
10 REM A PIESHKJIRAM VEHRTIHBU 7
20 A=7
Piezīmē šeit ir tikai izstāstīts beisika operators.
— Un kā tad būtu labāk?
— Labāk būtu uzrakstīt, ko mainīgais A nozīmē, piemēram, dienu skaitu nedēļā. Bet šīs programmas otrajā rindā es piezīmēju, kādi mainīgie ir manā programmā un ko tie nozīmē. Runa gan ir par pamatmainīgajiem A un B, kuru vērtības būs vienādas ar koeficientiem A un B.
Nākamajā rindā 30 parādās simbols «\». Otrādā slīpsvītra, kā jau tev teicu. Ar to operatorus atdala citu no cita, ja vienā rindā grib rakstīt vairākus. Šajā rindā vispirms ir operators PRINT bez nekā — tas uz ekrāna izvadīs tukšu rindu. Un tad vēl viens operators PRINT ar tekstu. Tagad ir skaidrs, ka piezīmes tekstā pēc REM nedrīkst būt šī otrādā slīpsvītra. Tā nozīmēs, ka REM beidzas un sākas nākamais operators. Vēl otrādo slīpsvītru var izmantot, lai vienu programmas daļu atdalītu no otras, kā rindā 55.
— Rindu 40 vari nepaskaidrot, bet nākamā... Tur atkal ir divi operatori — PRINT un INPUT. Nekas briesmīgs, saprast var. Bet labi, ka vienā rindā var rakstīt vairākus operatorus.
— Labi gan, bet ar to neiesaka aizrauties, jo vadību var nodot tikai uz rindas sākumu. Uz rindas vidu nevar. Ja man nāktos kaut kad vēlāk programmā ar IF vai GO TO operatoriem vadību nodot uz operatoru INPUT, tad visa rinda 50 būtu jāpārveido par divām. Bet to man nevajadzēs darīt, jo šie PRINT un INPUT savā starpā ir cieši saistīti.
— Tālāk ir piezīmes. Veselas trīs rindas. Tur tu raksti par to, kā programma darīs savu darbu.
— Jā, to es īsi aprakstu, un vairāk piezīmju programmā nebūs. Vispār jau vajadzētu, taču man ir PRINT operatori ar diezgan labi saprotamiem izvadtekstiem, kurus arī var lasīt kā piezīmes. Skaties tālāk.
97 — Ahā! Tagad A vērtība tiek salīdzināta ar nulli. Ja A nav nulle — un tas būtu normāli —, tu ej uz rindu ar numuru 150, bet to es neskatīšos. Skatīšos nākamo rindu, un tur tev atkal ir salīdzināšana. Nu jā — tā, kā ir paredzēts blokshēmā. Tā, piemēram, ja B=0, tiek izvadīts viens ziņojums, bet, ja nav, tad cits. Domāju, ka to var saprast. Pēc abu ziņojumu izvadīšanas tu ej uz rindu 160, kur ir...
— Vispirms varbūt paskaties rindu 150, uz kurieni jādodas, ja A nav nulle.
— Kas tur ko skatīties, tiek izvadīts B dalījums ar A, un tas ir viss. Un pēc tam tieši uz rindu 160! Nu kā tad, arī blokshēmā pēc visiem šiem darbiem pāriet uz jautājumu: ko lai dara, strādāt tālāk .vai ne? Tātad tagad jārisina šī problēma. Tas arī notiek rindās ar numuriem no 160 līdz 190. Lieliska programma, Pēcīt! Apsveicu!
— Skatāmies nākamo programmu.