Uses GraphABC; procedure Draw(x, y, l, u : Real; t : Integer);
procedure Draw2(Var x, y: Real; l, u : Real; t : Integer); begin Draw(x, y, l, u, t); x := x + l*cos(u); y := y - l*sin(u);end; begin if t > 0 then beginl := l/3;Draw2(x, y, l, u, t-1);Draw2(x, y, l, u+pi/3, t-1); Draw2(x, y, l, u-pi/3, t-1);Draw2(x, y, l, u, t-1);end else Line(Round(x), Round(y), Round(x+cos(u)*l), Round(y-sin(u)*l))end; begin SetWindowSize(425,500); SetWindowCaption('Фракталы: Снежинка Коха'); Draw(10, 354, 400, pi/3, 4);Draw(410, 354, 400, pi, 4); Draw(210, 8, 400, -pi/3, 4);end.
57 в восьмеричной системе - это в нашей 10-ричной 47. 2014 в шестнадцатеричной - это в нашей 8212. Составить алгоритм по нахождению последней цифры при возведении а в степень b не сложно: var i,a,b,p:word; {диапазон целых чисел 0..65535} Begin readln(a,b);p:=a mod 10; {первая степень числа а} for i:=2 to b do {если степень больше 1, то в цикле начинаем домножать, пока № витка цикла не дойдет до b } begin p:=p*a; {домножаем результат на последнюю цифру числа а} p:=p mod 10; {отделяем последнюю цифру результата} end; writeln(p); {по окончании цикла в р находится результат задачи} end. В результате вводимых данных (47 и 8212) получаем 1. Думаю, что и в 16-ричной будет тоже 1.
procedure Draw(x, y, l, u : Real; t : Integer);
procedure Draw2(Var x, y: Real; l, u : Real; t : Integer);
begin
Draw(x, y, l, u, t);
x := x + l*cos(u);
y := y - l*sin(u);end;
begin
if t > 0 then
beginl := l/3;Draw2(x, y, l, u, t-1);Draw2(x, y, l, u+pi/3, t-1);
Draw2(x, y, l, u-pi/3, t-1);Draw2(x, y, l, u, t-1);end
else
Line(Round(x), Round(y), Round(x+cos(u)*l), Round(y-sin(u)*l))end;
begin
SetWindowSize(425,500);
SetWindowCaption('Фракталы: Снежинка Коха');
Draw(10, 354, 400, pi/3, 4);Draw(410, 354, 400, pi, 4);
Draw(210, 8, 400, -pi/3, 4);end.