Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Анализ элементов числового массива

Ответить
Настройки темы
PowerShell - [решено] Анализ элементов числового массива

Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
$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}), но как сделать правильно - не знаю.

Отправлено: 16:16, 08-05-2013

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 16:25, 08-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:28, 08-05-2013 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:29, 08-05-2013 | #4


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:31, 08-05-2013 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:33, 08-05-2013 | #6


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:36, 08-05-2013 | #7


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:38, 08-05-2013 | #8


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:40, 08-05-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Анализ элементов числового массива

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Подсчет суммы положительных элементов массива antoiiika Программирование и базы данных 2 19-11-2011 05:20
PowerShell - Вывод нумерации элементов массива в консоль tarasov.evgeny Скриптовые языки администрирования Windows 0 12-04-2011 13:36
C/C++ - [решено] Найти среднее геометрическое элементов массива А (С++) kmi567 Программирование и базы данных 2 10-12-2010 05:06
C/C++ - Как выяснить размер числового массива? mrcnn Программирование и базы данных 10 19-12-2008 23:14
С/С++ | Выбор 10 случайных элементов из массива Vovius Программирование и базы данных 5 29-08-2006 19:37




 
Переход