progr saab klaviatuurilt 4-muutuja loogikafunktsiooni tõeväärtustabeli ja töötleb seda kindla algoritmiga, väljastades lõpuks töötulemusena algoritmis etteantud lühikesed stringid.
Programm Ei saa parameetreid - sisend tuleb ainult klaviatuurilt.
Käivitamisel teatab:
"sisesta tõeväärtustabel KKaardina 4 x 4 või Tvtabeli loogikaväärtustena (16) :"
ja jääb ootama sisendit klaviatuurilt
user tohib sisestada ainult charactere 0 1.
KUI kasutaja sisestab mistahes muu sümboli kah sekka, siis runtime näitab kogu sisestatud stringi ja teatab:
lubamatu sisend : 101110A911101011
ja teeb exit.
kasutaja võib sisestada 1 / 0 kas 4 tk korraga ja 4 korda
või
stringina kus on 16 characteri.
Progr tunneb ise ära kumbal kujul kasutaja saadab, analüüsides sisestatud stringi.
Kui user sisestas näiteks:
0100 (enter)
siis progr näitab seda rida mis just tuli ja küsib jargmist rida kah:
0100
KKaardi TEINE rida?
kasutaja sisestab
1100 (enter)
progr displayb:
0100
1100
KKaardi KOLMAS rida?
kasutaja sisestab näiteks:
1110 (enter)
progr displayb vastu:
0100
1100
1110
KKaardi NELJAS rida?
kasutaja sisestab näiteks
0001 (enter)
progr displayb vastu:
0100
1100
1110
0001
meenuta DiskMat ja pane tähele et KKaardi read EI vasta täpselt TVtabeli järjestusele vaid väärtused "hüppavad" veidi erinevas järjestuses!
kui kasutaja sisestab jama, siis progr vastab:
lubamatu sisend : 4119U
ja displayb veelkord samad read mis enne juba olid :
0100
1100
1110
KKaardi NELJAS rida?
_ _ _ _
VÕI
"nelikute" asemel võib kasutaja sisestada ka KOGU TVtabeli korraga - 16 rida ehk fn väärtused ÜHES REAS KOOS:
progr küsib alguses:
sisesta tõeväärtustabel Kkaardina 4 x 4 või loogikaväärtustena (16) :
kasutaja sisestab näiteks:
0100110000011110 (enter)
progr saab aru et saabus 16characteri ehk kogu TVtabel - ning EI küsi rohkem midagi.
Iga saabunud väärtus selles 16realises Tvtabelis ehk REAS - omistatakse ühele muutujale
Selle siinse 16char stringi saabumisel omistatakse saabunud loogväärtused:
f0 = 0
f1 = 1
f2 = 0
f3 = 0
f4 = 1
f5 = 1
f6 = 0
f7 = 0
f8 = 0
f9 = 0
fA = 0
fB = 1
fC = 1
fD = 1
fE = 1
fF = 0
C keele muutuja TÜÜBi võib progeja ise valida - üks võimalus on tüüp char ehk 1-baidine täisarv.
Edasi vaja teha toiminguid nende muutijatega f0...... fF
edasi on mul lihtsam kirja panna "if then else" kombel.
ühekaupa ridadele vaja väljastada stringid:
if f0 = 1 then print string ekraanile "konstant 1 olemas" else print string ekraanile "konstant 1 puudub"
if f15 = 1 then print string ekraanile "PAARITU arv liikmeid" else print string ekraanile "PAARISarv liikmeid"
if f0 == f8 then print string ekraanile "x1 puudub" else print string ekraanile "x1 olemas"
if f0 == f4 then print string ekraanile "x2 puudub" else print string ekraanile "x2 olemas"
if f0 == f2 then print string ekraanile "x3 puudub" else print string ekraanile "x3 olemas"
if f0 == f1 then print string ekraanile "x4 puudub" else print string ekraanile "x4 olemas"
if f7 == 1 then print string ekraanile "ilma [x1] PAARITU" else print string ekraanile "ilma [x1] PAARIS"
if fB == 1 then print string ekraanile "ilma [x2] PAARITU" else print string ekraanile "ilma [x2] PAARIS"
if fD == 1 then print string ekraanile "ilma [x3] PAARITU" else print string ekraanile "ilma [x3] PAARIS"
if fE == 1 then print string ekraanile "ilma [x4] PAARITU" else print string ekraanile "ilma [x4] PAARIS"
see ongi kogu spek ehk algoritm.
Ilusasju võib juurde leiutada - aga siin on progemise eesmärk dokumenteeritud.
andmete ehk muutujate TÜÜBID võib valida vabalt.
Kuigi on olemas boolean tüüp (bool ?) siis teadmata kas see on hea kasutada.