Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Анализ элементов числового массива (http://forum.oszone.net/showthread.php?t=260180)

kelevara 08-05-2013 16:16 2146606

Анализ элементов числового массива
 
Добрый день!
Имеется некий текстовый файл, в котором находится набор чисел. Необходимо определить, сколько в нем положительных чисел.
Для этого я составил следующую программу:

Код:

$num_of_plus = 0
$i = 0
$f = get-content nn.txt
for ($i = 0; $i -lt $f.length; $i++)
{
"Число $i равно"
if ($f[$i] -ge 0) {$num_of_plus += 1}
}
"Число положительных элементов в файле nn.txt равно $num_of_plus"

Но в итоге выводится лишь следующее:
Число 0 равно
Число 1 равно
Число 2 равно
Число 3 равно
Число 4 равно
Число 5 равно
Число 6 равно
Число 7 равно
Число 8 равно
Число 9 равно
Число 10 равно
Число положительных элементов в файле nn.txt равно 11

Я думаю, что напутал где-то тут (if ($f[$i] -ge 0) {$num_of_plus += 1}), но как сделать правильно - не знаю.

Kazun 08-05-2013 16:25 2146610

-ge - Больше или равно
-gt - Больше

if ($f[$i] -gt 0)

kelevara 08-05-2013 16:28 2146613

Kazun, ненене, проблема не в этом. Я немного модифицировал код, чтобы было видно, какие именно числа он проверяет

Код:

$num_of_plus = 0
$i = 0
$f = get-content nn.txt
for ($i = 0; $i -lt $f.length; $i++)
{
"Число $i равно $f[$i]"
if ($f[$i] -gt 0) {$num_of_plus += 1}
}
"Число положительных элементов в файле nn.txt равно $num_of_plus"

В результате он выдает следующее:
Число 0 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[0]
Число 1 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[1]
Число 2 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[2]
Число 3 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[3]
Число 4 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[4]
Число 5 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[5]
Число 6 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[6]
Число 7 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[7]
Число 8 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[8]
Число 9 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[9]
Число 10 равно 25 -2 65 43 2 -84 -65 -3 95 8 4[10]
Число положительных элементов в файле nn.txt равно 11

Kazun 08-05-2013 16:29 2146614

Файл как выглядит?

kelevara 08-05-2013 16:31 2146619

Kazun, вот так:
25
-2
65
43
2
-84
-65
-3
95
8
4

Kazun 08-05-2013 16:33 2146622

Код:

$num_of_plus = 0
$f = get-content nn.txt
for ($i = 0; $i -lt $f.length; $i++)
{
Write-Host Число $i равно $f[$i]
if ([int]$f[$i] -gt 0) {$num_of_plus += 1}
}
"Число положительных элементов в файле nn.txt равно $num_of_plus"


kelevara 08-05-2013 16:36 2146623

Kazun, большое спасибо, все работает!
Если я правильно понял, то конструкция [int]$f[$i] означает, что из этой переменной будет извлечено только одно число, а не весь массив?

Kazun 08-05-2013 16:38 2146624

[int]$f[$i] - получить по номеру элемента $i значение из массива,т.к. $f[$i] - возвращает строку,приведем ее к типу int(целые числа).

kelevara 08-05-2013 16:40 2146626

Kazun, ок, понял. Спасибо!


Время: 21:45.

Время: 21:45.
© OSzone.net 2001-