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