Var r:array[1..3,1..3] of integer;i,j,n,k,sum:integer; b:array[1..30]of integer;beginrandomize;writeln('Исходная матрица: ');for i:=1 to 3 dobeginfor j:=1 to 3 dobeginr[i,j]:=random(15)-5;write(r[i,j]:3);end;writeln;end;// cумма диагоналиwriteln;for i:=1 to 3 dobeginfor j:=1 to 3 dobeginif i=j then beginwrite(r[i,j]:3);sum:= sum + r[i,j];end elsewrite(' ':3);end;writeln;end;writeln(sum);end.
Давай попробуем рассуждать логически. Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.
2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016 const nn=100; var i,j,n,t:integer; a:array[1..nn] of integer; begin Write('n='); Read(n); Randomize; for i:=1 to n do begin a[i]:=Random(3); Write(a[i],' ') end; Writeln; for i:=1 to n-1 do for j:=1 to n-1 do if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end; for i:=1 to n do Write(a[i],' '); Writeln; end.