). Значення процедури підберемо залежно від швидкодії комп'ютера в процесі виконання завдання. p align="justify"> Завдання 1.
Складемо програму руху окружності.
Розбір завдання з учнями.
Окружність рухатиметься зліва направо в центрі екрану з радіусом 50. Змінювати необхідно координату х, наприклад, з кроком 10 пікселів. Будемо використовувати цикл з постусловіем: цикл закінчиться при натисканні клавіші Enter або якщо координата x + r> 640 - наша окружність досягне кінця екрана. p align="justify"> Зразковий вид програми:
uses crt, graph;
var, gm, x: integer; r = 50;: = detect; (gd, gm,'');: = 0, (2); (x, 240, r); ( 1000);;: = x +10; keypressed or (x + r> 640);
closegraph;.
Ускладнимо завдання - додамо ефект обертання.
Завдання 2.
Складемо програму руху обертового кола. Для наочності розіб'ємо наш коло на рівну кількість секторів, кожен сектор заллємо своїм кольором. p align="justify"> Розбір завдання з учнями.
В
Ефект обертання буде досягатися за рахунок зміни кольору секторів, наприклад, за годинниковою стрілкою.
Спочатку розглянемо, як розбити коло на сектори:
cos а = x/r, х = r * cos а,
sin а = x/r, х = r * sin а.
Тоді для промальовування ліній сектора необхідно скористатися процедурою:
line (х, у, x + round (r * cos (a)), round (r * sin (a)));
Тут х, у - координати центру кола.
Визначимо точку, щоб залити сектор. Для того щоб точка була всередині сектора, візьмемо радіус менше на 2 пікселя, кут - менше на 2 градуси. Так як при обчисленні синуса/косинуса аргументи повинні бути в радіанах, то отримуємо:
x: = (r-2) * cos (a-2 * pi/180);: = (r-2) * sin (a-2 * pi/180);
При переході до екранних координатах маємо:
floodfill (x + round ((r-2) * cos (a-2 * pi/180)), y-round ((r-2) * sin (a-2 * pi/ 180)), 15);
- константа для білого кольору, яким ми малюємо коло і лінії сектора; х, у - координати центру кола.
Складемо процедуру малювання даного кола. Вхідними параметрами даної процедури є координати х, у центру кола, кількість секторів n, r - радіус кола, а - кут сектора. p align="justify"> procedure krug (x, у, n, г: integer; a: real); i, b: integer; (15);
circle (x, у, r); {малюємо коло і першу пінію} (х, у, х + r, у);
Ь: = 0; {мінлива змінює значення константи кольору}
for i: = 1 to n do
a: = a +2 * pi/n;: = b +1; {будемо ...