Вариант 9 ("выпрямленная синусоида"). Потому что там была "птичка" )))
<em>// PascalABC.NET 3.2, сборка 1383 от 09.02.2017</em>
uses graphABC;
const
w=1000;
h=600;
function f(x:real):=abs(sin(x));
begin
SetWindowSize(w,h);
// поле для графика в окне
var xLeft:=50;
var yLeft:=50;
var xRight:=w-xLeft;
var yRight:=h-yLeft;
// интервалы по осям
var ax:=-12.0;
var bx:=12.0;
var hx:=1.0;
var ay:=-0.25; // минимум f(x) с запасом
var by:=1.5;
var hy:=0.25;
// масштабы по осям
var mx:=(xRight-xLeft)/(bx-ax);
var my:=(yRight-yLeft)/(by-ay);
// точка начала координат графика
var x0:=xLeft+Trunc(abs(ax)*mx);
var y0:=yRight-Trunc(abs(ay)*my);
// рисование координатных осей
Line(xLeft,y0,xRight+10,y0);
Line(x0,yLeft-10,x0,yRight);
SetFontSize(12); SetFontColor(clBlue);
TextOut(xRight+15,y0-10,'X');
TextOut(x0-4,yLeft-30,'Y');
SetFontSize(8); SetFontColor(clGreen);
// рисование засечек
var s:string;
for var i:=1 to Round((bx-ax)/hx)+1 do begin
var num:=ax+(i-1)*hx;
var x:=xLeft+Trunc(mx*(num-ax));
Line(x,y0-3,x,y0+3);
Str(num,s);
if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
end;
for var i:=1 to Round((by-ay)/hy)+1 do begin
var num:=ay+(i-1)*hy;
var y:=yRight-Trunc(my*(num-ay));
Line(x0-3,y,x0+3,y);
Str(num,s);
if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
end;
TextOut(x0-10,y0+10,'0');
// собственно график
var xi:=ax;
while xi<=bx do begin
var yi:=f(xi);
var x:=x0+Round(xi*mx);
var y:=y0-Round(yi*my);
if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);
xi+=1e-3
end
end.
var
n:integer;
begin
readln(n);
case n mod 12 of
4:writeln('год крысы');
5:writeln('год коровы');
6:writeln('год тигра');
7:writeln('год зайца');
8:writeln('год дракона');
9:writeln('год змеи');
10:writeln('год лошади');
11:writeln('год овцы');
0:writeln('год обезьяны');
1:writeln('год петуха');
2:writeln('год собаки');
3:writeln('год свиньи');
end;
end.
ужно каждой букве русского алфавита задать номер от 0 до 31. Максимальный номер (31) можно представить как двоичное число 31 =11111. Так как номеров больших 31 нет, то для кодирования русских букв достаточно пятизначного двоичного числа. Дальше необходимо разбить цепочку - шифр на группы из пяти знаков справа налево.
01111 = 15 - П
10011 = 19 - У
11000 = 24 - Ш
10100 = 10 - К
01000 = 8 - И
01101 = 13 - Н.
Var
i,f, f0, f1: integer;
begin
f0 := 0;f1 := 1;
write(f0:4, f1:4);
for i := 1 to 8 do
begin
f := f1 + f0;
write(f:4);
f0 := f1;
f1 := f;
end;
end.
Тестовое решение:
0 1 1 2 3 5 8 13 21 34