Работа со строками 1С

1. Энни181818 13.05.19 17:23 Сейчас в теме
Добрый день, начинаю изучать программирование, есть задачка

А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП

при помощи оператора Если ,,,, Тогда ,,,,. Иначе. вывести все буквы "Ы" из строчки А (в каждую строчку)

Заранее спасибо!
+
По теме из базы знаний
Найденные решения
11. kasper076 103 14.05.19 11:39 Сейчас в теме
	СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
	Символ = "Ы";
	Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл
		Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда
			Сообщить(Символ);
		КонецЕсли;	
	КонецЦикла;	
	Сообщить("Число вхождений: " + Ы);
+
18. Энни181818 16.05.19 13:56 Сейчас в теме
(16)Спасибо,

Перебрать символы с конца, правильно я делаю?

А = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯ";
СчетчикБукв = 0;

Для Индекс = 1 по СтрДлина(А) Цикл
ТекущаяБуква= Сред(А,СтрДлина-1,1);
Если Индекс%2 = 0 Тогда
Сообщить (ВРег(ТекущаяБуква));
иначе
Сообщить (НРег(ТекущаяБуква));
СчетчикБукв = СчетчикБукв + 1;
КонецЕсли;
КонецЦикла;
+
24. spacecraft 16.05.19 14:57 Сейчас в теме
(23)
к = -СтрДлина(А);
Пока к < 0 Цикл 
	ТекСимвол = Сред(А,-к,1);
	Если к%2 = 0 Тогда
		Сообщить(НРег(ТекСимвол));
	Иначе
		Сообщить(ВРег(ТекСимвол));
	КонецЕсли;
	к = к + 1;
КонецЦикла;
Показать
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Xershi 1479 13.05.19 20:54 Сейчас в теме
(1) примерно так:
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
НоваяСтрокаЫ = "";
Если Лев(А, 1) = "Ы" Тогда
НоваяСтрокаЫ = "Ы";
ИначеЕсли Сред(А, 2, 1)  = "Ы" Тогда
НоваяСтрокаЫ = ?(НоваяСтрокаЫ = "", НоваяСтрокаЫ , НоваяСтрокаЫ + Символы.ПС) + "Ы";
ИначеЕсли Сред(А, 3, 1)  = "Ы" Тогда
НоваяСтрокаЫ = ?(НоваяСтрокаЫ = "", НоваяСтрокаЫ , НоваяСтрокаЫ + Символы.ПС)  + "Ы";
и т.д.
КонецЕсли;
Сообщить(НоваяСтрокаЫ);
Показать
+
6. palsergeich 13.05.19 21:22 Сейчас в теме
(5)
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
Массив = Новый Массив;
Для итератор = 1 По СтрДлина(а) Цикл
ЭтотСимвол = Сред(А, Итератор, 1);
Если  ЭтотСимвол = "Ы" Тогда
Массив.Добавить(ЭтотСимвол);
КонецЕсли;
КонецЦикла;
СтрокаРезультат = СтрСоединить(Массив, Символы.ПС);
Сообщить(СтрокаРезультат);
Показать
+
7. Xershi 1479 13.05.19 21:40 Сейчас в теме
(6) это уже следующий урок с циклами, пока рано ему))
+
9. Энни181818 14.05.19 09:37 Сейчас в теме
(7)
Да я только учусь, немного поправлю вас я - она)
+
25. _7445_ 16.05.19 17:06 Сейчас в теме
(1) Можно и так
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
	Для Счетчик = 1 По СтрДлина(А) Цикл
		Если Сред(А,Счетчик,1) = "Ы" Тогда
			Сообщить("Ваш символ - " + Сред(А,Счетчик,1));
		КонецЕсли;
	КонецЦикла;
+
2. bad_wag 48 13.05.19 18:36 Сейчас в теме
Только если использовать можно? без циклов?
+
3. lmnlmn 69 13.05.19 18:57 Сейчас в теме
Язык какой? На 1С?
+
4. Nefilimus 75 13.05.19 20:32 Сейчас в теме
А в какие строки вывести?
+
8. Энни181818 14.05.19 09:34 Сейчас в теме
Язык 1С
да всем спасибо!

Мое решение:


А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
Б = "Ы";

Для Н=1 по СтрДлина(А) Цикл
Строка=Сред(А,Н,1);

Если Строка = Б Тогда
Сообщить("Найдена нужная буква: " +Б);
Иначе

КонецЕсли;

КонецЦикла;
+
10. Энни181818 14.05.19 11:15 Сейчас в теме
условия немного изменились

необходимо посчитать кол-во символов найденных по условию.
до этого выводил только найденный символ.


А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
Б = "Ы";

Для Н=1 по СтрДлина(А) Цикл
Строка=Сред(А,Н,1);

Если ,,,,,, Тогда
......
Сообщить("Найдена нужная буква: " +Б);
Иначе

