Задание:
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер третьего положительного элемента массива (если из массива вычеркнуть все неположительные элементы, этот элемент стоял бы в получившемся массиве на третьем месте). Если в массиве меньше, чем три положительных элемента, вывести сообщение об этом. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
const N=30;
var a: array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do readln(a[i]);
...
end.
Решение:
Недостающий фрагмент:
k:=0;
for i:=1 to N do
if a[i] > 0 then begin
k:=k+1;
if k = 3 then j := i
end;
if k < 3 then
writeln('В массиве меньше трех положительных элементов')
else writeln(j)
Разбор программы:
* В переменной K программа будет считать число положительных элементов.
* Запускается цикл(for) из 30 элементов, последовательно проверяются значения через условие (if). Если значение положительно ( то есть больше нуля), тогда увеличиваем переменную k на единицу, с помощью встроенного условия проверяем: если k = 3, то есть если данное значение является третьим положительным в массиве, то в переменной J запоминаем его номер.
* Дальше с помощью условия проверяем, если K меньше трех, нужно вывести сообщение о том, что в массиве меньше трех положительных элементов.
* else(в противном случае), то есть если условие не выполняется, то на экран выводится номер третьего положительного элемента массива.