Аватар для haseki
4 / 4 / 1
Регистрация: 02.11.2013
Сообщений: 164
1

Подсчет количества вещественных чисел и целых чисел в текстовом файле

08.03.2015, 21:45. Показов 10605. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подсчет количества вещественных чисел и целых чисел в текстовом файле. Вещественные и целые числа подсчитать отдельно. Считать, что слова в файле записаны в формате ОДНО СЛОВО В СТРОКЕ. Слово – это целое число (состоящее из десятичных цифр) или последовательность букв латинского алфавита (начинающаяся с буквы) или последовательность десятичных цифр с точкой (.) внутри строки. Имя файла задается первым параметром (%1) командного файла.

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
set /A int=0
set /A float=0
for /F "usebackq delims=" %%a in (%1) do for %%i in (%%a) do (
  echo %%i | Findstr /BRC:"[0-9]" > nul && set /a int+=1
  echo %%i | Findstr /BRC:"[0.0-9.9]" > nul && set /a float+=1
  )
)
echo Integer = %int%
echo Float = %float%
pause
1. Как сделать так, чтобы считались как положительные, так и отрицательные числа?
2. Очевидно, диапазон вещественных чисел указан неправильно: в результате оказывается, что число целых чисел равно числу вещественных.
Например, в файле, в котором записано следующее:
1 2 5 7.8 7 78 ф ав паав
Результат программы:
Integer = 6
Float = 6

Добавлено через 4 часа 3 минуты
Исправил регулярки в цикле, теперь вещественных чисел вообще 0

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
set /A int=0
set /A float=0
for /F "usebackq delims=" %%a in (%1) do for %%i in (%%a) do (
  echo %%i | Findstr /BRC:"-*[0-9]" > nul && set /a int+=1
  echo %%i | Findstr /BRC:"[-+]?[0-9]+\.?[0-9]*" > nul && set /a float+=1
  )
)
echo Integer = %int%
echo Float = %float%
pause
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2015, 21:45
Ответы с готовыми решениями:

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

Разработать и выполнить командный файл (КФ), выполняющий подсчет количества целых чисел в текстовом файле
Разработать и выполнить командный файл (КФ), выполняющий подсчет количества целых чисел в текстовом файле. Считать, что слова в файле...

В текстовом файле из целых чисел найти количество нечетных чисел в последней строке
В текстовом файле из целых чисел найти количество нечетных чисел в последней строке

4
 Аватар для ComSpec
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.03.2015, 11:11 2
Без "findstr" и регулярных выражений (с учётом отрицательных чисел):


Bash
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
29
30
31
32
33
34
35
36
37
38
39
@echo off& setlocal
 
set int=0
set float=0
 
for /f "usebackq delims=" %%a in ("%~1") do (
 for %%b in (%%a) do (
  for /f "tokens=* delims=." %%c in ("%%b") do (
   if "%%c" equ "%%b" (
    for /f "tokens=* delims=+-" %%d in ("%%b") do (
     if "+%%d" equ "%%b" (
      set flag=+
      )
     if "-%%d" equ "%%b" (
      set flag=-
      )
     if "%%d" equ "%%b" (
      set flag=?
      )
     if defined flag (
      set "flag="
      for /f "tokens=1,2 delims=+-0123456789" %%e in ("%%b") do (
       if "%%e" equ "." (
        if "%%f" equ "" (
         set /a float+=1
         )
        )
       )
      )
     )
    )
   )|| set /a int+=1
  )
 )
 
echo Integer = %int%
echo Float = %float%
 
pause>nul& endlocal& exit /b

.
2
 Аватар для haseki
4 / 4 / 1
Регистрация: 02.11.2013
Сообщений: 164
09.03.2015, 13:16  [ТС] 3
ComSpec, большое спасибо!
И все-таки любопытно, а если с findstr?
0
 Аватар для ComSpec
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.03.2015, 14:36 4
Цитата Сообщение от haseki Посмотреть сообщение
И все-таки любопытно, а если с findstr?


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off
 
set int=0
set float=0
 