КонецЕсли;

КонецЦикла;

Какую функцию необходимо написать для проверки?

спасибо!
+
12. catena 110 14.05.19 11:56 Сейчас в теме
(10)Лучше не использовать в коде слова из синтаксиса языка.
А то вот один чувак создал табличную часть "Документы", а потом искал аналог Документы.РеализацияТоваровУслуг.СоздатьДокумент()
только без "Документы".
+
11. kasper076 103 14.05.19 11:39 Сейчас в теме
	СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
	Символ = "Ы";
	Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл
		Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда
			Сообщить(Символ);
		КонецЕсли;	
	КонецЦикла;	
	Сообщить("Число вхождений: " + Ы);
+
13. Энни181818 14.05.19 11:58 Сейчас в теме
(11)
СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ"; Символ = "Ы"; Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда Сообщить(Символ); КонецЕсли; КонецЦикла; Сообщить("Число вхождений: " + Ы);


Спасибо!
+
14. x_x 2 14.05.19 16:38 Сейчас в теме
без цикла используйте рекурсию с условием и стрЗаменить(); чот я запоздал с овтетом)))))
+
15. Энни181818 16.05.19 11:58 Сейчас в теме
Всем привет!

Работа со строками.

Нужно вывести :
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ"

Нечетные- ВРег, Четные- НРег. с новой строчки.

А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ"
СчетчикБукв = 0;

Для НачальнаяПеременная = 1 по СтрДлина(А) Цикл
ТекущаяБуква=Сред(А,НачальнаяПеременная,1);

Если ..... Тогда....

нужно добавить 2 переменные Четные и нечетные?

заранее спасибо!
+
16. spacecraft 16.05.19 12:30 Сейчас в теме
(15)
Нечетные = "";
Четные = "";
Для к = 1 По СтрДлина(А) Цикл
	ТекСимвол = Сред(А,к,1);
	Если к%2 = 0 Тогда
		Четные = Четные + ТекСимвол;
	Иначе
		Нечетные = Нечетные + ТекСимвол;
	КонецЕсли;
КонецЦикла;
Нечетные = ВРег(Нечетные);
Четные = НРег(Четные);
Сообщить(Нечетные);
Сообщить(Четные);
Показать
+
18. Энни181818 16.05.19 13:56 Сейчас в теме
(16)Спасибо,

Перебрать символы с конца, правильно я делаю?

А = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯ";
СчетчикБукв = 0;

Для Индекс = 1 по СтрДлина(А) Цикл
ТекущаяБуква= Сред(А,СтрДлина-1,1);
Если Индекс%2 = 0 Тогда
Сообщить (ВРег(ТекущаяБуква));
иначе
Сообщить (НРег(ТекущаяБуква));
СчетчикБукв = СчетчикБукв + 1;
КонецЕсли;
КонецЦикла;
+
19. spacecraft 16.05.19 13:59 Сейчас в теме
(18) не вижу тут вообще перебор с конца.
+
20. Энни181818 16.05.19 14:01 Сейчас в теме
(19)ТекущаяБуква= Сред(А,СтрДлина-1,1);
+
21. spacecraft 16.05.19 14:07 Сейчас в теме
(20) это (СтрДлина) вообще не инициализированная переменная. Будет ошибка.
Вот решение для перебора символов с конца:
Для к = -СтрДлина(А) По -1 Цикл
	ТекСимвол = Сред(А,-к,1);
	Если к%2 = 0 Тогда
		Сообщить(НРег(ТекСимвол));
	Иначе
		Сообщить(ВРег(ТекСимвол));
	КонецЕсли;
КонецЦикла;
Показать
+
22. Энни181818 16.05.19 14:19 Сейчас в теме
23. Энни181818 16.05.19 14:42 Сейчас в теме
(21)как написать это же действие через цикл ПОКА
+
24. spacecraft 16.05.19 14:57 Сейчас в теме
(23)
к = -СтрДлина(А);
Пока к < 0 Цикл 
	ТекСимвол = Сред(А,-к,1);
	Если к%2 = 0 Тогда
		Сообщить(НРег(ТекСимвол));
	Иначе
		Сообщить(ВРег(ТекСимвол));
	КонецЕсли;
	к = к + 1;
КонецЦикла;
Показать
+
17. kasper076 103 16.05.19 12:54 Сейчас в теме
    СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
    Символ = "Ы";
	Для Ы = 1 По Окр(СтрДлина(СтрокаСимволов) / 2)  Цикл
		Стр = Сред(СтрокаСимволов, Ы * 2 - 1, 2);
		Сообщить(Врег(Лев(Стр, 1)));
		Если СтрДлина(Стр) = 2 Тогда
			Сообщить(НРег(Прав(Стр, 1)));
		КонецЕсли;	
	КонецЦикла;	
Показать
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот