Имя: Пароль:
1C
 
работа со строкой
,
0 GrandOpera
 
08.08.16
14:55
Дан текст
"В лесу родилась елочка в лесу она росла"
Слова в тексте разделены между собой одним или несколькими пробелами. Написать программу для выполнения следующих действий:
   А) подсчитать количество слов в тексте;
   Б) подсчитать количество букв а в последнем  слове текста;
   В) найти количество слов ,у которых первый и последний символ совпадают между собой.
1 Ёпрст
 
08.08.16
14:56
Занимайтесь
2 Зая Бусечка
 
08.08.16
14:58
12 тысяч 500 рублей
За первый вариант. За последующие вариции - 2000 за час.
3 GrandOpera
 
08.08.16
14:59
(2) просто в простых вопросах толк буду знать сложные я сам как нить постараюсь
4 Vaflya
 
08.08.16
14:59
1.разобратьстрокувмассивподстрок()
2.перебрать символы последнего элемента массива и посчитать
3.перебрать все элементы массива и сравнить последний символ с первым, посчитать

в 1 основа все движений
5 Ёпрст
 
08.08.16
15:00
1.СтрРазделить + Количество()
2.СтрНайти + Прав + Количество
3.СтрРазделить +Цикл+ Прав+Лев+условие
6 Nuobu
 
08.08.16
15:03
(4) А если пробелов будет два между словами?
7 KishMish
 
08.08.16
15:06
(5) 0. Пока Найти(Стр,"  ")>0 Цикл СтрЗАменить(Стр,"  "," ")
8 Vaflya
 
08.08.16
15:07
(5) с какой платформы появилось СтрРазделить()?
(4) РазобратьСтроку() это учитывает
9 Ёпрст
 
08.08.16
15:08
(8) 8.3.6 или еще раньше, не вспомню даже
10 Vaflya
 
08.08.16
15:10
+ 8 про 5
мой СП такого не знает
а, ясно, много там всякого полезного, надо обновлять.. но геморой ппц
11 Garykom
 
гуру
08.08.16
15:25

RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = Ложь;
RegExp.Global = Истина;
RegExp.MultiLine = Ложь;
RegExp.Pattern = "\s{1,}";
Matches=RegExp.Execute("В лесу  родилась елочка в лесу она росла");
Количество = Matches.Count() + 1;
Сообщить("Количество слов в тексте: "+Количество);
12 Garykom
 
гуру
08.08.16
15:27
(2) У меня ставка 500-1500 в час (в зависимости от жадности текущей), потратил на (11) 3 минуты, сколько в рублях с ТС считать лень
13 Garykom
 
гуру
08.08.16
15:30
(11)+ Для Б) и В) делается по образцу, ничего сложного поменять только RegExp.Pattern = "...";
14 GrandOpera
 
08.08.16
18:30
Текст = "В лесу родилась елочка в лесу она росла";
    ПерваяЗадача1 = СтрЗаменить(Текст," ",Символы.ПС);
    ПерваяЗадача2 = СтрЧислоСтрок(ПерваяЗадача1);
    //Сообщить(ПерваяЗадача2);
    ВтораяЗадача1 = СтрПолучитьСтроку(ПерваяЗадача1,ПерваяЗадача2);
    Массив = Новый Массив;
    Для  Сч = 1 По 8  Цикл
        ТретьяЗадача = СтрПолучитьСтроку(ПерваяЗадача1,Сч);
        Массив.Добавить(ТретьяЗадача);
    КонецЦикла;
    Для Каждого Стр Из Массив Цикл
        
        
    КонецЦикла;
Я вот первые две задачи решил третью никак не могу решить
15 GrandOpera
 
08.08.16
18:33
ВтораяЗадача2 = СтрДлина(ВтораяЗадача1);
16 hhhh
 
08.08.16
19:31
Если Лев(ТретьяЗадача, 1) - Прав(ТретьяЗадача, 1) Тогда
          Массив.Добавить(ТретьяЗадача);
КонецЕсли;
17 hhhh
 
08.08.16
19:31
Если Лев(ТретьяЗадача, 1) = Прав(ТретьяЗадача, 1) Тогда
          Массив.Добавить(ТретьяЗадача);
КонецЕсли;
18 Garykom
 
гуру
08.08.16
20:13
(14) 1-я задача решена с ошибкой, не учтено что между словами может быть " " а может "  " или даже "            ".

"В лесу  родилась   елочка    в      лесу      она       росла" - вполне корректная исходная строка.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший