var wscomm = new InnovaEditor("wscomm");
Добавление комментария
Просмотров: 4696 0
Рекомендуем посмотреть:
Хочешь получать свежие новости? Подпишись на обновления с сайта!
Понравилась новость? Добавь в закладки!
Дана задача Составить программу, осуществляющую поиск элемента p в массиве , состоящем из n элементов. В случае присутствия этого числа в массиве вывести его порядковый номер, в случае отсутствия - вывести соответствующее сообщение Итак, что нам необходимо сделать? Нам известно ,что есть некоторый массив , длина которого n элементов. Также нам нужно проверить ,есть ли среди этих элементов число p. Как решать? Ничего сложного нет : необходимо просто сравнить каждый элемент массива с числом p. const n = 5;var s: array [1..n] of integer; x, i, p: integer;begin writeln('Введите число ,которое будем искать в массиве'); readln(p); writeln('заполните ', n, ' элементов массива'); for i := 1 to n do begin readln(s[i]); if s[i] = p then x := i; end; if x = 0 then writeln('В массиве нет такого числа!') else writeln('Число найдено, его порядковый номер = ', x);end.Данный код представляет собой самый простой поиск элемента в массиве. Однако в нем есть один существенный недостаток. Здесь не рассматривается случай , когда в массиве 2 и одинаковых элементов равных p. Проще говоря , если например p=5 , а в массиве 5 повторяется 2 раза , первый раз в позиции 2 ,второй - в позиции 6, то в результате вышенаписанного кода будет выведено , что число 5 стоит а позиции 6. Объясняется это просто : в результате цикла , записывается сначала более ранняя позиция , которая потом стирается другой . То есть при нахождении новой позиции старая стирается, и в итоге цикла записывается только конечная позиция. Многих данный код устроит, но лучше его доработать. Будем считать все случаи , включая наихудший, в котором все элементы массива равны p. Поэтому для позиций создаем дополнительный цикл (назовем его k) . Итак модифицируем программуconst n = 5;var s, k: array [1..n] of integer; y, i, p: integer;begin writeln('Введите число ,которое будем искать в массиве'); readln(p); writeln('заполните ', n, ' элементов массива'); for i := 1 to n do begin readln(s[i]); if s[i] = p then begin y := y + 1; k[y] := i; end; end; 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.
Поиск элемента в массиве
Загрузка. Пожалуйста, подождите...
поиск элемента в массиве
Комментариев нет:
Отправить комментарий