10-сынып информатика олимпиадасына
дайындық:
10-сынып оқушыларына арналған Python тапсырмалары
және олардың шешу жолдары ұсынылған. Әрбір тапсырма логикалық ойлау
мен бағдарламалау қабілетін жетілдіруге
бағытталған.
1.
Бөлімнің бүтін санын табу
Сұрақ: Екі сан берілген. Оларды бөлу нәтижесінің
тек бүтін бөлігін шығарыңыз.
Код:
a,
b = map(int, input("Екі сан енгізіңіз (бос орын арқылы):
").split())
print("Бүтін бөлігі:", a //
b)
Түсіндіру: // операторы санның тек бүтін бөлігін
береді.
---
2.
Берілген диапазондағы сандарды табу
Сұрақ: A-дан B-ге дейінгі барлық сандарды
шығарыңыз.
Код:
a, b = map(int,
input("Диапазон енгізіңіз (A B):
").split())
for i in range(a, b +
1):
print(i, end="
")
Түсіндіру: range
функциясы A-дан B-ге дейінгі сандарды құрайды.
---
3.
Жиымдағы қайталанатын элементтерді табу
Сұрақ:
Берілген жиымдағы қайталанатын элементтерді анықтаңыз.
Код:
nums = list(map(int,
input("Сандар тізімін енгізіңіз (бос орын арқылы):
").split()))
duplicates = set([num for num
in nums if nums.count(num) > 1])
print("Қайталанатын элементтер:",
duplicates)
Түсіндіру: set
қайталанатын мәндерді бір рет қана сақтайды.
---
4.
Сандар тізіміндегі жұп және тақ элементтерді санау
Сұрақ:
Жиымдағы жұп және тақ элементтердің санын анықтаңыз.
Код:
nums = list(map(int,
input("Сандар тізімін енгізіңіз (бос орын арқылы):
").split()))
even_count = sum(1 for x in
nums if x % 2 == 0)
odd_count = len(nums) -
even_count
print(f"Жұп саны:
{even_count}, Тақ саны:
{odd_count}")
Түсіндіру:
Тізімдегі әрбір санның жұп немесе тақ екенін тексереміз.
---
5.
Үшбұрыштың ауданы
Сұрақ:
Үшбұрыштың үш қабырғасының ұзындығы берілген.
Оның ауданын Герон формуласымен
есептеңіз.
Код:
import math
a,
b, c = map(float, input("Үш қабырғаның ұзындығын енгізіңіз (a b c):
").split())
s = (a + b + c) /
2
area = math.sqrt(s * (s - a) *
(s - b) * (s - c))
print("Үшбұрыш ауданы:",
area)
Түсіндіру:
Герон формуласы: ,
мұндағы .
---
6.
Факториалдың соңындағы нөлдер саны
Сұрақ: N
санының факториалындағы соңғы нөлдердің санын табыңыз.
Код:
def
trailing_zeros(n):
count =
0
while n >=
5:
n //=
5
count +=
n
return
count
n =
int(input("Сан енгізіңіз: "))
print("Соңғы нөлдер саны:",
trailing_zeros(n))
Түсіндіру:
Нөлдер саны 5-ке бөлінетін сандардың санына байланысты.
---
7.
Берілген мәтінді шифрлау (Цезарь шифры)
Сұрақ:
Берілген мәтінді әріптерін оңға 3
орынға жылжытып шифрлаңыз.
Код:
text =
input("Мәтін енгізіңіз: ")
shift =
3
cipher = ''.join(chr((ord(c) -
97 + shift) % 26 + 97) if c.isalpha() else c for c in
text.lower())
print("Шифрланған мәтін:",
cipher)
Түсіндіру:
Әріптердің ASCII
кодын пайдаланып орын ауыстыру.
---
8.
Мәтіндегі барлық дауысты дыбыстарды санау
Сұрақ:
Мәтіндегі дауысты дыбыстардың санын есептеңіз.
Код:
text =
input("Мәтін енгізіңіз:
").lower()
vowels =
"aeiouаәеіоөұүыі"
count = sum(1 for c in text if
c in vowels)
print("Дауысты дыбыстар саны:",
count)
Түсіндіру:
Әрбір әріптің дауысты дыбыстарға жататынын тексереміз.
---
9.
Пайызбен өсу
Сұрақ:
Берілген санға 10%
қосыңыз.
Код:
n =
float(input("Сан енгізіңіз: "))
print("10%-ға өскен мәні:", n *
1.1)
Түсіндіру:
Санға -ді көбейту арқылы 10%
қосамыз.
---
10.
Берілген санның квадраты
Сұрақ:
Санның квадратын есептеңіз.
Код:
n =
int(input("Сан енгізіңіз: "))
print("Квадрат:", n **
2)
Түсіндіру:
дәрежеге көтеру операторы.
---
11.
Берілген мәтіндегі әріптерді реттеу
Сұрақ:
Әріптерді алфавит бойынша реттеңіз.
Код:
text =
input("Мәтін енгізіңіз: ")
sorted_text =
''.join(sorted(text))
print("Реттелген мәтін:",
sorted_text)
---
12.
Ең кіші санды табу
Сұрақ:
Тізімдегі ең кіші санды анықтаңыз.
Код:
nums = list(map(int,
input("Сандар тізімін енгізіңіз:
").split()))
print("Ең кіші сан:",
min(nums))
---
13.
Палиндром сандарын табу
Сұрақ: Берілген диапазондағы палиндром сандарын
табыңыз.
Код:
a,
b = map(int, input("Диапазон енгізіңіз:
").split())
for num in range(a, b +
1):
if str(num) ==
str(num)[::-1]:
print(num, end="
")
---
14.
Күрделі сандарды көбейту
Сұрақ:
Күрделі сандардың көбейтіндісін табыңыз.
Код:
a =
complex(input("1-күрделі сан енгізіңіз (мысалы: 1+2j):
"))
b =
complex(input("2-күрделі сан енгізіңіз: "))
print("Көбейтінді:", a *
b)
---
15.
Бірнеше файлдан дерек алу
Сұрақ: 3
файлдағы ортақ сөздерді анықтаңыз.
Код:
files = ["file1.txt",
"file2.txt", "file3.txt"]
common_words =
set(open(files[0]).read().split())
for file in
files[1:]:
common_words.intersection_update(set(open(file).read().split()))
print("Ортақ сөздер:",
common_words)
16. Берілген массивті өсу
ретімен сұрыптау
Сұрақ: Сандар массивін өсу
ретімен сұрыптаңыз.
Код:
nums = list(map(int,
input("Сандар массивін енгізіңіз (бос орын арқылы):
").split()))
nums.sort()
print("Сұрыпталған массив:",
nums)
Түсіндіру: sort әдісі массивті
өсу ретімен сұрыптайды.
---
17. Берілген санның кері
сандар қосындысы
Сұрақ: Берілген санға дейінгі
барлық сандардың кері мәндерінің қосындысын табыңыз (мысалы,
).
Код:
n = int(input("Сан енгізіңіз:
"))
harmonic_sum = sum(1 / i for i
in range(1, n + 1))
print("Кері сандар
қосындысы:", harmonic_sum)
Түсіндіру: Генератор көмегімен
-ді қосамыз.
---
18. Тізімнен теріс сандарды
жою
Сұрақ: Берілген тізімнен теріс
сандарды жойыңыз.
Код:
nums = list(map(int,
input("Сандар тізімін енгізіңіз (бос орын арқылы):
").split()))
positive_nums = [x for x in
nums if x >= 0]
print("Тек оң сандар:",
positive_nums)
Түсіндіру: if x >= 0 шарты
арқылы тек оң сандарды таңдаймыз.
---
19. Үлкен матрицаның негізгі
диагоналын шығару
Сұрақ: NxN өлшемдегі
матрицаның негізгі диагоналын шығарыңыз.
Код:
n = int(input("Матрица өлшемін
енгізіңіз: "))
matrix =
[]
for i in
range(n):
row = list(map(int,
input(f"{i+1}-қатарды енгізіңіз:
").split()))
matrix.append(row)
diagonal = [matrix[i][i] for i
in range(n)]
print("Негізгі диагонал:",
diagonal)
Түсіндіру: Матрицаның [i][i]
индекстеріндегі элементтері негізгі диагонал болып
табылады.
---
20. Тізімнің қайталанбайтын
элементтерін табу
Сұрақ: Берілген тізімнен тек
қайталанбайтын элементтерді шығарыңыз.
Код:
nums = list(map(int,
input("Сандар тізімін енгізіңіз (бос орын арқылы):
").split()))
unique_nums = [x for x in nums
if nums.count(x) == 1]
print("Қайталанбайтын
элементтер:", unique_nums)
Түсіндіру: nums.count(x) == 1
шарты арқылы тек бір рет кездесетін сандарды
таңдаймыз.