
Бонусты жинап картаңызға (kaspi Gold, Halyk bank) шығарып аласыз
Python есептері. 8-сынып, 3-тоқсан
4.4 Continue циклін басқару
Тапсырма
№ 1- есеп *
К мен Р аралығындағы соңғы цифры t-ға тең сандарды экранға шығаратын программа кодын құр.
Мысалы |
Нәтиже |
10 39 7 |
17 27 37 |
|
|
Python бағдарламасының коды, ол K мен P аралығындағы соңғы цифры t-ға тең сандарды табады және экранға шығарады. Бұл кодта біз continue циклін қолданамыз.
Программаның коды:
K, P, t = map(int, input().split())
for num in range(K, P + 1): # K мен P аралығындағы сандарды тексеру
if num % 10 != t: # Санның соңғы цифрын тексеру
continue # Егер соңғы цифр t-ға тең болмаса, келесі санға өту
print(num, end=" ")
Түсіндірме:
-
K, P, t = map(int, input().split()): Пайдаланушыдан K, P және t мәндерін енгізу.
-
for num in range(K, P + 1): K мен P аралығындағы сандарды қарастыру.
-
if num % 10 != t: Егер санның соңғы цифры t-ға тең болмаса, онда continue операторы арқылы келесі санға өту.
-
print(num, end=" "): Егер санның соңғы цифры t-ға тең болса, оны экранға шығару
№ 2- есеп * *
N натурал саны берілген. Сол санда кездесетін барлық Р цифрын өшіріп таста. Санды кері ретпен экранға шығаратын программа кодын құр
Мысалы |
Нәтиже |
2547585 5 |
8742 |
Python бағдарламасының коды, ол берілген саннан барлық P цифрын өшіріп тастайды және сандарды кері ретпен экранға шығарады.
Программаны жазу:
N, P = input().split()
N_without_P = N.replace(P, "") # N санындағы барлық P цифрын өшіру
# Санды кері ретпен шығару
print(N_without_P[::-1])
Түсіндірме:
-
N, P = input().split(): Пайдаланушыдан екі мән алады: біріншісі сан (N), екіншісі өшірілетін цифр (P).
-
N.replace(P, ""): Санның ішіндегі барлық P цифрын өшіру. Бұл әдіс барлық кездескен P цифрларын бос мәтінмен ауыстырады.
-
N_without_P[::-1]: Өшірілген цифрмен өзгертілген санды кері ретпен шығару. Бұл жерде [::-1] срезінің көмегімен мәтінді кері оқимыз.
2-ші жолы:
N, P = input().split()
result = [] # Жаңа бос тізім (жолды сақтауға арналған)
for digit in N:
if digit == P:
continue # Егер цифр P-ға тең болса, оны өшіріп, келесі цифрға өту
result.append(digit) # Егер цифр P-ға тең болмаса, оны нәтижеге қосу
print(''.join(result[::-1])) # Нәтижені кері ретпен шығару
№ 3-есеп ** 94-бет
Ағылшынның кіші әріптерінен тұратын S жол берілген. Осы жолдан дауысты дыбысты белгілейтін әріптерді өшіріп, дауыссыздарын экранға шығаратын программа кодын құр. Ағылшын тілінде алты дауысты дыбыс бар. Олар: a, e, i, o, u, y.
Мысалы |
Нәтиже |
knkauseqiytraa |
knksqtr |
s = input("Жолды енгізіңіз: ")
v = "aeiouy" # Дауысты дыбыстарды анықтайтын жиын
r = "" # Нәтиже сақтайтын жол
for i in s: # Әрбір символды тексеру үшін цикл
if i in v:
continue # Егер дауысты дыбыс болса, келесі итерацияға өтеміз
r += i # Егер дауыссыз дыбыс болса, оны нәтижеге қосамыз
print(r)
Түсініктеме:
Алдымен жолды енгіземіз.
Цикл арқылы жолды әріптермен өтеміз.
Егер ағымдағы әріп дауысты дыбыс болса, continue операторы арқылы цикл келесі итерацияға өтеді, яғни сол әріпті елемейміз.
Егер әріп дауыссыз болса, оны нәтижеге қосамыз.
4.5 Break циклін басқару
Тапсырма
№ 1- есеп *
N натурал саны берілген. Сол санның цифрларының арасында нөл болса, цикл жұмысын тоқтатып, «Error» сөзін, әйтпесе санның өзін кері қарай экранға шығаратын про грамма құр.
Мысалы |
Нәтиже |
570256 |
Error |
4589 |
9854 |
Егер тапсырманы break операторы арқылы шешу керек болса, онда циклді қолдану қажет болады. Цикл әрбір цифрды тексеріп, егер нөл (0) табылса, онда break операторы арқылы циклды тоқтатып, "Error" сөзін шығарамыз. Егер нөл табылмаса, санның цифрларын кері ретпен шығарамыз.
Міне, break операторы қолданылған бағдарлама:
N = input() # Пайдаланушыдан N санын енгізу
for d in N: # Цикл арқылы әр цифрды тексеру
if d == '0':
print("Error")
break
else:
print(N[::-1]) # Егер цикл толық аяқталса (яғни, нөл табылмаса), санның кері тәртібін шығару
Түсініктеме:
-
for digit in N: — Бұл цикл санның әрбір цифрын жеке тексереді.
-
if digit == '0': — Егер цифр нөл болса, циклды тоқтатып, "Error" шығарамыз.
-
break — Бұл оператор циклды тоқтатады, егер нөл табылса.
-
else: — Егер цикл толығымен аяқталса (яғни, нөл табылмаса), онда санның цифрларын кері ретімен шығарамыз. Бұл үшін [::-1] әдісін қолданамыз.
№ 2- есеп ** Латын әріптерімен «,» үтірі бар S жол берілген. Осы жолдағы үтірге дейінгі әріптер мен олардың санын экранға шығаратын алгоритмнің блок-схемасын және программасын құр.
Мысалы |
Нәтиже |
Alma, almurt |
Alma 4 |
S = input()
s = "" # Үтірге дейінгі бөлікті сақтау үшін айнымалы
count = 0 # Әріптер санын есептеу үшін айнымалы
for char in S: # Жолды біртіндеп қарап шығамыз
if char == ',':
break # Үтір кездессе, циклды тоқтатамыз
s += char # Әріпті s-ке қосамыз
count += 1 # Әріптің санын арттырамыз
print(s) # Нәтижені шығару
print(count)
№ 3 – есеп ** 98-бет
N натурал саны берілген. Сол санның цифрларының арасындағы ең кішісін табатын блоксхема құр. Есептің программа кодын жаз.
Мысалы |
Нәтиже |
78856954 |
4 |
N = input("Натурал санды енгізіңіз: ")
min_d = int(N[0]) # Алғашқы цифрды ең кіші цифр деп қабылдаймыз
for d in N:
if int(d) < min_d:
min_d = int(d)
print(min_d)
4.6 Else ЦИКЛІН БАСҚАРУ
№ 1- тапсырма* 102-бет
N натурал саны берілген. Сол санның цифрларының арасында «7» цифры болса, цикл жұмысын тоқтатып, «Error», әйтпесе санның цифрларының қосындысын экранға шығаратын программа құр.
Мысалы |
Нәтиже |
92576 |
Error |
123456 |
21 |
Бұл тапсырма бойынша, егер берілген санның цифрларының арасында "7" цифры болса, цикл жұмысын тоқтатып, "Error" деп шығару керек. Ал егер "7" цифры жоқ болса, онда цифрлардың қосындысын есептеп, оны экранға шығару қажет.
N = input("Натурал санын енгізіңіз: ")
if '7' in N: # "7" цифры бар-жоғын тексеру
print("Error")
else:
sum = sum(int(d) for d in N) # Цифрлардың қосындысын есептеу
print(sum)
Түсініктеме:
-
N = input("Натурал санын енгізіңіз: "): Пайдаланушыдан санды енгізу сұралады. Біз санды жол түрінде қабылдаймыз, өйткені оның цифрларын өңдеу оңай болады.
-
if '7' in N: Бұл шарт арқылы жолда "7" цифрының бар-жоғын тексереміз. Егер бар болса, "Error" деп шығарамыз.
-
Егер "7" жоқ болса, онда цифрларды қосу үшін sum(int(digit) for digit in N) қолданамыз. Бұл тізімді құрып, әр цифрды бүтін санға түрлендіріп, олардың қосындысын есептейді.
№ 2- тапсырма**
Латын әріптерінен құралған L жол берілген. Осы жолда ´k´ әрпі кездесе ме? Анықта. Егер іздеген әріп кездессе, онда «bar», ал кездеспесе, «joq» жауабын экранға шығаратын программа құр.
Мысалы |
Нәтиже |
uhuyhukgggff |
bar |
Бұл тапсырманы орындау үшін Python тілінде берілген жолда (L) k әрпінің кездесетінін тексеретін бағдарлама жазу керек. Егер k әрпі бар болса, "bar", жоқ болса "joq" деген нәтижені экранға шығарамыз.
Міне, осы тапсырманы шешуге арналған Python коды:
L = input("Жолды енгізіңіз: ")
if 'k' in L: # 'k' әрпі жолда бар-жоғын тексеру
print("bar")
else:
print("joq")
Түсініктеме:
-
L = input("Жолды енгізіңіз: "): Пайдаланушыдан жолды енгізу сұралады.
-
'k' in L: Бұл шарт L жолында k әрпінің бар-жоғын тексереді. Егер k бар болса, онда True мәні қайтарылады, ал жоқ болса, False.
-
Егер k бар болса, "bar" шығарылады, ал жоқ болса, "joq" шығарылады.
№ 3- тапсырма** 102-бет
Ұзындығы N(1≤N≤20) бүтін сандар мен бір ғана бөлшек саннан тұратын тізбек берілген. Бөлшек сан кей жағдайда тізбекте кездеспеуі де мүмкін. Осы тізбекте бөлшек болса, онда санның орнын, әйтпесе «joq» жауабын экранға шығаратын программа құр. Программада деректер тігінен енгізіледі.
Мысалы |
Нәтиже |
6 45 69 327 32.5 87 23 |
Index = 4 |
Бұл тапсырманы жеңіл әрі түсінікті жолмен шығару үшін:
-
Тізбекті енгізіп, әр элементті тексереміз.
-
Егер сан бөлшек болса, оның орнын анықтаймыз.
-
Бөлшек сан жоқ болса, "joq" деп шығарамыз.
Мұны орындау үшін келесі кодты жазуға болады:
N = int(input())
sequence = input().split() # Тізбекті енгізу
for i in range(N): # Тізбекте бөлшек сан бар-жоғын тексеру
if '.' in sequence[i]: # Егер сан бөлшек болса
print(f"Index = {i + 1}") # Индекс 1-ден басталатынын ескеру
break
else:
print("joq")
Түсініктеме:
-
N = int(input()) — Пайдаланушыдан тізбектің ұзындығын енгіземіз.
-
sequence = input().split() — Тізбектегі барлық сандарды бір қатарда енгізгенде оларды бөлу үшін split() қолданамыз.
-
if '.' in sequence[i] — Әр санның бөлшек екенін тексереміз. Егер сан бөлшек болса, онда оның ішінде нүкте (.) болады.
-
print(f"Index = {i + 1}") — Бөлшек сан табылса, оның индексін 1-ден бастап шығарамыз.
-
else: print("joq") — Егер цикл толық аяқталып, бөлшек сан табылмаса, "joq" деп шығарамыз.
4.7 АЛГОРИТМНІҢ ТРАССИРОВКАСЫ
8-СЫНЫП
1-тапсырма*
k мен p аралығындағы сандардың цифрларының қосындысын табатын программа құр. Тапсырманы орындау барысында қандай қате жібердің? Назар аудар. Цикл денесінде орналасқан операторлар жұмысын трассировкалау арқылы тексер.
Мысалы |
Нәтиже |
97 103 |
61 |
k, p = map(int, input("k және p санын бір қатарда енгізіңіз: ").split())
# Цикл арқылы k мен p аралығындағы сандарды қарау
for num in range(k, p + 1):
digit_sum = 0 # Әр санның цифрларының қосындысын сақтау үшін айнымалы
temp = num # санды уақытша сақтап қою
# Әр санның цифрларының қосындысын есептеу
while temp > 0:
digit_sum += temp % 10 # Соңғы цифрды қосу
temp //= 10 # Соңғы цифрды алып тастау
# Нәтижені шығару
print(f"{num}: {digit_sum}")
Түсініктеме:
map(int, input().split()): Бұл бөлікте пайдаланушыдан екі санды бір қатарда енгізу сұралады. input().split() енгізілген жолды бос орындар бойынша бөледі, ал map(int, ...) әрбір бөлікті бүтін санға түрлендіреді.
Пайдаланушы енгізген k мен p аралығындағы сандарды for циклімен қарастырып, олардың цифрларының қосындысын есептейді.
Мысалы: Егер k = 97 және p = 103 болса:
-
97 -> 9 + 7 = 16
-
98 -> 9 + 8 = 17
-
99 -> 9 + 9 = 18
-
100 -> 1 + 0 + 0 = 1
-
101 -> 1 + 0 + 1 = 2
-
102 -> 1 + 0 + 2 = 3
-
103 -> 1 + 0 + 3 = 4
Нәтиже: [16, 17, 18, 1, 2, 3, 4]
№ 3 – тапсырма** 107-бет
N(100≤N≤999) санына дейінгі үштаңбалы сандар арасындағы барлық цифры әртүрлі сандарды экранға шығар.
Мысалы |
Нәтиже |
107 |
102 103 104 105 106 107 |
Ескерту: Үштаңбалы сандар 100-ден басталады.
Бұл тапсырма бойынша 100 мен 999 аралығындағы барлық үштаңбалы сандарды қарастырып, олардың цифрлары әртүрлі болуын тексеру керек. Егер санның цифрлары әртүрлі болса, оны экранға шығарамыз.
Мұны Python тілінде келесі түрде жазуға болады:
for n in range(100, 1000): # Санды цифрларға бөлеміз
j = num // 100 # жүздіктер
o = (num // 10) % 10 # ондықтар
b = num % 10 # бірліктер
# Егер үш цифр әртүрлі болса, санды экранға шығарамыз
if j != o and j != b and o != b:
print(n, end=" ")
Түсініктеме:
-
range(100, 1000) — 100 мен 999 аралығындағы сандарды қарастырады.
-
hundreds, tens, және ones — бұл сандардың жүздік, ондық және бірліктерін алу үшін бөлшектер. Мысалы, 345 санында:
-
hundreds = 3
-
tens = 4
-
ones = 5
-
-
if hundreds != tens and hundreds != ones and tens != ones: — бұл шарт әрбір санның цифрларының бірдей болмауын тексереді. Егер барлық цифрлар әртүрлі болса, онда сан экранға шығарылады.

