Айдар Python тілінде натурал санның цифрларын талдайтын программа жазды. % амалы бөлгендегі қалдықты, ал // амалы бөлудің бүтін бөлігін береді. Программа a санын оқиды да, циклде оны соңынан бастап талдайды: соңғы d цифрын алады, содан кейін оны алып тастайды. Егер цифр жұп болса, ол s қосындысына қосылады, ал тақ болса, k есептегіші 1-ге артады. Соңында программа бірінші жолға s, екінші жолға k шығарады. Программаның мәтіні:
a = int(input())
s = 0
k = 0
while a > 0:
d = a % 10
if d % 2 == 0:
s = s + d
else:
k = k + 1
a = a // 10
print(s)
print(k)
Тексеру үшін Айдар әртүрлі сандарды енгізді, мысалы 52714 және 90310. Кейін ол программаны s тақ цифрлардың қосындысын жинайтындай, ал k жұп цифрларды санайтындай етіп өзгертуді ойлады.
Оң сан енгізілгенде программадан «a = a // 10» жолын алып тастаса, не болады?
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- Da мәні азаймайтындықтан, программа циклге түсіп қалады
Талдау
a мәні тек осы жолда өзгереді. Ол болмаса, a оң күйінде қалады, a > 0 шарты үнемі ақиқат болады және цикл аяқталмайды. Программа дұрыс жазылған болып қала беретіндіктен, синтаксистік қате жоқ.