to aaa ;MSWLogo ;Program crta strujni krug u kome prikazuje ;sklopke koje mogu biti grupirane u paralelnom i ;serijskom spoju. Nema zastite od krivog ulaznog podatka ;tako da ulazni podatak mora biti flat lista ili lista s podlistama, ;a podaci samo brojevi "1" ili "0" koji oznacavaju ukljucenu ili ;iskljucenu sklopku. Crtez prikazuje i rasvjetno tijelo koje u ovisnosti o ;stanju sklopki moze biti ukljuceno ili ne. ;Pokrenuti s: ;--------------------------------- ;cs rt 90 struja [1 1 1 0 0] ;--------------------------------- ;ili npr. ;--------------------------------- ;---------------------------------------- ;cs rt 90 struja [[1 1] [1 0 1 0 1] [1]] ;---------------------------------------- end
to lampa :lista ifelse memberp 0 provjeri [] :lista [pu fd 10 pd circle 10] ~ [pu fd 10 pd circle 10 fill] end
to paralel :lista ifelse emptyp :lista [pu fd 40 pd rt 90 stop] ~ [lt 90 fd 20 rt 90] sklopka first :lista paralel bf :lista fd 20 end
to provjeri :rez :lista if emptyp :lista [op :rez] local "novo ifelse memberp 1 (first :lista) [make "novo se :rez 1] ~ [make "novo se :rez 0] op provjeri :novo bf :lista end
to serija :lista if emptyp :lista [stop] paralel first :lista lt 90 fd 10 serija bf :lista end
to sklopka :stanje fd 10 circle 2 if :stanje=1 [fd 20] if :stanje=0 [lt 45 fd 20 bk 20 rt 45 pu fd 20 pd] circle 2 fd 10 pu bk 40 pd end
to struja :lista fd 10 serija :lista lampa :lista end