#include <iostream>
using namespace std;
void arithmeticProgression(const int& first, const int& differense, const int& N){
// first - первый номер арифметической прогрессии
// difference - разность
// N - число, до которого продолжать прогрессию
static int sum = 0; // тут будет сумма
static int callsNumber = 0; // считаем число вызовов функции для определения номера элемента последовательности
int next = first + differense; // следующий элемент прогрессии
sum += first; // подсчет суммы
if(callsNumber == N){
cout << "finally item: " << first << endl;
cout << "sum: " << sum << endl;
sum = 0;
callsNumber = 0;
return; // если следующий элемент идет по порядку больше N, то прервать рекурсию
}
else{
callsNumber++;
arithmeticProgression(next, differense, N); // иначе делать тоже самое со следующим числом прогрессии
}
}
int main(){
arithmeticProgression(2, 3, 3); // пример вызова
return 0;
}
Var
a: array[1..10]of integer;
i, k, n: integer;
begin
Writeln('Исходный массив:');
Randomize;
for i := 1 to 10 do
begin
a[i] := Random(51) - 25;
Write(a[i], ' ');
end;
Writeln;
n := 0;
k := 0;
for i := 10 downto 1 do
if a[i] > 0 then
begin
k := k + 1;
if k = 2 then n := i;
end;
if k = 0 then
Writeln('В массиве нет положительных элементов!')
else
Writeln('Предпоследний положительный элемент: a[', n, '] = ', a[n]);
Readln;
end.