katyavoloshina1
05.02.2020 20:39

Написать программу на dev c++ (решение) для двух заданий (на 1 задание- 1 программа) Рисунки прикреплены второй фотографией.


Написать программу на dev c++ (решение) для двух заданий (на 1 задание- 1 программа) Рисунки прикреп
Написать программу на dev c++ (решение) для двух заданий (на 1 задание- 1 программа) Рисунки прикреп

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
kuzhbapolina20
20.09.2022 11:45

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

uses GraphABC;

type point=record

          x,y:integer;

          end;

procedure plitk(x,y,r:integer);

var p:array[1..9]of point;

   a,da:real;

   i:byte;

begin

a:=pi/2;

da:=pi/4;

for i:=1 to 9 do

begin

 p[i].x:=x+round(r*cos(a));

 p[i].y:=y-round(r*sin(a));

 a:=a+da;

end;

polygon(p,9);

end;

var r,i,j,x,y,d:integer;

begin

r:=20;

y:=r;

while y<=windowheight do

begin

 x:=r;

 while x<=windowwidth do

  begin

   plitk(x,y,r);

   x:=x+2*r;

  end;

 y:=y+2*r

end;

end

0,0(0 оценок)
Ответ:
VafaMurad
04.04.2022 16:30
Const PTR = 10;
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 можно поставить и больше, но тогда я не ручаюсь)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота