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

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

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

Заранее спасибо!
---
```1c
    СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
    Символ = "Ы";
    Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл
    Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда
    Сообщить(Символ);
    КонецЕсли;
    КонецЦикла;
    Сообщить("Число вхождений: " + Ы);
```
---
Спасибо,

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

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

   Для Индекс = 1 по СтрДлина(А) Цикл
    ТекущаяБуква= Сред(А,СтрДлина-1,1);
    Если Индекс%2 = 0 Тогда
    Сообщить (ВРег(ТекущаяБуква));
   иначе
    Сообщить (НРег(ТекущаяБуква));
    СчетчикБукв = СчетчикБукв + 1;
   КонецЕсли;
   КонецЦикла;
---
```1c
    к = -СтрДлина(А);
    Пока к < 0 Цикл
    ТекСимвол = Сред(А,-к,1);
    Если к%2 = 0 Тогда
    Сообщить(НРег(ТекСимвол));
    Иначе
    Сообщить(ВРег(ТекСимвол));
    КонецЕсли;
    к = к + 1;
    КонецЦикла;
```
---
примерно так:

```1c
    А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
    НоваяСтрокаЫ = ";
    Если Лев(А, 1) = "Ы" Тогда
    НоваяСтрокаЫ = "Ы";
    ИначеЕсли Сред(А, 2, 1) = "Ы" Тогда
    НоваяСтрокаЫ = ?(НоваяСтрокаЫ = ", НоваяСтрокаЫ , НоваяСтрокаЫ + Символы.ПС) + "Ы";
    ИначеЕсли Сред(А, 3, 1) = "Ы" Тогда
    НоваяСтрокаЫ = ?(НоваяСтрокаЫ = ", НоваяСтрокаЫ , НоваяСтрокаЫ + Символы.ПС) + "Ы";
    и т.д.
    КонецЕсли;
    Сообщить(НоваяСтрокаЫ);
```
---
```1c
    А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
    Массив = Новый Массив;
    Для итератор = 1 По СтрДлина(а) Цикл
    ЭтотСимвол = Сред(А, Итератор, 1);
    Если ЭтотСимвол = "Ы" Тогда
    Массив.Добавить(ЭтотСимвол);
    КонецЕсли;
    КонецЦикла;
    СтрокаРезультат = СтрСоединить(Массив, Символы.ПС);
    Сообщить(СтрокаРезультат);
```
---
это уже следующий урок с циклами, пока рано ему))
---
Да я только учусь, немного поправлю вас я - она)
---
Можно и так

```1c
    А = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАП";
    Для Счетчик = 1 По СтрДлина(А) Цикл
    Если Сред(А,Счетчик,1) = "Ы" Тогда
    Сообщить("Ваш символ - " + Сред(А,Счетчик,1));
    КонецЕсли;
    КонецЦикла;
```
---
Только если использовать можно? без циклов?
---
Язык какой? На 1С?
---
А в какие строки вывести?
---
Язык 1С
да всем спасибо!

Мое решение:

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

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

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

    КонецЕсли;

КонецЦикла;
---
условия немного изменились

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

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

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

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

КонецЕсли;

КонецЦикла;

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

спасибо!
---
Лучше не использовать в коде слова из синтаксиса языка.
А то вот один чувак создал табличную часть "Документы", а потом искал аналог Документы.РеализацияТоваровУслуг.СоздатьДокумент()
только без "Документы".
---
```1c
    СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
    Символ = "Ы";
    Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл
    Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда
    Сообщить(Символ);
    КонецЕсли;
    КонецЦикла;
    Сообщить("Число вхождений: " + Ы);
```
---
СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ"; Символ = "Ы"; Для Ы = 1 По СтрЧислоВхождений(СтрокаСимволов, Символ) Цикл Если Сред(СтрокаСимволов, СтрНайти(СтрокаСимволов, Символ, , , Ы), 1) = Символ Тогда Сообщить(Символ); КонецЕсли; КонецЦикла; Сообщить("Число вхождений: " + Ы);

Спасибо!
---
без цикла используйте рекурсию с условием и стрЗаменить(); чот я запоздал с овтетом)))))
---
Всем привет!

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

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

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

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

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

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

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

заранее спасибо!
---
```1c
    Нечетные = ";
    Четные = ";
    Для к = 1 По СтрДлина(А) Цикл
    ТекСимвол = Сред(А,к,1);
    Если к%2 = 0 Тогда
    Четные = Четные + ТекСимвол;
    Иначе
    Нечетные = Нечетные + ТекСимвол;
    КонецЕсли;
    КонецЦикла;
    Нечетные = ВРег(Нечетные);
    Четные = НРег(Четные);
    Сообщить(Нечетные);
    Сообщить(Четные);
```
---
Спасибо,

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

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

   Для Индекс = 1 по СтрДлина(А) Цикл
    ТекущаяБуква= Сред(А,СтрДлина-1,1);
    Если Индекс%2 = 0 Тогда
    Сообщить (ВРег(ТекущаяБуква));
   иначе
    Сообщить (НРег(ТекущаяБуква));
    СчетчикБукв = СчетчикБукв + 1;
   КонецЕсли;
   КонецЦикла;
---
не вижу тут вообще перебор с конца.
---
ТекущаяБуква= Сред(А,СтрДлина-1,1);
---
это (СтрДлина) вообще не инициализированная переменная. Будет ошибка.
Вот решение для перебора символов с конца:

```1c
    Для к = -СтрДлина(А) По -1 Цикл
    ТекСимвол = Сред(А,-к,1);
    Если к%2 = 0 Тогда
    Сообщить(НРег(ТекСимвол));
    Иначе
    Сообщить(ВРег(ТекСимвол));
    КонецЕсли;
    КонецЦикла;
```
---
Спасибо!
---
как написать это же действие через цикл ПОКА
---
```1c
    к = -СтрДлина(А);
    Пока к < 0 Цикл
    ТекСимвол = Сред(А,-к,1);
    Если к%2 = 0 Тогда
    Сообщить(НРег(ТекСимвол));
    Иначе
    Сообщить(ВРег(ТекСимвол));
    КонецЕсли;
    к = к + 1;
    КонецЦикла;
```
---
```1c
    СтрокаСимволов = "АППРРОРДГШЫЕПРМОЛОЛЖДЫАПРВАОРЛДМИТЬТЫЫЕГГДЖЩЗХГШЩ";
    Символ = "Ы";
    Для Ы = 1 По Окр(СтрДлина(СтрокаСимволов) / 2) Цикл
    Стр = Сред(СтрокаСимволов, Ы * 2 - 1, 2);
    Сообщить(Врег(Лев(Стр, 1)));
    Если СтрДлина(Стр) = 2 Тогда
    Сообщить(НРег(Прав(Стр, 1)));
    КонецЕсли;
    КонецЦикла;
```