Начинаем просматривать массив с первого элемента (i=1). Пока не просмотрен последний (i<=n) и не найден отрицательный (m[i]>=0), будем переходить к следующему (inc(i)). Таким образом, мы закончим просмотр в одном из двух случаев: первый − просмотрели все элементы и не нашли отрицательного, тогда i>n, второй − нашли нужный, при этом i<=n. Опишем функцию, значение которой истина (True), если в массиве есть отрицательный элемент, и ложь (False), если его нет.
Program Example_95;
Function Controll (m: myarray): Boolean;
Var i: Integer;
Begin
i:=1;
While (i<=n) And (m[i]>=0) Do Inc(i);
Controll:=(i<=n)
End;
Пример 2
Найти номер последнего отрицательного элемента массива.
Решение
Последний отрицательный − это первый отрицательный элемент, который встретится при просмотре массива с конца. Если очередной элемент не является отрицательным, то нужно уменьшать значение текущего индекса, пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент. Таким образом, можно модифицировать предыдущую функцию. Но поскольку надо найти номер элемента, тип результата будет целым.
Договоримся, что если в массиве нет отрицательного элемента, то значение функции будет равно 0.
Program Example_96;
Function Control2 (m: myarray): Integer;
Var i: Integer;
Begin
i:=n;
While (i>=1) And (m[i]>=0) Do Dec(i);
Control2:=i;
End.