Рабочий лист 11. Опыление Термины
Найди в филворде спрятанные слова. Раскрась их цветными
карандашами.
A
M
b
K
a
K
T
K
M
B
a
у
А
Ж
В
Ж
M
мит
у
K
о
HO
к
Ы
А
ч
Ч
а
ц
ъ
и
M
e
у
у
M
и
M
й
K
н |
H
a
ль
В
о
ы
K
у
а
и
Ц
3
B
r:
зь п
к
3
B
а
у
В
P
M
Н
ю
H
он
м
A
B
к
C
a
щ
K
а и
о
т
о
с
у
ч
м
в с
ble
Ыр
Н
В
ъ
B
и
K
ъ
M
у
к с
В
M
ок
ь та ж
H
Ы
A
а
b
U
и с.
a
В
ъ
C
K
о
n
b
в н къ
M
о
M
B
a
с
b
Н
b
с
е
M
к
и
с
с
M
ф
у
й
о
B
и
щ
B
ц
Слова для справок: завязь, опыление, пыльник, цветок,ТЫAbца,
венчик, чашелистик, семя.
Составь предложения с отгаданными словами.
type razbivka = array[0..PTR] of byte;
var n, i, z, k: byte;
x: razbivka;
procedure p(var x: razbivka; var z: byte);
var i, j, s: byte;
begin
i := z - 1;
s := x[z];
while (i > 1) and ( x[i - 1] <= x[i] ) do
begin
s := s + x[i];
dec(i);
end;
inc( x[i] );
z := i + s - 1;
for j := i + 1 to z do
x[j] := 1;
end;
begin
write('Введите число: ');
readln(n);
write(n,' = ');
z := n;
for i := 1 to z do
x[i] := 1;
for i := 1 to n do begin
if i > 1 then write(' + ');
write( x[i], '' );
end;
writeln;
repeat
p( x, z );
inc(k);
write( n,' = ' );
for i := 1 to z do begin
if i > 1 then write(' + ');
write( x[i], '' );
end;
writeln;
until z = 1;
end.
p.s: нашел в интернете для вас вариант с рекурсией. Сами можете убедиться, что с ней только хуже (по быстродействию уж точно)
const m = 100;
var a: array[1..m] of integer;
k, n: integer;
procedure p(j,n: integer);
var i: integer;
begin if ( n = 0 ) and ( k > 1 ) then
begin for i := 1 to k do
write( a[i] : 4 );
writeln;
end else for i := j to n do
begin
Inc(k);
a[k] := i;
p( j, n - i );
Dec(k);
end;
end;
begin
write('Введите число: ');
readln(n);
k := 0;
p(1,n);
end.
значения PTR и m можно поставить и больше, но тогда я не ручаюсь)