Program Alexandra_1;
uses crt;
const n=5;
var
a:array[1..n] of integer;
i, sum: integer;
begin
sum:=0;
for i:=1 to n do
begin
write('Введите ',i,'-e число ');
readln(a[i]);
if a[i]>0 then sum:=sum+a[i];
end;
writeln('Сумма положительных элементов ',sum);
end.
Program Alexandra_2;
uses crt;
const n=7;
var
a:array[1..n] of integer;
i, num: integer;
begin
num:=0;
for i:=1 to n do
begin
write('Введите ',i,'-e число ');
readln(a[i]);
if (a[i]>0) AND (a[i] mod 2 = 0) then num:=num+1;
end;
writeln('Количество четных положительных элементов ',num);
end.
Program Alexandra_3;
uses crt;
const n=6;
var
a:array[1..n] of integer;
i, tum: integer;
begin
tum:=1;
for i:=1 to n do
begin
write('Введите ',i,'-e число ');
readln(a[i]);
if a[i]>0 then tum:=tum*a[i];
end;
writeln('Произведение положительных элементов ',tum);
end.
/*Простейшая реализация. Подразумевается, что вводятся корректные данные, n вмещается в int, а a и результат - в double. Визуализация зависимости числа операций умножения от степени n для чисел от 0 до 5000 прилагается */
#include <iostream>
double s_pow(double a, int power)
{
if (power == 0)
{
return 1;
}
if (power % 2 == 0)
{
return s_pow(a * a, power / 2);
}
return a * s_pow(a, power - 1);
}
int main()
{
double a;
int n;
std::cin >> a >> n;
std::cout << s_pow(a, n);
return 0;
}