Мой совет - запомнить как основную формулу для суммы первых n натуральных чисел
Доказывается она так: записываем те же числа в обратном порядке:
и складываем эти равенства таким образом: первое слагаемое с первым, второе со вторым и т.д. Поскольку в первой сумме каждое следующее слагаемое на 1 больше предыдущего, а во второй на 1 меньше предыдущего, мы получим сумму одинаковых чисел:
слагаемых всего n, поэтому
Теперь несложно найти сумму первых n четных чисел. Можно провести подобную выкладку, а можно свести новую задачу к предыдущей:
Program lab3;const n=10; {количество элементов в массиве} var A:array [1..n] of real; {объявление массива А} i:byte; {переменная для циклов} b:boolean; {идентификатор роста}begin writeln('vvedite tselie chisla matrici A[',n,',',n,']'); for i:=1 to n do begin {циклвводавмассив} write('A[',i,'] = '); readln(A[i]); end; writeln; writeln('matraca imeet vid: '); for i:=1 to n do begin {циклвыводамассива} write(A[i]:3:3,' '); end; writeln; b := true; for i:=1 to n-1 do {цикл определения роста} if (A[i] > A[i+1]) then begin {если текущий больше следующего} b := false; {значит масив невозростающий} break; end; if (b) then writeln('Masiv A - vozrostaushaya posledovatelnost''') else writeln('Masiv A - ne vozrostaushaya posledovatelnost'''); readln;
Доказывается она так: записываем те же числа в обратном порядке:
и складываем эти равенства таким образом: первое слагаемое с первым, второе со вторым и т.д. Поскольку в первой сумме каждое следующее слагаемое на 1 больше предыдущего, а во второй на 1 меньше предыдущего, мы получим сумму одинаковых чисел:
слагаемых всего n, поэтому
Теперь несложно найти сумму первых n четных чисел. Можно провести подобную выкладку, а можно свести новую задачу к предыдущей:
ответ:
var A:array [1..n] of real; {объявление массива А} i:byte; {переменная для циклов} b:boolean; {идентификатор роста}begin writeln('vvedite tselie chisla matrici A[',n,',',n,']'); for i:=1 to n do begin {циклвводавмассив} write('A[',i,'] = '); readln(A[i]); end; writeln; writeln('matraca imeet vid: '); for i:=1 to n do begin {циклвыводамассива} write(A[i]:3:3,' '); end; writeln; b := true; for i:=1 to n-1 do {цикл определения роста} if (A[i] > A[i+1]) then begin {если текущий больше следующего} b := false; {значит масив невозростающий} break; end; if (b) then writeln('Masiv A - vozrostaushaya posledovatelnost''') else writeln('Masiv A - ne vozrostaushaya posledovatelnost'''); readln;