Количество кода (в строках или символах)

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

Количество отрицательных элементов, кратных 3 или 5, в строках матрицы
Помогите решить задачу пожалуйста! Дан двумерный массив размерностью 4×5, заполненный целыми.

Написать функцию, которая возвращает количество нулевых бит в символах строки
Есть срочная задача: написать функцию, которая возвращает количество нулевых бит в символах строки.
Ввести с клавиатуры строку. Определить во введенных символах количество гласных и согласных букв
Задание: Ввести с клавиатуры строку. Определить во введенных символах количество гласных и.
Wanna be serious
586 / 473 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
В старших версиях Visual Studio есть функционал по подсчёту количества строк кода в проекте.
Если у Вас Visual Studio версии Community, можно обойтись подручными средствами. Заходите в PowerShell, переходите в каталог с исследуемым проектом с помощью команды cd , и применяете затем команду (gci -include *.cs -recurse | select-string .).Count . Результатом будет как раз таки количество строк кода в проекте.
3372 / 2400 / 679
Регистрация: 02.08.2011
Сообщений: 6,565

Сообщение было отмечено bidjason как решение
Решение
Bespridelschic, ну select-string вытаскивает все подряд строки, я бы не брал в расчет подключение пространств имен. И в VS2015, и в VS2017 имеется функция Analyze->Calculate Code Metrics.
Добавлено через 14 минут
Ну разве что если передать маску, исключающую using.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

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

Найдите ошибку в 10 строках кода
#include <stdio.h> #include <string.h> int main (void) < char str; printf("string");.
Найти ошибку в трех строках кода
В каких (какой) строчке допущена ошибка Выберите по крайней мере один ответ: #include iostream.
Ошибка в строках кода (расчетная программа)
using System; using System.Collections.Generic; using System.Text; namespace аппроксимация
В каких строках кода нет синтаксических ошибок?
$10. В каких строках кода нет синтаксических ошибок: (обоснуйте ответ) int main() < long char c.
Или воспользуйтесь поиском по форуму:
Как на Bash посчитать число строк в проекте (директории)
Ниже будет представлен однострочник, решающий данную задачу на Bash + пошаговое описание его работы.
Не могу отнести данный код к супер-полезным или сложным, однако, это довольно занятное упражнение: если возникает какая-то задача — решать ещё однострочником на Bash. Получается такая своеобразная гимнастика для ума. Ну и позволяет не забывать основные команды Bash. Код ниже пройдётся по всем вложенным в текущую директорию файлам, посчитает количество строк, сложит вместе и выведет на консоль:
find -type f -name \*.c -exec wc -l <> \; \ | cut -d' ' -f1 \ | while read line; do \ res=$(($res + $line)); \ echo $res; \ done \ | tail -1
Для удобства я его отформатировал, а чтобы Bash не замечал переводы строк — заэкранировал их символом \ . Начнём с первой строки:
find -type f -name \*.c -exec wc -l <> \;
С помощью утилиты find можно рекурсивно пробежаться по директории в поисках нужных файлов. Так, к примеру, сейчас мы ищем по типу «f» — файлы ( -type f ), имя которых заканчивается на «*.c» ( -name \*.c ). При чём символ «*» нам нужно экранировать, ведь иначе Bash попытается подставить аргументом файлы, подходящие под шаблон. В нашем случае — *.с . С помощью же ключа -exec мы также просим find для каждого файла выполнить команду. В нашем случае используем утилиту wc — wc -l — посчитать строки:
$ find -type f -name \*.c -exec wc -l <> \; 38 ./t/test_x.c 45 ./t/test_y.c 49 ./t/test_z.c 224 ./main.c 267 ./inc/x.c 38 ./inc/y.c 77 ./inc/z.c .
Теперь мы имеем 2 колонки, разделённые пробелом: количество строк, имя файла. Вторая колонка нам неинтересна, поэтому вырежем её утилитой cut:
cut -d' ' -f1
Устанавливаем разделителем пробел ( -d’ ‘ ), оставляем 1-ую колонку ( -f1 ). Если возник вопрос о том, зачем нужна вертикальная черта между командами, подробнее — в заметке о потоках ввода-вывода. Если коротко — с помощью неё как по трубе передаём данные от одной команды к другой. На данный момент наши данные приняли вид:
$ find -type f -name \*.c -exec wc -l <> \; | cut -d' ' -f1 38 45 49 224 267 38 77 .
Теперь нам нужно просуммировать строки. И здесь нам потребуется цикл while. Считываем строчку за строчкой, а в теле цикла суммируем их и выводим результат:
res=$(($res + $line)); \ echo $res; \

Теперь в последней строке вывода будет искомое число. Получаем его утилитой tail. Ключ указывает на то, сколько строк с конца мы хотим получить: tail -1 — получить последнюю строку. Думаю, теперь понятно, как работает однострочник, представленный в начале заметки.
Как узнать количество строк кода в проекте?
Дано: Проект, состоящий из множества файлов (например *.java и *.xml ). Задача: Подсчитать сколько строк кода во всех этих файлах. Исключая комменты и пустые строки. Вопрос: Пилить свой велосипед или я не первый кто этим интересуется?
Отслеживать
задан 26 янв 2016 в 19:32
69.8k 9 9 золотых знаков 66 66 серебряных знаков 124 124 бронзовых знака
А зачем это может понадобиться?
26 янв 2016 в 19:34
@PavelParshin, ну, например, для обоснования длительности внесения изменений в код. Или для хвастовства.
26 янв 2016 в 19:35
Ещё для оценки (очень приблизительной) прогресса в решении к-л (сферической) задачи (сферическим) кодером.
26 янв 2016 в 20:03
@PavelParshin, вот, на вики даже статья есть на тему зачем: Количество строк кода
27 янв 2016 в 11:45
Я вас понял, спасибо)
27 янв 2016 в 11:49
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Решение задачи, в общих чертах, должно выглядеть так:
- Собираем список всех файлов в проекте, пробежавшись по всем его папкам.
- Считываем файл и считаем в нём кол-во строк
- Регулярками (например) выкидываем из общего числа строк файла пустые строки и закомментированные строки (в зависимости от типа файла и ЯП, определяем как именно выглядит коммент)
И да, есть готовые решения. Например, вот на гитхабе: Count Lines of Code
Вкратце алгоритм такой (для масдая):
- Скачиваем *.exe .
- Запускаем его из командной строки
- Указываем папку с исходниками.
- Получаем результат подобного вида:

