Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Целый... Порядковый... Массив...


Автор: _eXpLoReR_ 19.5.2004, 01:31
Приветствую...
Программеры! У меня к вам сразу несколько вопросов:
1) Например, у меня есть число <b>40.5</b>. Как мне его сделать целым, т.е. <b>40</b>?
2) Мне нужно достать из массива определенный кусок значений. Как это сделать? Может так - <b>@massive[$one .. $another]</b>?
3) Нужно вывести список предложений по первым буквам в алфавитном порядке.

Помогите, пожалуйста! thumbs-up.gif thumbs-up.gif thumbs-up.gif thumbs-up.gif thumbs-up.gif thumbs-up.gif




Зраанее благодарен, explorer...

Автор: korob2001 19.5.2004, 04:02
1.) Если нужно просто срезать в строеке, во всех числах с плавающей запятой, всё что находится после неё, то можно воспользоваться таким способом:
Код

#!/usr/bin/perl -w
use strict;
use warnings;
my $str = '<b>40.5</b><br><font color="#ff0000"><b>12.6</b></font>';
$str =~ s/(\d+\.\d+)/int($1)/eg;
print $str;


Если нужно округлить все числа в строке до ближайшего целого, то может подойти такой вариант:
Код

#!/usr/bin/perl -w
use strict;
use warnings;
my $str = '<b>40.5</b><br><font color="#ff0000"><b>12.6</b></font>';
$str =~ s/(\d+\.\d+)/sprintf("%.f",$1)/eg;
print $str;


Если нужно срезать десятичную часть просто с числа:
Код

#!/usr/bin/perl -w
use strict;
my $num = 40.6;
print int( $num );


Если нужно округлить число и результат вывести на экран:
Код

#!/usr/bin/perl -w
use strict;
my $num  = 40.6;
printf("%.f", $num);


Если нужно округлить число, а результат сохранить в переменной, то:
Код

#!/usr/bin/perl -w
use strict;
my $num = 40.6;
$num = sprintf("%.f", $num);
print $num, "\n";


Есть конечно и другие способы.

======================================================

2.) Да, примерно так. Но на всякий случай вот пример:
Код

#!/usr/bin/perl -w
use strict;
use warnings;
my @nums = qw( zero one two three four five six seven eight nine );
# Нам нужно вывести 1,2,3,6,7,9 элементы
print join(", ", @nums[1..3,6..7,9]); # Срезаем массив

Вместо цифр, при срезе массива, можешь подставлять значения переменных.

======================================================

3.) Вот пример:
Код

#!/usr/bin/perl -w
use strict;
use warnings;
use locale;
my @strings = ('Это, первое предложение',
              'Вот это, второе предложение',
              'А вот это, предпоследнее предложение',
              'Ну и наконец последнее предложение');
foreach my $str ( sort { $a cmp $b } @strings ) {
    print $str, "\n";
}


Удачи.

Автор: HalkaR 4.6.2004, 12:16
_eXpLoReR_, на будущее, одна тема - один вопрос!

Автор: _eXpLoReR_ 4.6.2004, 15:41
Спасибо всем. Попробую сделать так.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)