ввод S flag=1 L=длина(S)
N=L div 2 нц для i от 1 до N если S[i]=S[Li+1] то k=1
иначе k=0
конец если flag=flag*k кц если flag=1 то вывод 'Палиндром' иначе вывод 'Не палиндром!' конец если При проверке каждой пары устанавливается коэффициент k, который затем умножается на текущее значение «флага».
Окончательный вывод делается по итоговому значению «флага».
Текст программы на Python может быть очень похожим.
# * coding: utf8 *
#
s1=raw_input('Исходная строка: ')
# Определяем длину строки
L=len(s1) flag=1 for i in range(L//2): if s1[i]==s1[i1]:
k=1 else:
k=0 flag=flag*k if flag==1:
print 'Палиндром' else:
print 'Не палиндром!'
Для ввода строки использован оператор raw_input(), при этом не требуется строку записывать в кавычках.
Небольшие синтаксические особенности всётаки есть — условие равенства двух переменных записывает знаком «==», начало каждого составного оператора обозначается символом «:», и опять большую роль играют отступы. Кроме того, чтобы отсчитывать символы с конца строки, использованы «отрицательные» индексы элементов строки.
Однако использование особенностей строк в Python, их функций и методов, позволяет решить эту задачу более изящно. Например, так.
# * coding: utf8 *
#
s1=raw_input('Исходная строка: ') lst=list(s1) lst.reverse() s2=''.join(lst) if s1==s2:
print 'Палиндром' else:
print 'Не палиндром!'
Здесь исходная строка преобразуется в список, затем список «переворачивается» и из него с помощью пустой «строкиобъединителя» формируется новая строка. Затем строки сравниваются. Цикл оказывается не нужен! Всю работу делает Python.
Если количество повторений операций заранее неизвестно, но известно условие прекращения выполнения операций, используется цикл (составной оператор) WHILE. Покажем его использование на следующем примере.
Задача 3. Последовательно вводятся ненулевые числа. Определить сумму положительных и сумму отрицательных чисел. Закончить ввод чисел при вводе 0.
Задача настолько проста, что дополнительных уточнений в качестве постановки задачи не требуется. Пусть сумма положительных чисел называется SP, а сумма отрицательных чисел — SN.
Блоксхема алгоритма показана на рис. 13.
Рисунок 13. Блоксхема алгоритма обработки последовательности
Текст программы на «псевдоязыке»:
SP=0 SN=0 ввод chislo нц пока chislo <> 0 если chislo >0 то SP=SP+chislo