const n=10;
var a:array [1..n] of real;
i,mi:integer;
s,m,p:real;
begin
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random*20-10;
write(a[i]:0:3,' ');
if a[i]>0 then s:=s+2*a[i];
end;
writeln;
m:=a[1];
mi:=1;
for i:=1 to n do if a[i]>m then
begin
m:=a[i];
mi:=i
end;
p:=1;
for i:=mi to n do if a[i]<0 then p:=p*2*a[i];
writeln ('Удвоенная сумма всех положительных элементов массива: ',s:0:3);
if p=1 then writeln ('Отрицательных чисел после максимального элемента нет')
else writeln ('Удвоенное произведение всех отрицательных элементов массива, расположенных после максимального элемента: ',p:0:3);
end.
Ответ:
6251413
Объяснение:
Поскольку функция рекурсивно вызывает себя и при каждом вызове выводит переданное число, удобно будет записать выводимые числа в столбик, обозначая глубину стека (количество рекурсивных вызовов) и произойдет ли вызов. Очередная пара рекуррентных вызовов происходит при передаче числа больше или равного четырём.
0: F(6) -> 6 (вызов произойдёт)
1: F(2) -> 2 (вызов не произойдёт)
1: F(5) -> 5 (вызов произойдёт)
2: F(1) -> 1 (вызов произойдёт)
2: F(4) -> 4 (вызов произойдёт)
3: F(1) -> 1 (вызов не произойдёт)
3: F(3) -> 3 (вызов не произойдёт)
При х=3 и у=0.
Выполняя логические операторы мы получаем x>=0 (истина) или true (значит истина). "Или" это логическое сложение, значит 1+1=1 , в логике. Дальше идет "И" х=3 (истина) или (у*у неравно 4), 1+1=1, при этом не равно 4, это будет истина. получаем что 1 (это "И")* 1=1. Отсюда возьмем первое (x>=0 or true) оно равно 1, возьмем второе (x=3.... <>4) оно тоже будет равно 1, отсюда
следует что 1*1=1
Ну вы хотябы Сделайте фотографию чтобы посмотреть что там)