Давай дополним получившуюся игру функционалом. Помнишь, что у Rect есть атрибуты? Используя атрибуты Rect, сделай так, чтобы наш квадратик увеличивался в размере (по ширине и по высоте) на 1 пиксель каждый раз, когда съедает еду.
Будем считать целью игры вырастить квадратик до размеров экрана :)
Program R1;
Var n:integer;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
readln(n);
if n>0 then n:=n+1 else
n:=abs(n mod 2) ; {примечание-остаток будет положительным)
writeln(n);
close(input);
close(output);
end.
2 задача
Program R1;
Var n,l:integer;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
readln(n);
if (n mod 10)>(n div 10) then writeln('2>1') else
if (n mod 10)<(n div 10) then writeln('2<1') else
if (n mod 10)=(n div 10) then writeln('2=1');
close(input);
close(output);
end.
Сначала решим физическую задачу:
Дано:
v₀;
L;
Найти:
γ;
Решим систему ур-й описывающих движение:
y(t)=v₀Δt·sinγ - ½gΔt²
x(t)=v₀Δtcosγ;
В момент времени Пусть Δt = τ x(t)=L, тогда y(t)=0 ⇒
τ= L ÷ v₀cosγ (из ур-я x(t))
из ур-я y(t)
L·g ÷ v₀²=sin2γ
γ = ½arcsin (Lg ÷ v₀²) - Это конечная формула
ответ: γ = ½ arcsin(Lg ÷ v₀²);
Теперь код программы (PascalABC.NET):
//Если угол нужен в радианах
Program bullet_rad;
Const
g_grav = 9.8; // гравитационная постоянная g=9,8
Var
L, //Расстояние до цели
v: real; //Начальная скорость снаряда
Begin
readln (L,v); // Читаем расстояние и скорость
writeln (0.5*arcsin((L*g_grav)/sqr(v))); //Выводим ответ
End.
//Если угол нужен в градусах
Program bullet_gr;
Const
g_grav = 9.8; // гравитационная постоянная g=9,8
pi = 3.14; // постоянная п=3,14
Var
L, //Расстояние до цели
v: real; //Начальная скорость снаряда
Begin
readln (L,v); // Читаем расстояние и скорость
writeln ((90/pi)*arcsin((L*g_grav)/sqr(v))); //Выводим ответ
End.