В пчелином языке 2 различных движения головой и 4 движения брюшком, причём движения головой и брюшком непременно чередуются. Сколько различных последовательностей движений длины 5 может быть в этом языке?
// PascalABC.Net 3.0, сборка 1066 var s, wd: string; n, pt: integer;
begin Write('Введите строку: ');Readln(s); n := Length(s); pt := 1; repeat // Пропускаем все символы до первого непробельного while pt <= n do if s[pt] = ' ' then Inc(pt) else break; if pt <= n then begin // Выделяем очередное слово wd := ''; while pt <= n do if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end else break; if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd) end until pt > n; end.
Тестовое решение: Введите строку: **А роза упала на лапу Азора ** роза упала на
А вот так версия 3.0 позволяет решить задачу "по-современному":
// PascalABC.Net 3.0, сборка 1066 begin var s:=ReadString('Введите строку: '); Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я'])) end.
uses graphabc;
var x,y,i,n,k,x0,y0: integer;
begin
setwindowsize(640, 480);
setpenwidth(3);
line(10, 240, 630, 240);
line(320, 10, 320, 470);
line(620, 235, 630, 240);
line(620, 245, 630, 240);
line(315, 20, 320, 10);
line(325, 20, 320, 10);
n: =10;
for i: =1 to 61 do begin
line(o+i*n, 243, o+i*n, 237);
end;
for i: =1 to 46 da begin
line(317,20 +i*n, 323,20+i*n);
end;
x0: =320;
y0: =240;
k: =50;
for x: =-320 to 320 do
begin
y: =truns(k*sin(x/k);
putpixel(x0+x, y0-y, clred);
end;
textout (50,40; grafic y=sinx');
end.
var
s, wd: string;
n, pt: integer;
begin
Write('Введите строку: ');Readln(s);
n := Length(s); pt := 1;
repeat
// Пропускаем все символы до первого непробельного
while pt <= n do
if s[pt] = ' ' then Inc(pt) else break;
if pt <= n then begin
// Выделяем очередное слово
wd := '';
while pt <= n do
if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end
else break;
if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd)
end
until pt > n;
end.
Тестовое решение:
Введите строку: **А роза упала на лапу Азора **
роза
упала
на
А вот так версия 3.0 позволяет решить задачу "по-современному":
// PascalABC.Net 3.0, сборка 1066
begin
var s:=ReadString('Введите строку: ');
Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я']))
end.
Тестовое решение:
Введите строку: **А роза упала на лапу Азора **
Результат: [роза,упала,на]