воскресенье, 10 февраля 2013 г.

поиск значения в массиве программа с

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.

Поиск элемента в массиве

Загрузка. Пожалуйста, подождите...

поиск элемента в массиве

Комментариев нет:

Отправить комментарий