|
Посчитать количество букв "а" | ☑ | ||
---|---|---|---|---|
0
mom64
17.01.19
✎
18:28
|
Люди помогите пожалуйста.
Нужно: 1)Посчитать количество букв "а" во введенном слове без использования функции СтрЧислоВхождений( ) Синтаксис: Процедура ПриНачалеРаботыСистемы() Перем R; ВвестиСтроку(R, "Строка: ", 40, Истина); Сообщить(КолБукв(R)); КонецПроцедуры Функция КолБукв(Строка) КлБ = 0; I = СтрДлина(Строка); Сообщить("I = " + I); Для Счетчик = 1 По I Цикл Если Строка(Найти(Строка, "а" ) Тогда КлБ = + 1; КонецЕсли; Сред( КонецЦикла; Возврат КлБ; КонецФункции PS. Я понимаю что функция "найти" мне здесь не поможет ни как.(это просто то на чем я остановился и попал в ступор не знаю как написать). Хотя бы посмотреть как выглядит функция СтрЧислоВхождений( ) изнутри что бы понять как написать. |
|||
1
Вафель
17.01.19
✎
18:29
|
юзай
|
|||
2
mistеr
17.01.19
✎
18:31
|
Преподам уже пора делать оговорку, что решение в помощью Мисты в зачет не идет.
|
|||
3
Вафель
17.01.19
✎
18:33
|
(2) смотря как принимать.
Если чел может обосновать код, то вполне. Stack Overflow Driven Development |
|||
4
PR
17.01.19
✎
18:36
|
(0) КоличествоСтрок(СтрЗаменить(Строка, "а", Символы.ПС)) - 1
|
|||
5
PR
17.01.19
✎
18:38
|
А (0) я бы на работу не взял, если он даже не может в тупую в цикле по одному символу проверить на равенство "а" и увеличению счетчика, если равен
|
|||
6
trdm
17.01.19
✎
18:40
|
(4) Херня. Но направление правильное.
// тест4() © trdm 2019-01-17 18:45 Процедура тест4() вТекст = "Ваша текста"; вДлинаСтарт = СтрДлина(вТекст); вТекст = СтрЗаменить(вТекст,"а",""); вКолво = вДлинаСтарт - СтрДлина(вТекст); Сообщить(вКолво); КонецПроцедуры // тест4() |
|||
7
Вафель
17.01.19
✎
18:41
|
(4) а если в строке уже есть перенос строк?
|
|||
8
trdm
17.01.19
✎
18:41
|
(7) Вот и я о том подумал.
|
|||
9
PR
17.01.19
✎
18:42
|
(6) Иди паси гусей
|
|||
10
PR
17.01.19
✎
18:44
|
(7) Тогда надо посчитать количество строк сначала, запомнить, после замены скорректировать на запомненное количество
Ну или перед всем этим заменить переносы строк на "" Но тут вроде не я тестовое задание решаю, а ТС |
|||
11
trdm
17.01.19
✎
18:50
|
(9) Завтра пойду чаек на речке терроризировать.
|
|||
12
Сергиус
17.01.19
✎
18:56
|
(0)В функции КолБукв общий смысл верный, только вместо Найти внутри, получай текущий символ Сред(Строка,I,1) и сравнивай его с "а".
|
|||
13
trdm
17.01.19
✎
19:05
|
(0) > Процедура ПриНачалеРаботыСистемы()
Просто создай обработку и редактируй её и переоткрывай в 1С-е. |
|||
14
Sapiens_bru
17.01.19
✎
19:10
|
(0)
RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.global = Истина; RegExp.pattern = "а"; Сообщить(RegExp.execute(СтрокаПроверки).count); |
|||
15
mom64
17.01.19
✎
19:14
|
Спасибо всем!) Аж 3 варианта как можно сделать задачку узнал! Только 2 день изучаю 1С. Если бы не вы долго бы думал как сделать всем спасибо!)
|
|||
16
Sapiens_bru
17.01.19
✎
19:17
|
(0)
Сообщить(СтрДлина(СтрСоединить(СтрРазделить(СтрокаПроверки,СтрСоединить(СтрРазделить(СтрокаПроверки,"а")))))) |
|||
17
OldCondom
17.01.19
✎
19:21
|
Сообщить(СтрДлина(строка) - СтрДлина(СтрЗаменить(строка, "а", "")));
|
|||
18
MaxS
17.01.19
✎
19:25
|
СтрРазделить(СтрокаПроверки,"а").Количество()
может быть -+1 потребуется. Тестировать нужно. |
|||
19
xReason
17.01.19
✎
19:25
|
СтрРазделить("Посчитать и узнать количество букв ""а""", "а").Количество() - 1
|
|||
20
trdm
17.01.19
✎
19:32
|
Нормальный такой скрытый тролинг, давать новичку для семерки восьмерошный код.
|
|||
21
trdm
17.01.19
✎
19:32
|
Типа пусть потрахается.
|
|||
22
OldCondom
17.01.19
✎
19:36
|
Новичок на 7? Остановите планету
|
|||
23
trdm
17.01.19
✎
19:41
|
момент, напутал. это восьмерка.
|
|||
24
AlvlSpb
17.01.19
✎
23:24
|
Самое правильное и простое в (14)
|
|||
25
palsergeich
17.01.19
✎
23:30
|
Функция КолБукв(Строка)
Строка = "." + Строка + "."; // если первый или последний символ = а - будет неверный результат Строка = СтрЗаменить(Строка,"а","<HERE>"); Возврат СтрРазделить(Строка,"<HERE>").Количество(); КонецФункции Без Com и Циклов!!!! |
|||
26
palsergeich
17.01.19
✎
23:33
|
Правда не тестировал, возможно при 0 вхождений будет неверный результат, но это легко лечится:
Функция КолБукв(Строка) Строка = "." + Строка + ".";// если первый или последний символ = а - будет неверный результат Строка = СтрЗаменить(Строка,"а","<HERE>"); Возврат ?(СтрНайти(Строка,"<HERE>") = 0, 0, СтрРазделить(Строка,"<HERE>").Количество()); КонецФункции Без Com и Циклов!!!! |
|||
27
Доминошник
17.01.19
✎
23:41
|
(24) А почему не в (6)?
|
|||
28
Garykom
гуру
17.01.19
✎
23:51
|
А чем не нравится
? |
|||
29
Garykom
гуру
17.01.19
✎
23:54
|
(28)+ Хотя да -1 надо и случаи когда "а" в начале или конце строки
|
|||
30
Garykom
гуру
17.01.19
✎
23:55
|
Колво = СтрЧислоСтрок(СтрЗаменить("_"+Стр+"_","а",Символы.ПС))-1;
|
|||
31
Garykom
гуру
18.01.19
✎
00:02
|
(30)+ Перенос строк внутри исходной строки еще убрать
Колво = СтрЧислоСтрок(СтрЗаменить(СтрЗаменить("_"+Стр+"_", Символы.ПС, ""), "а", Символы.ПС))-1; |
|||
32
Fram
18.01.19
✎
00:32
|
(31) смотри (4), и (17) все таки проще
|
|||
33
Fram
18.01.19
✎
00:38
|
(32) пардон.. ты как раз (4) исправил в (31), но (17) все равно проще
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |