если Хыиуду начал разговор про массивы и способы решения различных классических задач, то я хочу тоже "внести свою лепту"
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 останется количетво энтих вхождений.
поиск заданного чосла в одномерном массиве
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Oleg_Rus, как насчёт расширить задачу до "поиск заданнЫХ чисЕЛ в одномерном массиве" ? ;-)
С выводом позиций, колличества и, быть может, частоты вхождения.
В "Решите мне задачку" уже есть желающие :-)
С выводом позиций, колличества и, быть может, частоты вхождения.
В "Решите мне задачку" уже есть желающие :-)
Я бы все-таки не рекомендовал в вычислительных процедурах делать вывод на экран. Мало ли где эта процедура будет использоваться? В общем, вариант с функцией, но без вывода. Тем более не факт, что в программе массив будет называться именно а.
Еще надо предусмотреть вариант, когда ключа в массиве нет
Код: Выделить всё
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;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
ну а, не а, просто моя привычка...
а насчет расширения процедуры мысл весьма хорошая.
я вот что думаю:
1.
если загнать искомые числа в отдельный массив new и в цикле просмотра нового массива устроить вызов процедуры findkey, где key = new[k]?
2.
частота вхождения ключа в массив: число size делить на j (вот тут я не уверен, ежели что прошу меня поправить)
3.
количество: Oscar, может ты не заметил, но в процедуре переменная j выполняет роль счетчика, просто ее вынести в число выходных данных.
а насчет расширения процедуры мысл весьма хорошая.
я вот что думаю:
1.
если загнать искомые числа в отдельный массив new и в цикле просмотра нового массива устроить вызов процедуры findkey, где key = new[k]?
2.
частота вхождения ключа в массив: число size делить на j (вот тут я не уверен, ежели что прошу меня поправить)
3.
количество: Oscar, может ты не заметил, но в процедуре переменная j выполняет роль счетчика, просто ее вынести в число выходных данных.
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>