for /f "usebackq delims=" %%a in ("%~1") do (
 for %%b in (%%a) do (
  for /f %%c in ('
   ^<nul set /p "=%%b"^| more^| findstr /r /c:"^[0-9][0-9]*$" /c:"^[+-][0-9][0-9]*$"
  ') do (
   set /a int+=1
   )
  for /f %%c in ('
   ^<nul set /p "=%%b"^| findstr /r /c:"^[0-9][0-9]*\.[0-9][0-9]*$" /c:"^[+-][0-9][0-9]*\.[0-9][0-9]*$"
  ') do (
   set /a float+=1
   )
  )
 ) 
 
echo Integer = %int%
echo Float = %float%
 
pause>nul& exit /b

С "findstr" код работает медленнее.
2
 Аватар для haseki
4 / 4 / 1
Регистрация: 02.11.2013
Сообщений: 164
09.03.2015, 14:38  [ТС] 5
ComSpec, большое-большое спасибо!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2015, 14:38
Помогаю со студенческими работами здесь

Подсчёт суммы чисел в текстовом файле
В одном файле в первой строке записано число n, а во второй через пробел n целых чисел. Прочитать их, посчитать их сумму и записать в...

Подсчет суммы чисел в текстовом файле
Допустим, содержание текстового файла: Иванов Иван 4391-21 Вариант 1 2 0 5 0 2 12 1

Сохранить элементы матрицы вещественных чисел в текстовом файле
Сохранить элементы матрицы вещественных чисел в текстовом файле с такой структурой: • первая строка файла содержит два числа n и m,...

Подсчет количества отрицательных элементов одномерного массива вещественных чисел
вот мой вариант но что-то не работает помогите плиз program zadacha4; uses crt; type MyArr=array of integer; var ...

Подсчет количества чисел в файле
В файле test.txt написано: 0 -1 7 8. Консоль выводит результат: count positive = 0 count negative = 0. Насколько поняла, читает до условия...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Protobuf в Go и новый Opaque API
golander 15.03.2025
Распределенные системы опираются на эффективные протоколы обмена данными — о чем вы, скорее всего, прекрасно знаете, если работаете с микросервисной архитектурой. Protocol Buffers (Protobuf) от. . .
Преобразование строк в C++: std::from_chars от C++17 до C++26
NullReferenced 15.03.2025
Конвертация строк в числа — задача, с которой сталкивается практически каждый C++ разработчик. Несмотря на кажущуюся простоту, эта операция таит множество подводных камней и неочевидных последствий. . .
Управление памятью в Java и новые сборщики мусора
Javaican 15.03.2025
Эффективное управление памятью всегда было ахиллесовой пятой высоконагруженных Java-приложений. При разработке на Java мы обычно полагаемся на автоматическое управление памятью через сборщики мусора. . .
Angular или Svelte - что выбрать?
Reangularity 15.03.2025
Во фронтенд-разработке Angular и Svelte представляют собой два совершенно разных подхода к решению схожих задач. Один — полноценный, мощный монолит с корпоративной поддержкой, другой — компактный,. . .
Spring Cloud микросервисы: обнаружение и отслеживание
Javaican 15.03.2025
В разработке корпоративных приложений всё больше команд обращают внимание на микросервисную архитектуру. Но с этой архитектурой приходят и специфичные трудности: как сервисам находить друг друга в. . .
Запуск контейнера Docker в облаке
Mr. Docker 15.03.2025
Что такое Docker-контейнер? Если коротко — это легковесный, автономный пакет, содержащий всё необходимое для запуска приложения: код, зависимости, библиотеки и конфигурации. Когда мы говорим о. . .
Осваиваем Kubernetes: Подробная шпаргалка
Mr. Docker 15.03.2025
Kubernetes — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Он был создан для решения проблем, с которыми сталкиваются. . .
Лучшие PHP REST API фреймворки
Jason-Webb 15.03.2025
Современные PHP REST API фреймворки предлагают большой набор функциональности: от автоматической валидации данных и управления маршрутизацией до генерации документации и интеграции с различными. . .
Многопоточность в Java с Project Loom: виртуальные или обычные потоки
Javaican 15.03.2025
Многопоточность всегда была одноим из основных элементов в разработке современного программного обеспечения. Она позволяет приложениям обрабатывать несколько задач одновременно, что критично для. . .
Что нового в Swift 6 и особенности миграции
mobDevWorks 15.03.2025
Swift 6 — это новый крупный релиз языка программирования от Apple, анонсированный на WWDC 2024. Если вы следили за эволюцией Swift, то наверняка заметили, что многие значимые возможности, которые. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru