1.
использовать Чертежник
алг
нач
сместиться в точку (3,0)
ц1
ц2
ц6
сместиться в точку (3,-5)
ц2
ц6
ц1
сместиться в точку (3,-10)
ц6
ц1
ц2
сместиться в точку (-1,-1)
кон
алг ц1
нач
опустить перо
сместиться на вектор (0,4)
сместиться на вектор (-2,-2)
поднять перо
сместиться на вектор (5,-2)
кон
алг ц2
нач
опустить перо
сместиться на вектор (-2,0)
сместиться на вектор (2,2)
сместиться на вектор (0,2)
сместиться на вектор (-2,0)
поднять перо
сместиться на вектор (5,-4)
кон
алг ц6
нач
опустить перо
сместиться на вектор (0,2)
сместиться на вектор (-2,0)
сместиться на вектор (2,2)
сместиться на вектор (-2,-2)
сместиться на вектор (0,-2)
сместиться на вектор (2,0)
поднять перо
сместиться на вектор (3,0)
кон
2.
использовать Чертежник
алг
нач
цел й
сместиться в точку (4,6)
нц для й от 2 до 6
опустить перо
сместиться на вектор (0,-й)
сместиться на вектор (й,0)
сместиться на вектор (-й,й)
поднять перо
сместиться на вектор (-1,0)
кц
сместиться в точку (-1,-1)
кон
3.
использовать Чертежник
алг
нач
цел д,к
вывод ('Введите длину вагона (д>=5) д = ')
ввод д
вывод ('Введите количество вагонов (к>=1) к = ')
ввод к
сместиться в точку (д+2,1)
опустить перо
лк (д)
нц к раз
в (д)
кц
поднять перо
сместиться в точку (-1,-1)
кон
алг лк (цел д)
нач
сместиться на вектор (-2,0)
сместиться на вектор (0,-1)
сместиться на вектор (1,0)
сместиться на вектор (0,1)
сместиться на вектор (-(д-2),0)
сместиться на вектор (0,-1)
сместиться на вектор (1,0)
сместиться на вектор (0,1)
сместиться на вектор (-4,0)
сместиться на вектор (2,2)
сместиться на вектор (д,0)
сместиться на вектор (0,-2)
кон
алг в (цел д)
нач
сместиться на вектор (3,0)
сместиться на вектор (0,-1)
сместиться на вектор (-1,0)
сместиться на вектор (0,1)
сместиться на вектор ((д-2),0)
сместиться на вектор (0,-1)
сместиться на вектор (-1,0)
сместиться на вектор (0,1)
сместиться на вектор (2,0)
сместиться на вектор (0,2)
сместиться на вектор (-д,0)
сместиться на вектор (0,-2)
сместиться на вектор (д,0)
кон
Объяснение:
Смотри картинки
// PascalABC.NET 3.0, сборка 1073
const
sb='bcdfgjklmnpqrstvwxz';
s='Computer programming is a process of computer programs creation';
var
i,n:integer;
s1,sn,t:string;
begin
i:=1;
while s[i]<>' ' do Inc(i);
s1:=Copy(s,1,i-1);
n:=Length(s); i:=n;
while s[i]<>' ' do Dec(i);
sn:=Copy(s,i+1,n-i);
t:='';
for i:=1 to Length(s1) do
if Pos(s1[i],sb)>0 then t:=t+s1[i];
s1:=t;
t:='';
for i:=1 to Length(sn) do
if Pos(sn[i],sb)>0 then t:=t+sn[i];
sn:=t;
t:='';
for i:=1 to Length(s1) do
if Pos(s1[i],sn)>0 then
if Pos(s1[i],t)=0 then t:=t+s1[i];
for i:=1 to Length(t) do Write(t[i],' ');
Writeln
end.
Тестовый прогон:
t r
2. "Нормальное" решение
// PascalABC.NET 3.0, сборка 1073
const
sb='bcdfgjklmnpqrstvwxz';
s='Computer programming is a process of computer programs creation';
begin
var a:=s.ToWords(' ');
a[0].Intersect(a[a.Length-1]).Where(x->Pos(x,sb)>0).Println(',')
end.
Тестовый прогон:
t,r