Как посчитать количество произведенных сравнений элементов массива в PascalABC?
"Программа для поиска заданного элемента в массиве"
Суть: Заданный элемент для поиска вводить с клавиатуры. Массив заполнять с клавиатуры.
В результате выполнения программы вывести на экран:
Исходный массив,
Индекс заданного для поиска элемента или сообщение о том, что заданный элемент в массиве отсутствует.
Сосчитать количество произведенных сравнений элементов массива с образцом, прежде чем будет найден искомый элемент и вывести полученное значение на экран.
const n = 10; var s, k: array [1..n] of integer; y, i, number, sravn: integer; begin writeln('Введите число ,которое будем искать в массиве'); readln(number); writeln('Заполните ', n, ' элементов массива:'); for i := 1 to n do begin readln(s[i]); if number = s[i] then begin y := y + 1; k[y] := i; end; end; writeln('Массив:',s); if y = 0 then writeln('В массиве нет такого числа!') else if y = 1 then writeln('Число найдено, его порядковый номер = ', k[y]) else begin write('Число найдено, его порядковые номера = '); for i := 1 to y do write(k[i], ' '); end; end.
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Если число найдено, то количество сравнений равно его индексу в массиве, а если нет - то количеству элементов в массиве. Все индексы никто запоминать вроде не просил.
for i := 1 to n do
begin
readln(s[i]);
if number = s[i] then
begin
writeln('Число найдено, его индекс и количество сравнений ', i);
Exit;
end;
end;
writeln('Число не найдено, количество сравнений', n)
end.