Имя: Пароль:
1C
1С v8
необходимо прописать код, цикл в модуле
0 eleon
 
14.01.15
21:15
здравствуйте. я новичок. у меня задача прописать в модуле код, для того чтобы выяснить сколько букв А в тексте, введенным пользователем. помогите пожалуйста.
1 Rie
 
14.01.15
21:20
(0) Заводишь счётчик для букв "А", инициализируешь его нулём, проходишь циклом по строке, проверяешь: если символ - буква "А", увеличиваешь счётчик.
Что непонятно-то?
2 ГдеСобака Зарыта
 
14.01.15
21:22
Сч = 0;
Для А = 1 по СтрДлина(ТвояСтрока) Цикл
Если Сред(ТвояСтрока, А, 1) = "А" Тогда
Сч = Сч +1;
КонецЕсли;
КонецЦикла;
Сообщить(Сч);
В 9 классе проходили
3 Cyberhawk
 
14.01.15
21:26
4 Крошка Ру
 
14.01.15
21:29
(2) В 9-м классе заставляли учить язык 1С? Суровая челябинская школа?
5 ГдеСобака Зарыта
 
14.01.15
21:30
(4) Тогда Q-basic был. 1с недалеко ушел
6 Rie
 
14.01.15
21:30
(4) А разве алгоритм от языка зависит?
7 zulu_mix
 
14.01.15
21:40
ПромСтрока = СтрЗаменить(ТвояСтрока,"А",Символы.ПС);
КоличествоБуквА = СтрКоличествоСтрок(ПромСтрока)-1;
Сообщить("В строке "+ТвояСтрока+" "+КоличествоБуквА+" букв А");
8 zulu_mix
 
14.01.15
21:41
можно даже в одну строку сделать.

Сообщить("В строке "+ТвояСтрока+" "+СтрКоличествоСтрок(СтрЗаменить(ТвояСтрока,"А",Символы.ПС))-1+" букв А");
9 RomanYS
 
14.01.15
21:42
Стрдлина(Стр) - Стрдлина(стрЗаменить(стр,"А",1))

а может есть просто СтрЧислоВхождений ? не помню
10 RomanYS
 
14.01.15
21:42
*(9) стрЗаменить(стр,"А","")
11 karabas11
 
14.01.15
21:52
Встроенные функции языка (Script functions)
СтрЧислоВхождений (StrOccurrenceCount)
Синтаксис:

СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Исходная строка.
<ПодстрокаПоиска> (обязательный)

Тип: Строка.
Искомая подстрока.
Возвращаемое значение:

Тип: Число.
Число вхождений.
Описание:

Вычисляет число вхождений подстроки поиска в исходной строке.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

Результат = СтрЧислоВхождений(ИсходныйТекст, "Число");
Сообщить("Слово ""Число"" встречается " + Результат + " раз.");
12 sda553
 
15.01.15
04:50
(11) хм, а в строке
"абаба"
сколько вхождений "аба" по версии этой функции?
13 kosts
 
15.01.15
06:38
(0) На здоровье


Функция ВыяснитьСколькоБуквАВТексте(ИсходныйТекст)
    
    Если ПустаяСтрока(ИсходныйТекст) Тогда
        Возврат 0;
    КонецЕсли;
    
    Возврат ?(Лев(ИсходныйТекст, 1) = "А", 1, 0) + ВыяснитьСколькоБуквАВТексте(Сред(ИсходныйТекст, 2));
    
КонецФункции
14 RomaH
 
naïve
15.01.15
06:55
СтрДлина("АБАБА") - СтрДлина(СтрЗаменить("АБАБА","А",""))
15 бомболюк
 
15.01.15
07:27
(14) упадет ;-)
16 бомболюк
 
15.01.15
07:27
(15) -> (13)
17 1Сергей
 
15.01.15
07:35
(15) с чего бы?
18 kosts
 
15.01.15
07:35
(16) На "абаба" не падает и хорошо...
19 1Сергей
 
15.01.15
07:40
можно так ещё

Функция МоёСтрЧислоВхождений(Источник, СтрокаПоиска)
    
    ИсточникВрем = СтрЗаменить(Источник, СтрокаПоиска, "");
    
    Возврат (СтрДлина(Источник) - СтрДлина(ИсточникВрем)) / СтрДлина(СтрокаПоиска);
    
КонецФункции
20 1Сергей
 
15.01.15
07:45
Обожаю такие простенькие задачки. Особенно если добавить условия типа "сделать как можно красивее", "сделать как можно оптимальнее", "сделать как можно компактнее (код)"...
21 ifso
 
15.01.15
08:00
(20) а если добавить "вчера" и "бесплатно" ?)
22 1Сергей
 
15.01.15
08:07
(21) неееее... такое просто ненавижу