Имя: Пароль:
1C
1С v8
Условие в цикле
0 DonJon
 
12.08.15
21:20
Есть цикл, в нем условие по проверки слова на палиндром!
Подскажите, не пойму, как условие определяет палиндром или нет?

Стр = "";
ВвестиСтроку(Стр,"Введите строку");
Начало = 1;
Конец = СтрДлина(Стр);
Палиндром = Истина;
Пока Начало <= Конец Цикл
Если Сред(Стр,Начало,1) <> Сред(Стр,Конец,1) Тогда
     Палиндром = Ложь;
     Прервать;
КонецЕсли;

Начало = Начало + 1;
Конец = Конец -1;
КонецЦикла;

Если Палиндром = Истина Тогда
    ОткрытьЗначение(Стр + " является палиндромом.");
Иначе
    ОткрытьЗначение(Стр + " не палиндром!");
КонецЕсли;
1 itlikbez
 
12.08.15
21:22
(0) Сравнивает символы. Одинаковые - значит палиндром. Нет - значит нет.
2 фобка
 
12.08.15
21:34
(1) если один из символов отличается - значит нет
3 itlikbez
 
12.08.15
21:36
(2) а если оба отличаются?
4 фобка
 
12.08.15
21:38
(3) вылетает на первом несоответствии.
слово "ага" палиндром, слово "аа" палиндром, "агу" не палиндром. не хватает приведения к единому регистру.
5 HawkEye
 
12.08.15
21:39
(0) берет символ с начала и символ с окончания и сравнивает их, если совпадают - берет следующую пару сдвигаясь к центру, как только находит неравную пару - значит не палиндром, не находит различные - значит палиндром... что именно не понятно?
Ошибка? Это не ошибка, это системная функция.