6. Poola kuju ja pööratud Poola kuju. Poola kuju – loogikaavaldiste kirjapanek sulgusid kasutamata. Idee seisneb selles, et kui panna tehtemärgid väärtuste ette või järele ja kui tehtemärgi poolt töödeldavate väärtuste hulk on üheselt määratud, siis saab hakkama ilma sulgudeta. Tehtemärgid väärtuste ees on Poola kuju. Prefiks (+ab). Pööratud poola kuju – ilma sulgudeta kirjapanek, tehtemärgid väärtuste järgi. Postfiks (ab+). Tavaliselt infiks (a+b). Näide – infiks notatsioon on (a*b)+c, sama avaldis postfiks notatsioonis oleks ab*c+ Pööratud Poola kuju näide N:(5*3)+(1+(3-2)) Normaalkujult -> Postfixkujule Reeglid 1.Arv kirjuta väljundisse 2.Vasakut sulgu ignoreeri 3.Operaator(tehtemärk) pinusse 4.Parempoolse sulu puhul võta operaator pinust ja pane väljundisse. 1. 5*3)+(1+(3-2)) vasak sulg nahui 2
Operaatorid o Aitavad parandada lähtekoodi loetavust o Kõik süsteemioperaatorid v.a. ”,” on ümberdefineeritavad o Omavad kehtivust mooduli piires, kuid saab ka moodulitest välja eksportida Operaatori deklareerimine o prioriteet (1, ..., 1500) – väiksem number annab kõrgema prioriteedi. o tüüp: §assotsiatiivsus(näide:16/2 + 6) § kuju (prefiks, infiks, postfiks) Kui operaatori # tüüp on yfx, siis täidetakse # korduvesinemisi vasakult paremale Kui operaatori # tüüp on xfy, siis täidetakse # korduvesinemisi paremalt vasakule Operaatori deklaratsioon: :- op(Priority, Type, Name). Võrdus: arg1 = arg2 või =(arg1, arg2) Võrdus kehtib, kui võrdusega seotud muutujat omavahel unifitseeruvad (väärtused
5.3.2 Dünaamiline meetod kasutades ühe viidaga ahelat • Tuleb otsustada, kumba pidi viidad jooksevad, et push ja pop protseduure lihtsam kirjutada oleks • Piisab ühest viidast pinu tipule, et temaga peamisi operatsioone teha • Ei pea paiknema füüsiliselt järjestikku, vaid järgnevusseose määravad viidad • Elemendid võiksid viidata olemasoleva pinu poole (nö alla poole) 6. Postfiks avaldis ehk Pööratud Poola kuju (Reverse Polish Notation). Mis see on, kuidas teisendatakse tavaliseks infiks avaldiseks ja vastupidi. Nii loogika kui ka aritmeetikaavaldisi saab kirja panna kolmel erineval kujul: prefiks (+ab , Poola kuju, operandid on avaldises ees.), postfks (ab+ , pööratud poola kuju, operandid järel) ja infiks (a+b) kujul. 6.1 Postfiks avaldis ehk pööratud Poola kuju – (ab+) viis kuidas panna kirja loogikaavaldisi sulge kasutamata