Жұмыс жоспары
Тапсырма 1. А және В екі бүтін сандары берілген (мұнда A ≤ B). Барлық нөмірлерді A-дан B-ге дейін басып шығарыңыз.
Тапсырма 2. А және В екi бүтiн сандар берiледi, A Тапсырма 3. A және B екі бүтін сандары берілген, A> B. А-дан B-ге дейін барлық тақ нөмірлерді басып шығарыңыз. Бұл тапсырмада if if операторын пайдалана алмайсыз.
Тапсырма 4. 10 бүтін сандар беріледі. Олардың сомасын есептеңіз.
Тапсырма 5. Айнымалылардың ең аз санын қолданатын бағдарламаны жазыңыз.
Тапсырма 6. Факторлық. N санының факторигі - бұл 1 × 2 × ... × n өнім. Белгілеу: n !. N бүтін сан үшін n мәнін есептеңіз. Бұл тапсырмада математиканы пайдалануға тыйым салынады.
Тақырып 3.2: Python программалау тілі. Циклдік құрылымның бағдарламаларын жасау.
Мақсаты: While алгоритмін түрлі алгоритмдік тапсырмаларды қалай пайдалану керектігін үйрену.
Қысқаша теориялық мәлімет
Уақыттық циклда сынақ шарты шындық болған кезде орындалатын әрекеттердің бірізділігін береді. Шарт конструкцияның корпусына жазылады және циклдің корпусының орындалуына дейін тексеріледі. Әдетте, цикл уақыт циклінің орындалу санын нақты мәнін анықтау мүмкін болмаған кезде қолданылады.
Уақытша циклдың қарапайым жағдайда синтаксисі:
ал жағдай:
нұсқаулық блок
Алғашқы цикл іске қосылғанда, алдымен шарт тексеріледі. Егер бұл жалған болса, онда цикл тоқтайды және басқару элементі келесі уақыт циклінің денесінің кейінгі нұсқасына ауысады. Егер шарты дұрыс болса, нұсқаулық орындалады, одан кейін шарт қайтадан тексеріледі, нұсқаулық орындалады. Бұл шарт шын болғанша жалғасады. Шарт жалған болып шыққаннан кейін, циклдің жұмысы аяқталып, циклнан кейін бақылау келесі нұсқаулыққа ауыстырылады.
Мысал 1. 1-ден 10-ға дейінгі бүтін сандардың квадраттарын көрсету.
i = 1
while i <= 10:
print(i ** 2)
i=i + 1
Бұл мысалда цикл ішіндегі i айнымалыны 1-ден 10-ға дейін өзгереді. Циклдің әрбір жаңа өтуі өзгеретін мәні осы контролер деп аталады. Айта кету керек, бұл фрагментті орындағаннан кейін i айнымалы мәні 11 болады, себебі i == 11 үшін i <= 10 шарты бірінші рет орындалуын тоқтатады.
2-мысал. N санының табиғи санының санын анықтаңыз:n = int(input())
kol = 0
while n > 0:
n =n// 10 # это эквивалентно n = n // 10
kol=ko l + 1
print(kol)
Бұл циклде біз бүтін бөлікке 10 (n = n // 10) тең деп саналатын, соңынан бастап санның бір санын алып тастаймыз, ал біз айнымалы борға қанша рет жасалды деп болжап отырмыз.
2. Циклді басқару нұсқаулары
Циклдың корпусынан кейін басқа сөзді жаза аласыз: кейіннен цикл аяқталғаннан кейін бір рет орындалатын операциялар блогы, сынақ жағдайы дұрыс болмаған кезде:
i = 1
while i <= 10:
print(i)
i += 1
else:
print('Цикл окончен, i =', i)
Бұл жерде ешқандай ұғым жоқ сияқты көрінеді, өйткені циклдің аяқталғаннан кейін ғана сол нұсқаулықты жазуға болады. Мән тек үзіліс үзіндісімен бірге пайда болады. Егер іске қосу уақытында, Python цикл ішінде үзіліс үзіндісін тапса, ол циклды бірден тоқтатады және оны шығарады. Бұл жағдайда басқа филиал орындалмайды. Әрине, үзіліс туралы мәлімдеме тек if операторында ғана айтылуы мүмкін, яғни, егер ол арнайы шарт орындалса ғана орындалуы керек.
3-мысал сандарды теріс санды тапқанша оқиды. Теріс сан пайда болған кезде бағдарлама тоқтайды. Бірінші нұсқада сандар тізбегі 0 санымен тоқтатылады (оны оқығанда тоқтату керек).a = int(input())
while a != 0:
if a < 0:
print('Встретилось отрицательное число', a)
break
a = int(input())
else:
print('Ни одного отрицательного числа не встретилось')
Бағдарламаның екінші нұсқасында бірізділіктегі элементтер саны алдымен кіріске енгізіледі, содан кейін элементтердің өзі. Бұл жағдайда циклды қолдану ыңғайлы. For циклында сондай-ақ, басқа тармақ болуы мүмкін және үзіліс туралы мәлімдемелер болуы мүмкін.
n = int(input())
for i in range(n):
a = int(input())
if a < 0:
print('Встретилось отрицательное число', a)
break
else:
print('Ни одного отрицательного числа не встретилось')
Басқа циклді басқару бойынша нұсқаулық жалғасады. Егер бұл нұсқаулық циклдің ортасында орын алса, қалған нұсқаулар циклдің соңына өткізіп жіберіледі және цикл орындалуы келесі итерацияда жалғасады.
Үзіліс және жалғастыру туралы мәлімдемелер бірнеше кірістірілген циклдарда болса, олар тек ішкі циклдің орындалуына әсер етеді. Бұл көрсететін ең ақылдылықтың үлгісі емес:
for i in range(3):
for j in range(5):
if j > i:
break
print(i, j)
Үзілістерге деген ұмтылыс және жалғастыру нұсқаулары оларды қолданбай-ақ жасалса, ынталандырылмайды. Міне, үзіліс операторының нашар қолдануының үлгі мысалы (бұл код сандағы таңбалардың санын есептейді).
n = int(input())
length = 0
while True:
length += 1
n //= 10
if n == 0:
break
print('Длина числа равна', length)
Гораздо лучше переписать этот цикл так:
n = int(input())
length = 0
while n != 0:
length += 1
n //= 10
print('Длина числа равна', length)
Дегенмен, Python-да сізге неғұрлым талғампаз шешім ұсынуға болады:
n = int (енгізу ())
print ('Нөмірдің ұзындығы', len (str (n)))
3. Бірнеше тағайындау
Python бағдарламасында бір тапсырма мәлімдемесі үшін бірнеше айнымалы мәнді бірден өзгертуге болады. Бұл келесідей:
a, b = 0, 1
Бұл кодты да жазуға болады:
a = 0
b = 1
Екі әдіс арасындағы айырмашылық, бірінші әдіске бірнеше тапсырма бір мезгілде екі айнымалы мәнін өзгертеді.
Егер бірнеше тағайындағанда «=» белгісінің сол жағында үтірмен бөлінген айнымалы атаулар болуы керек болса, оң жақта үтірлермен бөлінген ерікті өрнектер болуы мүмкін. Ең бастысы, тапсырма белгісінің сол және оң жағында бірдей элементтер бар.
Достарыңызбен бөлісу: |