Const
n = 20;
type
V = array[1..n] of real;
var
x, y: V;
i, k: integer;
amax: real;
begin
writeln('Введите ', n, ' положительных элементов массива Х');
amax := -1E20;
k := 0;
for i := 1 to n do
begin
read(x[i]);
{защита от дурака}
if x[i] < 0 then x[i] := abs(x[i])
else if x[i] = 0 then x[i] := 1;
{сразу же находим значения элементов массива у и заодно нужный максимум}
y[i] := 0.5 * ln(x[i]);
if (y[i]>=3) and ((Trunc(y[i]) mod 3) = 0) and (amax begin
amax := y[i];
k := i
end
end;
writeln(' i Xi Yi');
writeln('---------------------------');
for i := 1 to n do
writeln(i:3,x[i]:12:4, y[i]:12:4);
writeln;
writeln('Искомый индекс:', k)
end.
Тестовое решение:
Введите 20 положительных элементов массива Х
365 7236 1243.4 1823 4.8 273 97.54 17000 42334 13443 323674 6787.23 100000 543433 17422.74732 19534.3 212 5454 7354.8 3153.67
i Xi Yi
---------------------------
1 365.0000 2.9499
2 7236.0000 4.4434
3 1243.4000 3.5628
4 1823.0000 3.7541
5 4.8000 0.7843
6 273.0000 2.8047
7 97.5400 2.2901
8 17000.0000 4.8705
9 42334.0000 5.3267
10 13443.0000 4.7531
11 323674.0000 6.3437
12 6787.2300 4.4114
13 100000.0000 5.7565
14 543433.0000 6.6028
15 17422.7473 4.8828
16 19534.3000 4.9400
17 212.0000 2.6783
18 5454.0000 4.3021
19 7354.8000 4.4516
20 3153.6700 4.0282
Искомый индекс:14