Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 38

Подсчет количества положительных и отрицательных чисел

12.09.2012, 15:42. Показов 4760. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне очень нужна помощь в создании bat-файла

Задание: разработать командный файл для интерпретатора командной стоки CMD OC WindowsXP-Windows7 для подсчета количества положительных и отрицательных чисел в текстовом файле. Считать что слова в файле записаны в формате ОДНО СЛОВО В СТРОКЕ. Имя файла задается первым параметром КФ. Кто знает, напишите код полностью.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2012, 15:42
Ответы с готовыми решениями:

Последовательность чисел. Подсчет количества положительных и отрицательных элементов.
вводится последовательность ненулевых чисел 0-конец .последовательности . подчитать сколько в нем положительных и отрицательных чисел. в...

Подсчет количества положительных и отрицательных элементов в массиве
Доброго времени суток,нужна ваша помощь,написал программу по подсчету положительных и отрицательных элементов в массиве из 10...

Подсчет количества отрицательных и положительных элементов в динамическом массиве
Написать функцию, которая получает указатель на динамический массив и его размер, и возвращает количество отрицательных, положительных и...

12
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.09.2012, 15:52
Цитата Сообщение от nmv Посмотреть сообщение
ОДНО СЛОВО В СТРОКЕ
может быть
"Одно число в строке" ?
0
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 38
12.09.2012, 15:53  [ТС]
Нет, в задании "в формате ОДНО СЛОВО В СТРОКЕ".
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.09.2012, 15:54
Я понимаю, что в задании так написано.

Но Вы сами подумайте.
Там что кроме чисел еще и слова могут быть?
0
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 38
12.09.2012, 16:08  [ТС]
Скорей всего да, могут быть и слова и числа, как положительные, так и отрицательные. Создается bat-файл. Запускается. Вписываются числа, слова. Выдается результат на экран.
Сессия началась К зачету не допускают, пока не будет решена задача:-(

Добавлено через 5 минут
Пробовал сам, но допустил ошибки, где - не знаю, потому как не разбираюсь. Помогите
Вот что у меня есть:
@echo off
set n=%1
set result=1
if %1 LSS 0 (
echo "Error"
goto end
)
rem
if %1 GTR 12 (
echo "Error"
goto end)
for /f %%i in ('findstr /x "[0-9]*" %1') do set /a n+=1
echo %n%
echo end
:end
@echo on

Добавлено через 1 минуту
Преподаватель попросил обратить внимание на подчернотое. Но так как я в этом не понимаю, то исправить не могу. Да и файл поэтому не запускается
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.09.2012, 16:55
Какой-то неправильный код

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

И Вы точно уверены, что стоит усложнять так задачу - "Слова в перемешку с числами" ?

Добавлено через 7 минут
Цитата Сообщение от nmv Посмотреть сообщение
Bash
1
for /f %%i in ('findstr /x "[0-9]*" %1') do set /a n+=1
К примеру, эта часть считает кол-во строк, в которых первым символом является цифра (не знак).
При этом %1 заменяется на имя переданного CMD аргумента, коим является текстовой файл.
0
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 38
13.09.2012, 12:06  [ТС]
нет, я не уверен. Часть кода нашел в инете, часть сам пытался писать по методичке. В итоге не получилось. Что не так, не могу понять. Дали задание, надо выполнить (учусь на заочном), чтобы до зачета допустили. Вот бьюсь, пока без результатно.... Поэтому и прошу помощи. Нужен рабочий bat. А задание я уже писал выше
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.09.2012, 15:36
Bash
1
2
3
4
5
6
7
8
9
@echo off
For /f "usebackq delims=" %%a in ("file.txt") do for %%i in (%%a) do (
  echo %%i | FindStr.exe /BRC:"+*[0-9]" > nul && set /a pos+=1
  echo %%i | FindStr.exe /BRC:"-[0-9]" > nul && set /a neg+=1
  )
)
echo Positive = %pos%
echo Negative = %neg%
pause>nul
file.txt заменить на %~1 для передачи имени файла как параметра командной строки.
1
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 38
13.09.2012, 16:02  [ТС]
БОЛЬШОЕ СПАСИБО!!!!
0
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 5
12.02.2013, 08:46
А можно подробней описать команды... Что бы знать что к чему. Если вас не затруднит конечно.
0
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 38
12.02.2013, 09:19  [ТС]
Цитата Сообщение от niki598 Посмотреть сообщение
А можно подробней описать команды... Что бы знать что к чему. Если вас не затруднит конечно.
И задание и решение (команды) написаны выше
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.02.2013, 14:02
For /f "usebackq delims=" %%a in ("file.txt") do for %%i in (%%a) do (
1) Чтение файла file.txt построчно
2) 2 цикл строку разбивает на слова по пробелам, хотя в задании и не было сказано этого делать ("ОДНО СЛОВО В СТРОКЕ")
echo %%i | FindStr.exe /BRC:"+*[0-9]" > nul && set /a pos+=1
Передача слова через канал команде FindStr для поиска образца.
FindStr использует регулярное выражение /R
Образец означает: знак ведущий знак + и за ним * - этот знак не в обычном понимании (как маска), а модификатор, т.е. он обозначает, что предыдущий символ (+) может указываться 0 или более раз (по тому, что число без знака + это тоже положительное число). Далее проверяется, чтобы была хоть одна цифра. Что после нее - не важно.
&&set /a pos+=1
В случае успеха предыдущей операции выполняется инкремент. К числу, которое хранится в переменной pos добавляется единичка и сохраняется в эту же переменную.
По-умолчанию, в батниках переменную не нужно инициализировать. Дефолтовое значение = 0. /A - обозначает числовой тип данных.

Строка 4 по тому же принципу, только знак (-) обязателен.
Строки 7-8 - вывод на экран.
Строка 9 - ожидания нажатия клавиши без вывода сообщения на экран.

Подробно о работе цикла расписано в теме: https://www.cyberforum.ru/cmd-... 78462.html
1
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.05.2013, 12:02
Цитата Сообщение от niki598 Посмотреть сообщение
Если вас не затруднит конечно.
1. - вырубаем вывод названий выполняемых команд
2. - создаем цикл, который разбирает каждую строчку файла file.txt как отдельную переменную %%a, которая ещё одним циклом разделяется на отдельные части, которые разбираются, как переменная %%i
3. - выводим полученную строку файла в команду findstr, которая регулярным выражением ищет там знак плюса и цифры, && значит, что если он нашла, то только тогда выполняется следующая команда, в нашем случае это прибавление единицы к числу положительных чисел
4. - то же самое для отрицательных
7, 8 - вывод
9 - пауза до нажатия клавиши
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2013, 12:02
Помогаю со студенческими работами здесь

Подсчет количества отрицательных (положительных, нулевых, кратных k) элементов массива
Вы не могли бы помочь, пожалуйста? кто поможет- тому добра) заранее спасибо

Подсчет количества отрицательных (положительных, нулевых, кратных k) элементов массива
Нада сделать в двумерном массиве прогу через Array и просто через двум.массив помагите плизз Составить программу подсчета количества...

Рекурсия. Результат сравнения количества положительных и количества отрицательных чисел
Помогите, пожалуйста. Необходима программа с использованием рекурсии, которая находит результат сравнения количества положительных и...

Результат сравнения количества положительных и количества отрицательных чисел с рекурсией
Необходима программа с использованием рекурсии, которая находит результат сравнения количества положительных и количества отрицательных...

Подсчет количества отрицательных чисел в векторе
1. Написать программу заполнения вектора случайными числами от –23 до +84 и подсчета количества отрицательных чисел в нем. На экран вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru