Некоторые команды черепашки
Команды, описанные после начала конкурса
t.fillcolor(c)
Цвет заливки, например, сделать черепашку красной снаружи, жёлтой внутри:
t.color('red')
t.fillcolor('yellow')
t.begin_fill(), t.end_fill()
Начать и остановить заливку. Например, нарисовать жёлтый круг с красным контуром:
t.color('red')
t.fillcolor('yellow')
t.begin_fill()
t.circle(100)
t.end_fill()
Или, например, нарисовать жёлтый пятиугольник с красным контуром:
t.color('red')
t.fillcolor('yellow')
t.begin_fill()
t.circle(100, 360, 5)
t.end_fill()
Основные команды
t.backward(d)
Передвинуться назад на d пикселей, например, на 50:
t.backward(50)
t.circle(r)
Нарисовать круг радиусом r, например, 50 пикселей:
t.circle(50)
t.circle(r, angle, n)
Нарисовать дугу радиусом r, c углом angle и числом шагов n. Чем больше число шагов, тем плавнее дуга. Например, нарисуем дугу радиусом 50 пикселей, с углом 180 градусов и числом шагов 100:
t.circle(50, 180, 100)
t.circle(r, 360, n)
Нарисовать многоугольник с радиусом описанной окружности r и числом сторон n. Например, нарисуем шестиугольник с радиусом описанной окружности 100 пикселей:
t.circle(100, 360, 6)
t.color(c)
Изменить цвет на c. Рекомендуемые цвета: -black, -blue, -brown, -cyan, -gold, -green, -grey, -magenta, -orange, -pink, -red, -violet, -yellow. Цвет ставится в кавычки. Например, изменим цвет на красный:
t.color('red')
t.forward(d)
Передвинуться вперёд на d пикселей, например, на 50:
t.forward(50)
t.goto(x,y)
Перейти в точку с координатами (x,y), например, (100,15):
t.goto(100, 150)
t.left(angle)
Повернуть налево на угол angle, например, на 90 градусов:
t.left(90)
t.penup()
Поднять перо. Если перо поднято, черепашка не оставляет след при движении:
t.penup()
t.pendown()
Опустить перо. Если перо опущено, черепашка оставляет след при движении:
t.pendown()
t.right(angle)
Повернуть направо на угол angle, например, на 60 градусов:
t.right(60)
t.stamp()
Поставить отпечаток, эта команда без параметров:
t.stamp()
Объяснение:
import turtle
t = turtle.Turtle()
t.shape('turtle')
Объём информации первого письма на 100 бит больше (или в 1,5 больше), чем второго.
Объяснение:
Дано:
K₁ = 50 символов
N₁ = 64 символа
K₂ = 40 символов
N₂ = 32 символа
Найти: | I₁ - I₂ |, I₁ / I₂
i₁ = log₂N₁ = log₂64 = 6 бит/символов
i₂ = log₂N₂ = log₂32 = 5 бит/символов
I = K * i
I₁ = 50 символов * 6 бит/символ = 300 бит
I₂ = 40 символов * 5 бит/символ = 200 бит
| I₁ - I₂ | = | 300 бит - 200 бит | = 100 бит
I₁ / I₂ = 300 / 200 = 1,5
ответ: объём информации первого письма на 100 бит больше (или в 1,5 больше), чем второго.
// PascalABC.NET 3.2, сборка 1488 от 21.06.2017
// Внимание! Если программа не работает, обновите версию!
№1 Обычный вариант
begin
var s:=SeqGen(17,k->(k+2)/(4*Sqr(k+1)));
Writeln('Сумма четных членов ',s.Where((x,i)->i.IsOdd).Sum);
Writeln('Сумма нечетных членов ',s.Where((x,i)->i.IsEven).Sum);
end.
Результат
Сумма четных членов 0.43519602111678
Сумма нечетных членов 0.821643794807771
№2. Вариант "для шибко умных" (с классом для простых дробей)
type
fraction=class
public
numerator:BigInteger;
denominator:BigInteger;
class function GCD(a,b:BigInteger):BigInteger;
begin
while b<>0 do (a,b):=(b,a mod b);
Result:=a
end;
constructor Create(num:BigInteger:=0; denom:BigInteger:=1);
begin
var n:=GCD(num,denom);
numerator:=num div n;
denominator:=denom div n
end;
class function operator +(a,b:fraction):fraction;
begin
var n:=GCD(a.denominator,b.denominator);
Result:=new fraction(a.numerator*(b.denominator div n)+
b.numerator*(a.denominator div n),a.denominator div n*b.denominator);
end;
class procedure operator +=(var R:fraction; a:fraction);
begin
R:=R+a;
end;
end;
function Frc(a,b:BigInteger):fraction;
begin
Result:=new fraction(a,b);
end;
function Sumf(Self:sequence of fraction):fraction; extensionmethod;
begin
Result:=new fraction;
foreach var fr in Self do Result+=fr;
end;
function ToReal(Self:BigInteger):(real,integer); extensionmethod;
begin
var s:=Self.ToString;
var r:real;
if Real.TryParse(s,r) then Result:=(r,0)
else Result:=(s.Left(16).ToReal,s.Length-16)
end;
function ToReal(Self:fraction):real; extensionmethod;
begin
var a:=Self.numerator.ToReal;
var b:=Self.denominator.ToReal;
Result:=a[0]/b[0]*Power(10,a[1]-b[1])
end;
function Print(Self:fraction; s:string:=' '):fraction; extensionmethod;
begin
Result:=Self;
if Self.denominator=1 then Write(Self.numerator,s)
else Write(Self.numerator,'/',Self.denominator,s)
end;
begin
var f:=Range(2,17,2).Select(k->frc(k+1,Sqr(2*k))).Sumf;
Write('Сумма четных членов '); f.Print; Writeln('= ',f.ToReal);
f:=Range(1,17,2).Select(k->frc(k+1,Sqr(2*k))).Sumf;
Write('Сумма нечетных членов '); f.Print; Writeln('= ',f.ToReal);
Результат
Сумма четных членов 4913189/11289600 = 0.43519602111678
Сумма нечетных членов 192723465457/234558414090 = 0.82164379480777