P.S.
У Count Lines of Code есть множество ограничений. Например «/*» тут n строк кода «*/» будут восприняты как n строк комментов. Также подсчёт идёт не логических строк кода, а непустых строк, содержащих то, что программа определяет как код, а не комменты.
Обратите внимание на приведённый в README проекта список альтернативных решений.
Значения метрик кода
Повышенная сложность современных приложений программного обеспечения также повышает сложность обеспечения надежности и обслуживания кода. Метрики кода представляют собой набор оценок программного обеспечения, которые дают разработчикам более глубокое представление о разрабатываемом коде. Используя преимущества метрик кода, разработчики могут понять, какие типы и методы следует переработать или более тщательно протестировать. Команды разработчиков могут определить потенциальные риски, понять текущее состояние проекта и отслеживать ход разработки программного обеспечения.
Разработчики могут использовать Visual Studio для создания данных метрик кода, которые измеряют сложность и удобство обслуживания управляемого кода. Данные метрик кода можно создать для всего решения или одного проекта.
Сведения о создании данных метрик кода в Visual Studio см. в статье «Практическое руководство. Создание данных метрик кода».
Измерения программного обеспечения
В следующем списке показаны результаты метрики кода, вычисляемые Visual Studio:
- Индекс доступности — вычисляет значение индекса от 0 до 100, представляющее относительную простоту поддержания кода. Высокое значение означает лучшую поддержку. Цветные закодированные оценки можно использовать для быстрого выявления проблемных мест в коде. Зеленый рейтинг составляет от 20 до 100 и указывает, что код имеет хорошую поддержку. Желтый рейтинг составляет от 10 до 19 и указывает, что код является умеренным. Красный рейтинг — это рейтинг от 0 до 9 и указывает на низкую поддержку. Дополнительные сведения см. в разделе «Диапазон индексов поддержки» и «Значение».
- Цикломатическая сложность — измеряет структурную сложность кода. Он создается путем вычисления количества различных путей кода в потоке программы. Программа, которая имеет сложный поток управления, требует больше тестов для достижения хорошего покрытия кода и менее поддерживается. Дополнительные сведения см. в разделе «Цикломатическая сложность».
- Глубина наследования — указывает количество различных классов, наследуемых друг от друга, вплоть до базового класса. Глубина наследования аналогична связыванию классов, что изменение базового класса может повлиять на любой из унаследованных классов. Чем выше это число, тем глубже наследование и чем выше потенциал для изменений базового класса, что приведет к критическому изменению. Для глубины наследования низкая ценность хороша, и большое значение плохо. Дополнительные сведения см. в разделе «Глубина наследования».
- Объединение классов — измеряет связь с уникальными классами с помощью параметров, локальных переменных, возвращаемых типов, вызовов методов, универсальных или шаблонных экземпляров, базовых классов, реализаций интерфейса, полей, определенных во внешних типах и оформлении атрибутов. Хороший дизайн программного обеспечения диктует, что типы и методы должны иметь высокую сплоченность и низкую связь. Высокая связь означает дизайн, который трудно использовать и поддерживать из-за его многочисленных взаимозависимостей по другим типам. Дополнительные сведения см. в разделе «Связь классов».
- Строки исходного кода — указывает точное количество строк исходного кода , присутствующих в исходном файле, включая пустые строки. Эта метрика доступна начиная с Visual Studio 2019 версии 16.4 и Microsoft.CodeAnalysis.Metrics (2.9.5).
- Строки исполняемого кода — указывает приблизительное количество строк или операций исполняемого кода . Это количество операций в исполняемом коде. Эта метрика доступна начиная с Visual Studio 2019 версии 16.4 и Microsoft.CodeAnalysis.Metrics (2.9.5). Значение обычно близко соответствует предыдущей метрике, строкам кода, которая является метрикой на основе инструкций MSIL, используемой в устаревшем режиме.
Анонимные методы
Анонимный метод — это просто метод , который не имеет имени. Анонимные методы чаще всего используются для передачи блока кода в качестве параметра делегата. Результаты метрик кода для анонимного метода, объявленного в элементе, например методе или методе доступа, связаны с элементом, объявляющим метод. Они не связаны с членом, который вызывает метод.
Созданный код
Некоторые средства программного обеспечения и компиляторы создают код, добавленный в проект, и что разработчик проекта либо не видит, либо не должен изменяться. В основном метрики кода игнорируют созданный код при вычислении значений метрик. Это позволяет значениям метрик отражать то, что разработчик может видеть и изменять.
Код, созданный для Windows Forms, не игнорируется, так как это код, который разработчик может видеть и изменять.
Связанный контент
- Практическое руководство. Создание данных метрик кода
- Использование окна результатов метрик кода