Автор Тема: Непонятки....  (Прочитано 2804 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Непонятки....
« : 15 Апреля 2003, 22:24:26 »
Есть функция:

sub in()
{
my($digit,$array)=@_;
my $res=0;
for(my $i=0;$i<@$array;$i++)
  {
     if($digit==$$array[$i])
       {
         $res=1;
         last;
       }
  }
return($res);
}

Она проверяет входит ли элемент в список.
Но, вот не задача, передаю массив из n элементов, работает правильно она, только до 25 элемента, а дальше не находит:(
передаваемые данные 100% верны, проверял....
Заранее спасибо!

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Непонятки....
« Ответ #1 : 15 Апреля 2003, 23:21:13 »

#!/usr/bin/perl

foreach  (1..100)
{
push @a,$_;
}

foreach  (1..100)
{
print $_.\'-\'.&in($_,\\@a)."\\n";
}


sub in()
{
my($digit,$array)=@_;
my $res=0;
for(my $i=0;$i<@$array;$i++)
  {
     if($digit==$$array[$i])
       {
         $res=1;
         last;
       }
  }
return($res);
}

---------- Perl run ----------
1-1
2-1
...
100-1
Output completed (0 sec consumed) - Normal Termination

Но я бы вообще написал $#$array или $#{$array} вместо @$array

perldoc Data::Dumper
2B OR NOT 2B = FF

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Непонятки....
« Ответ #2 : 16 Апреля 2003, 07:26:49 »
у меня тоже все работает... я бы написал...

sub in {
    my ($digit, $array) = @_;
    for (@{$array}) {
        return 1 if $_ == $digit;
    }
    return 0; #можно опустить
}
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
Непонятки....
« Ответ #3 : 16 Апреля 2003, 16:16:31 »
А не лучше ли это

foreach  (1..100)
{
push @a,$_;
}

заменить на это

@a = (1..100);
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Непонятки....
« Ответ #4 : 16 Апреля 2003, 18:02:02 »
Цитировать
А не лучше...

Не принципиально, человек не спрашивал как ему лучше заполнить массив.
С дискуссиями от том как лучше это сделать - во флейм.
2B OR NOT 2B = FF

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Непонятки....
« Ответ #5 : 16 Апреля 2003, 23:25:18 »
Всем огромное спасибо!!!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28