Python да практикалық жұмыстар 2 бөлім. Негізгі алгоритмдер және олардың Python тілінде іске асырылуы



бет8/14
Дата08.12.2023
өлшемі0,54 Mb.
#135027
1   ...   4   5   6   7   8   9   10   11   ...   14
ввод S flag=1 L=длина(S)
N=L div 2 нц для i от 1 до N если S[i]=S[L­i+1] то
k=1
иначе
k=0
конец если flag=flag*k кц
если flag=1 то вывод 'Палиндром' иначе
вывод 'Не палиндром!' конец если
При проверке каждой пары устанавливается коэффициент k, который затем умножается на текущее значение «флага».
Окончательный вывод делается по итоговому значению «флага».
Текст программы на Python может быть очень похожим.
# ­*­ coding: utf­8 ­*­
#
s1=raw_input('Исходная строка: ')
# Определяем длину строки
L=len(s1) flag=1 for i in range(L//2): if s1[i]==s1[­i­1]:
k=1 else:
k=0 flag=flag*k if flag==1:
print 'Палиндром' else:
print 'Не палиндром!'
Для ввода строки использован оператор raw_input(), при этом не требуется строку записывать в кавычках.
Небольшие синтаксические особенности всё­таки есть — условие равенства двух переменных записывает знаком «==», начало каждого составного оператора обозначается символом «:», и опять большую роль играют отступы. Кроме того, чтобы отсчитывать символы с конца строки, использованы «отрицательные» индексы элементов строки.
Однако использование особенностей строк в Python, их функций и методов, позволяет решить эту задачу более изящно. Например, так.
# ­*­ coding: utf­8 ­*­
#
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


Достарыңызбен бөлісу:
1   ...   4   5   6   7   8   9   10   11   ...   14




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет