Страница 1 из 1
поиск заданного чосла в одномерном массиве
Добавлено: 03 май 2007, 06:49
Oleg_Rus
если Хыиуду начал разговор про массивы и способы решения различных классических задач, то я хочу тоже "внести свою лепту"
procedure findkey(key, size: integer); {переменная Size - "размер" массива}
var i: integer; {дополнительная локальная переменная}
j: integer;
begin
j:=1;
for i:=1 to size do {организуем цикл от 1 (левого) элемента до последнего(правого)}
if a=key then
begin
writeln(j: 3, a:3, i);
inc(j);
end;
end;
процедура в табличном виде выдаст все вхождения переменной key в массив.
более того в переменной j останется количетво энтих вхождений.
Re: поиск заданного чосла в одномерном массиве
Добавлено: 03 май 2007, 13:50
Oscar
Oleg_Rus, как насчёт расширить задачу до "поиск заданнЫХ чисЕЛ в одномерном массиве" ? ;-)
С выводом позиций, колличества и, быть может, частоты вхождения.
В
"Решите мне задачку" уже есть желающие :-)
Re: поиск заданного чосла в одномерном массиве
Добавлено: 08 май 2007, 14:04
Хыиуду
Я бы все-таки не рекомендовал в вычислительных процедурах делать вывод на экран. Мало ли где эта процедура будет использоваться? В общем, вариант с функцией, но без вывода. Тем более не факт, что в программе массив будет называться именно а.
Код: Выделить всё
function findkey(startsearch,key:integer;a:array of integer):integer;
var i:integer;
begin
for i:=startsearch to high(a) do
if a[i]=key then
begin findkey:=i; break;end;
end;
Еще надо предусмотреть вариант, когда ключа в массиве нет
Re: поиск заданного чосла в одномерном массиве
Добавлено: 08 май 2007, 17:11
DeeJayC
cat | grep
Re: поиск заданного чосла в одномерном массиве
Добавлено: 15 май 2007, 09:17
Oleg_Rus
ну а, не а, просто моя привычка...
а насчет расширения процедуры мысл весьма хорошая.
я вот что думаю:
1.
если загнать искомые числа в отдельный массив new и в цикле просмотра нового массива устроить вызов процедуры findkey, где key = new[k]?
2.
частота вхождения ключа в массив: число size делить на j (вот тут я не уверен, ежели что прошу меня поправить)
3.
количество: Oscar, может ты не заметил, но в процедуре переменная j выполняет роль счетчика, просто ее вынести в число выходных данных.