Мысал
Нұсқа 0
Берілген жол оңынан да, солынан да бірдей болып оқылады ма, жоқ па, саоны анықтау программасын құру керек.
Шешуі
1. Алдымен s=input(Жол енгізіңіз:') жолын енгіземіз.
2. Содан кейін flag логикалық айнымалысын анықтап, оған 1 мәнін меншіктейміз: flag=1.
3. Алдымен енгізілген жолдағы бос орындарды өшіру керек. ол үшін for циклдық құрылымын қолданамыз. Жолдың ұзындығын len(s) функциясы арқылы анықтаймыз.
4. Цикл денесінде келесі шартты тексереміз: s[i]!=' '. Бұл логикалық өрнек жолдың i-нші элементібос орын болмаған жағдайда ақиқат болады және келесі команда орындалады: string+=s[i].
5. Программа басында жарияланған string жолында символ бойынша s жолы қосылып отырады, бқл жағдайда бос орынсыз қосылады.
6. Енгізілген жолдың "палиндром" екендігін анықтау үшін for циклдық құрылымын пайдаланамыз.
7. Жолдың жарты ұзындығы бүтінсанды 2-ге бөлуде жатыр. Егер символдар саны тақ болса, онда ортадағы символ есепке алынбайды, себебі оның салыстырылатын жұбы - өзі.
8. Циклдың қайталану саны жолдың жарты ұзындығына тең. Жолдың ұзындығын len(s) функциясы арқылы табамыз, мұндағы аргумент s жолы. 9. 9. Жолдың ұзындығы анықталғаннан кейін, циклдың қайталау санын анықтап аламыз. Ол ұшін жолдың ұзындығын 2-ге бүтінсанды бөлеміз: len(s)//2.
10. Цикл диапозонын беру үшін range() функциясын қолданамыз. Онда аргумент ретінде жолдың жарты ұзындығы қолданылады: range(len(s//2 )).
for i in range(len(s//2 )).
11. Егер i индексті символ "симметриялық" символға тең болмаса,
if s[i] != s[-1-i],
онда flag айнымалысына 0 мәні меншіктеледі және циклдан break командасы арқылы шығып кетеді.
12. Ары қарай, if-else шартты құрылым арқылы flag мәнінің 0 немесе 1 болуына байланысты жолдың палиндром немесе жоқ екендігі туралы хабарлама шығады.
Достарыңызбен бөлісу: |