Page 42 - REVISTA MATINF Nr. 5
P. 42
42 D.A. Popescu
Solut ,ie. Vom scrie partea cea mai complicat˘a a proiectului, dup˘a care vom trece la copierea unei
port , iuni din program s , i lipirea ei de mai multe ori, ca s˘a acopere toat˘a distant , a cea mai lung˘a
ˆ
(99 cm) ce poate s˘a apar˘a. In program se folosesc urm˘atoarele variabile: L pentru lungimea
traseului (generat˘a aleator, ca s˘a verifice programul ˆın mai multe situat , ii), rot pentru num˘arul
de rotat , ii corespunz˘atoare distant , ei L, k num˘arul de rotat , ii pˆan˘a la un moment dat, Nr num˘arul
de buline de culoare diferit˘a de alb ˆıntˆalnite pe traseu. La o rotat , ie se parcurg aproximativ 18
ˆ
cm (valoare memorat˘a ˆıntr-o constant˘a) dac˘a se folosesc rot , i de diametrul 5,5 cm. In program
se vor introduce s , i dou˘a blocuri Switch, primul pentru a verifica cu senzorul de culoare, dac˘a se
ˆıntˆalnes , te o bulin˘a colorat˘a, iar al doilea pentru a verifica dac˘a num˘arul de rotat , ii pˆan˘a la un
moment dat, nu dep˘as , es , te valoarea lui rot.
Fig. 3: Programul de num˘arare a discurilor f˘ar˘a bloc de repetare
Pentru c˘a trebuie s˘a parcurgem cel mult 99 cm, atunci blocurile ar trebui repetate de 99/0.25
ori. Se poate mics , ora acest num˘ar dac˘a se ˆınlocuies , te ˆın blocul Move Steering valoarea 0.25
cu o valoare mai mare, dar exist˘a riscul s˘a nu mai numere toate bulinele. Acest lucru poate fi
evitat folosind blocul Loop (care are ca efect repetarea execut , iei s , irului de blocuri din interiorul
s˘au pˆan˘a cˆand o anumit˘a expresie logic˘a este adev˘arat˘a).
Fig. 4: Programul de num˘arare a discurilor cu bloc de repetare (Loop)