90 likes | 177 Views
Rekursijas grafiskais attÄ“lojums LISP-programmÄs. Aleksejs Grocevs AkadÄ“miskÄ bakalaurantÅ«ra, 3. kursa bakalaurants ZinÄtniskais vadÄ«tÄjs: Dr. sc. ing., VjaÄeslavs Å itikovs. AttÄ“loÅ¡anas priekÅ¡rocÄ«bas. Viegli saskatÄma secÄ«ba PÄ“cteÄu un pirmteÄu sasaiste
E N D
Rekursijas grafiskais attēlojums LISP-programmās Aleksejs Grocevs Akadēmiskā bakalaurantūra, 3. kursa bakalaurants Zinātniskais vadītājs: Dr. sc. ing., Vjačeslavs Šitikovs
Attēlošanas priekšrocības • Viegli saskatāma secība • Pēcteču un pirmteču sasaiste • Iespēja izsekot grūtus apakšizsaukumus • Neietekmējošo rezultātu datu identificēšana 2008. g. Rīga
LispWorks trasēšana • (setq L1 '(A (B C))) • (setq L2 '(A (B Z))) • Pārbade iziet caur katru saraksta elementu (C un Z nesakrīt, tātad atbilde ir NIL) 2008. g. Rīga
Nosacījumi trasēšanas parsēšānai • Rinda satur ‘> ...’? • Tālāk seko ‘>>’? • Parametru saņemšana • Nākamā rindā ir ‘< ...’? • Rezultātu apstrāde • Rinda satur ‘< ...’? • Rezultātu apstrāde 2008. g. Rīga
Izmantotie līdzekļi • Apache/IIS – web-serveris failu uzturēšanai • PHP – parsēšana un saiste ar GD bibliotēku • GD – grafa zīmēšana • tar – rezultātu arhivēšana 2008. g. Rīga
Parsēšanas rezultātu žurnāls #1) Function [0] call, parent: MAIN, args: (A (B C)) and (A (B Z)), split #2) Function [1] call, parent: 1, args: A and A, instant answer (T) #3) Function [1] call, parent: 1, args: ((B C)) and ((B Z)), split #4) Function [2] call, parent: 3, args: (B C) and (B Z), split #5) Function [3] call, parent: 4, args: B and B, instant answer (T) #6) Function [3] call, parent: 4, args: (C) and (Z), split #7) Function [4] call, parent: 6, args: C and Z, instant answer (NIL) *** Function [3] answer: NIL, parent 6 closed *** Function [2] answer: NIL, parent 4 closed *** Function [1] answer: NIL, parent 3 closed *** Function [0] answer: NIL, parent 1 closed 2008. g. Rīga
Grafa attēlošanas posmi Rekursijas beigas Zilā – Grafa sakne Zaļā – Atrisināta lapa/zars Oranžā – tekošā lapa Gaiši pelēkā – izieti zari/lapas, kas devušas atbildes pirmtečiem Tumši pelēkā – zari/lapas, kas gaida atbildes no pēctečiem 2008. g. Rīga
Secinājumi • Pirms izstrādes tika izskatītas arī citas alternatīvas: • JavaScript grafu zīmētājs • Java applets • Flash-lietojums • Tika izmanota klase masīvu attēlošanai • Dažviet savienojumi netiek iezīmēti PHP masīvu ierobežojumu dēļ • Lietojums var strādāt uz jebkādas platformas, kas atbalsta PHP un GD 2008. g. Rīga
Paldies par uzmanību! Jautājumi? 2008. g. Rīga