ответ:max := -1001;for j := 1 to N doif (abs(a[j]) mod 10 <> 3) and (a[j]<0) thenif a[j]>max then max := a[j];if max=-1001 then write('Не найдено') else write(max);Объяснение:max := -1001;
Присваиваем переменной max, которая должна содержать максимальное значение, минимальное значение -1 ( -1000 -1 = -1001).
for j := 1 to N doif (a[j] mod 10 <> 3) and (a[j]<0) thenif a[j]>max then max := a[j];
Пробегаемся по элементам массива и смотрим: если остаток модуля элемента от деления на 10 неравен 3 (т.е. не оканчивается цифрой 3) и элемент меньше 0 (т.е. отрицательный), тогда, при условии, что элемент больше текущего максимального значения, переменную max перезаписываем -- присваиваем ей текущий элемент.
if max=-1001 then write('Не найдено') else write(max);
Если переменная max содержит изначальное значение (-1001), то выводим на экран "Не найдено", иначе выводим на экран max.
1. begin write(' '); var P:=ArrRandom(10,10,90).Println(' '); var T:=P.Select((x,k)->(k+1) mod 2=0?real(x*(k+1)):real(x/(k+1))).ToArray; for var i:=0 to T.Length-1 do write(T[i]:7:2); end.
2. begin var k:=ReadInteger('k = '); var a:=ArrRandom(10,-20,20).Println; var m:=a.Where(x->x<0).Max; writeln('Макс.отрицательное = ',m,', ',m,'*',k,'=',m*k); end.
Присваиваем переменной max, которая должна содержать максимальное значение, минимальное значение -1 ( -1000 -1 = -1001).
for j := 1 to N doif (a[j] mod 10 <> 3) and (a[j]<0) thenif a[j]>max then max := a[j];Пробегаемся по элементам массива и смотрим: если остаток модуля элемента от деления на 10 неравен 3 (т.е. не оканчивается цифрой 3) и элемент меньше 0 (т.е. отрицательный), тогда, при условии, что элемент больше текущего максимального значения, переменную max перезаписываем -- присваиваем ей текущий элемент.
if max=-1001 then write('Не найдено') else write(max);Если переменная max содержит изначальное значение (-1001), то выводим на экран "Не найдено", иначе выводим на экран max.
Пример работы: