Даю 100 балов.Инфа Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от -1000 до 1000 включительно. Опишите алгоритм, позволяющий найти и вывести максимальное значение среди отрицательных элементов массива, не оканчивающихся на 3. Если в исходном массиве нет элемента, значение которого отрицательно и не оканчивается цифрой 3, то вывести сообщение "Не найдено". Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
const
N = 30;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i:= 1 to N do
readln(a[i]);
...
end.

Ответы

Ответ дал: LRSM
0

Ответ:

  • max := -1001;
  • for j := 1 to N do
  • if (abs(a[j]) mod 10 <> 3) and (a[j]<0) then
  • if 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 do
  • if (a[j] mod 10 <> 3) and (a[j]<0) then
  • if a[j]>max then max := a[j];

Пробегаемся по элементам массива и смотрим: если остаток модуля элемента от деления на 10 неравен 3 (т.е. не оканчивается цифрой 3) и элемент меньше 0 (т.е. отрицательный), тогда, при условии, что элемент больше текущего максимального значения, переменную max перезаписываем -- присваиваем ей текущий элемент.

  • if max=-1001 then write('Не найдено')  
  • else write(max);

Если переменная max содержит изначальное значение (-1001), то выводим на экран "Не найдено", иначе выводим на экран max.

Пример работы:

Приложения:
Вас заинтересует