Masala. Elementlari butun sonlardan iborat a0, a1, a2, …, an-1, bo’lgan ketma-ketlik berilgan. Ketma-ketlikdagi ketma-ket keluvchi sonlar ko’paytmasi musbat va ularning yig’indisi toq bo’lgan sonlarni aniqlash dasturi tuzilsin.
a = []
n=int(input('Elementlar sonini kiriting - '))
for i in range(0, n):
print('a[',i,']q')
a.append(int(input()))
print (a)
for i in range (n):
if ((a[i]*a[i+1]) > 0 and (a[i]+a[i+1]) % 2!q0):
print (a[i], a[i+1])
Natija:
Elementlar sonini kiriting - 7
a[ 0 ]q
11
a[ 1 ]q
12
a[ 2 ]q
-5
a[ 3 ]q
-7
a[ 4 ]q
6
a[ 5 ]q
5
a[ 6 ]q
31
[11, 12, -5, -7, 6, 5, 31]
11 12
6 5
Masala. Elementlari natural sonlardan iborat bo’lgan a[0..9] jadval berilgan. Jadvaldagi eng katta son necha marta uchrashini aniqlash dasturi tuzilsin.
a = []
for i in range(0, 9):
print('a[', i, ']q')
a.append(int(input()))
print (a)
k = a[0]
for i in range (1,9):
if a[i] > k: k = a[i]
s = 0
for i in range (9):
if a[i] == k: s = s + 1
print('Eng katta son ', s, ' marta uchraydi')
Natija:
a[ 0 ]q
12
a[ 1 ]q
31
a[ 2 ]q
14
a[ 3 ]q
25
a[ 4 ]q
25
a[ 5 ]q
35
a[ 6 ]q
12
a[ 7 ]q
35
a[ 8 ]q
35
[12, 31, 14, 25, 25, 35, 12, 35, 35]
Eng katta son 3 marta uchraydi
Ushbu masalada ketma-ketlikdagi elementlar soni va tipi aniq, shuning uchun jadvalni tashkil qilishda elementlar sonini aniq ko’rsatish talab qilinadi. Dasturimizda elementlar soni (0,9) kabi ko’rsatilgan.
Avvalo jadvalning eng katta elementini topamiz. Buning uchun ketma-ketlikning birinchi elementini eng katta element sifatida qabul qilib, uni k o’zgaruvchi orqali saqlab olamiz. So’ngra k sonini ketma ketlikning har bir elementi bilan solishtirib chiqamiz. Agar ketma-ketlikdagi elementlarning qaysi biri k sonidan katta bo’lsa, o’sha elementni k soni bilan almashtiramiz, ya’ni k ga o’zlashtiramiz.
Shu tariqa ketma-ketlikning eng katta elementi k o’zgaruvchi orqali ifodalanadi.
Keyingi siklda aniqlangan eng katta element ketma-ketlikda necha marotaba uchrashi aniqlanadi, bu holda ketma-ketlikdagi har bir element k soni bilan solishtiriladi. Agar solishtirilayotgan element k soniga teng bo’lsa, hisoblagich (schetchik) ga bir soni qo’shib boriladi.
Dasturimizda massivning har bir elementi aloxida satrda kiritishga to’g’ri kelgan. Agar kiritilayotgan elementlarni bitta satrga ulash print () funksiyasining majburiy bo’lmagan end = ' ' parametri orqali amalga oshiriladi. Buning uchun dasturimizning uchinchi satrida quyidagicha print('a[',i,']q', end = ' ' )almashtiramiz. U holda massiv elementlarini kiritish quyidagicha o’zgaradi.
a[ 0 ]= 12
a[ 1 ]= 20
a[ 2 ]= 11
a[ 3 ]= 15
a[ 4 ]= 20
a[ 5 ]= 19
a[ 6 ]= 20
a[ 7 ]= 20
a[ 8 ]= 20
[12, 20, 11, 15, 20, 19, 20, 20, 20]
Eng katta son 5 marta uchraydi
Dasturimizda print() funksiyasining end = ' ' parametridagi qo’shtirnoq yoki aporstraf belgilari orasiga bo’sh joy qo’yilganligi uchun, oynada kiritilga elementlar orasida bo’sh joy mavjud. Agar ushbu belgilar orasiga boshqa belgi qo’yilsa, o’sha belgi orqali kiritilayotgan yoki natijalar orasida o’sha belgi chiqariladi.
Yana bir masala, jadval elementlarini saralash masalasi bilan tanishib chiqaylik. Boshqa dasturlash tillarida ushbu masalani yechish uchun birinchidan jadvavldagi eng kichik elementni topish (aloxida siklda), eng kichik elementni jadvalning birinchi elementi bilan almashtirish, undan keyin siklni jadvalning ikkinchi elementidan boshlab yana eng kichik elementni topish, uni jadvalning ikkinchi elementi bilan alamshtish kabi bir qator ichma-ich joylashgan sikllardan foydalanar edik.
Python tilida bunday ishlarni oson hal etish uchun sort metodidan foydalaniladi.
Masala. Elementlari natural sonlardan iborat bo’lgan a[1..10] jadval berilgan. Jadval elementlarini o’sib borish tartibida saralash dasturi tuzilsin.
Dastur tuzishda sort – o’sib borish tartibida saralash metodidan foydalanish maqsadga muvofiq.
a = []
for i in range(0, 10):
print('a[', i, ']q', end = ' ' )
a.append(int(input()))
a.sort()
print (a)
Natija:
a[ 0 ]= 11
a[ 1 ]= 12
a[ 2 ]= 5
a[ 3 ]= 6
a[ 4 ]= 7
a[ 5 ]= 21
a[ 6 ]= 11
a[ 7 ]= 12
a[ 8 ]= 24
a[ 9 ]= 16
[5, 6, 7, 11, 11, 12, 12, 16, 21, 24]
Jadval elementlarini teskari tartibda saralash reverse() metodi yordamida amalga oshiriladi. Tekshirib ko’ring.
Do'stlaringiz bilan baham: |