Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 10:39

Столкнулся с тем, что не могу решить задачу на подсчёт и вывод символов,слов и пробелов.

Автор Reflection_, 18 авг 2023, 16:11

0 Пользователей и 1 гость просматривают эту тему.

Reflection_

Добрый день, на данный момент учусь кодить, столкнулся с тем, что не могу решить задачу.
Условие такое:Ввести текст от пользователя .Посчитать и вывести: количеств слов, пробелов и знаков препинания.

Моё решение:

Строка=" ";
ВвестиСтроку(Строка);
ЗнакиПрепинания=".,!";
КолличествоСлов=0;
КолличествоПробелов=0;
КолличествоЗнаковПрепинания=0;
МыВСлове=Ложь;
Для А=1 По СтрДлина(Строка) Цикл
Символ=А;
Если Символ=" " или Символ=ЗнакиПрепинания Тогда
 МыВСлове=Истина;
 КонецЕсли;
 КолличествоСлов=КолличествоСлов+1;
МыВСлове=Ложь;
Если Символ=" " Тогда
КолличествоПробелов=СтрЧислоВхождений(Строка," ");
КолличествоПробелов=КолличествоПробелов+1;
Иначе
КолличествоЗнаковПрепинания=КолличествоЗнаковПрепинания+1;    
КонецЕсли;
Если МыВСлове=Истина Тогда
КолличествоСлов=КолличествоСлов+1;
КонецЕсли;
ОткрытьЗначение(КолличествоСлов);
ОткрытьЗначение(КолличествоПробелов);
ОткрытьЗначение(КолличествоЗнаковПрепинания);
КонецЦикла;

Буду очень признателен за ответы.

alexandr_ll


fruitella

Reflection_, Для подсчета кол-ва слов используется метод разбития строки, который возвращает массив. Метод: СтрРазделить()
Вот так можно подсчитать кол-во слов
&НаКлиенте
Процедура ОбработатьДанные(Команда)
    КоличествоСлов = ПосчитатьКоличествоСлов(ПолеВвода);
    Сообщить(КоличествоСлов);
КонецПроцедуры

&НаКлиенте
функция ПосчитатьКоличествоСлов(ВходныеДанные)
    //Тут разбивается вся строка от пользователя на отдельные слова, которые поделены пробелами
    МассивСлов = СтрРазделить(ВходныеДанные, " ");
    СчетчикСлов = 0;
   
    Для Каждого ТекСлово Из МассивСлов Цикл
        СчетчикСлов = СчетчикСлов + 1;
    КонецЦикла;
   
    Возврат СчетчикСлов;   
КонецФункции

Тут могут также использоваться регулярные выражения. Советаю почитать о них, они в каждом языке программирования присутствуют. По той же логике ты можешь разбить строку на: знаки пунктуации, определенные слова, какие-либо другие символы.

Чтобы подсчитать кол-во знаков пунктуации, это будет немного сложнее. Никто не знает до конца, что является конкретно знаком пунктуации. Конечно если тебе заранее известно на какие знаки пунктуации разбить строку, то это сделать не сложно. А если нет?

Тут тогда проще разбить строку на слова, сделать сравнение с исходной строкой. найти все несовпадения и их обработать. Вот тогда ты точно получишь точное кол-во знаков пунктуации вместе с пробелами. Далее чтобы избавиться от пробелов, есть методы: СокрЛП() и СтрЗаменить(). Также советаю почитать о них.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск