1. Энни181818 13.05.19 17:23 Сейчас в теме

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

Добрый день, начинаю изучать программирование, есть задачка

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

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

Заранее спасибо!
Найденные решения
11. kasper076 46 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 560 13.05.19 20:54 Сейчас в теме
(1) примерно так:
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
НоваяСтрокаЫ = "";
Если Лев(А, 1) = "Ы" Тогда
НоваяСтрокаЫ = "Ы";
ИначеЕсли Сред(А, 2, 1)  = "Ы" Тогда
НоваяСтрокаЫ = ?(НоваяСтрокаЫ = "", НоваяСтрокаЫ , НоваяСтрокаЫ + Символы.ПС) + "Ы";
ИначеЕсли Сред(А, 3, 1)  = "Ы" Тогда
НоваяСтрокаЫ = ?(НоваяСтрокаЫ = "", НоваяСтрокаЫ , НоваяСтрокаЫ + Символы.ПС)  + "Ы";
и т.д.
КонецЕсли;
Сообщить(НоваяСтрокаЫ);
Показать
6. palsergeich 13.05.19 21:22 Сейчас в теме
(5)
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
Массив = Новый Массив;
Для итератор = 1 По СтрДлина(а) Цикл
ЭтотСимвол = Сред(А, Итератор, 1);
Если  ЭтотСимвол = "Ы" Тогда
Массив.Добавить(ЭтотСимвол);
КонецЕсли;
КонецЦикла;
СтрокаРезультат = СтрСоединить(Массив, Символы.ПС);
Сообщить(СтрокаРезультат);
Показать
7. Xershi 560 13.05.19 21:40 Сейчас в теме
(6) это уже следующий урок с циклами, пока рано ему))
9. Энни181818 14.05.19 09:37 Сейчас в теме
(7)
Да я только учусь, немного поправлю вас я - она)
25. ulvi96 16.05.19 17:06 Сейчас в теме
(1) Можно и так
А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
	Для Счетчик = 1 По СтрДлина(А) Цикл
		Если Сред(А,Счетчик,1) = "Ы" Тогда
			Сообщить("Ваш символ - " + Сред(А,Счетчик,1));
		КонецЕсли;
	КонецЦикла;
2. bad_wag 19 13.05.19 18:36 Сейчас в теме
Только если использовать можно? без циклов?
3. lmnlmn 8 13.05.19 18:57 Сейчас в теме
4. Nefilimus 9 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 99 14.05.19 11:56 Сейчас в теме
(10)Лучше не использовать в коде слова из синтаксиса языка.
А то вот один чувак создал табличную часть "Документы", а потом искал аналог Документы.РеализацияТоваровУслуг.СоздатьДокумент()
только без "Документы".
11. kasper076 46 14.05.19 11:39 Сейчас в теме
	СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
	Символ = "Ы";
	Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл
		Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда
			Сообщить(Символ);
		КонецЕсли;	
	КонецЦикла;	
	Сообщить("Число вхождений: " + Ы);
13. Энни181818 14.05.19 11:58 Сейчас в теме
(11)
СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ"; Символ = "Ы"; Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда Сообщить(Символ); КонецЕсли; КонецЦикла; Сообщить("Число вхождений: " + Ы);


Спасибо!
14. x_x 3 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 46 16.05.19 12:54 Сейчас в теме
    СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
    Символ = "Ы";
	Для Ы = 1 По Окр(СтрДлина(СтрокаСимволов) / 2)  Цикл
		Стр = Сред(СтрокаСимволов, Ы * 2 - 1, 2);
		Сообщить(Врег(Лев(Стр, 1)));
		Если СтрДлина(Стр) = 2 Тогда
			Сообщить(НРег(Прав(Стр, 1)));
		КонецЕсли;	
	КонецЦикла;	
Показать
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Самара
зарплата от 50 000 руб. до 100 000 руб.
По совместительству


Ведущий программист 1С
Сочи
зарплата от 82 500 руб. до 99 000 руб.
Полный день