"Kompyuter injiniring" kafedrasi at-servis yo’nalishi 21-07 gurh talabasi Abdiqobilov Jamolning
Download 63.82 Kb.
|
1-amaliy mashq
1-amaliy mashg’ulot topshiriqlari
1-topshiriq Quyidagi masalalar uchun algoritm va dastur kodini yozing. Har bir talaba o’zining jurnaldagi raqami bo’yicha bittadan masalani yechadi. Masalalar kam bo’lganda sanoq tartib boshidan boshlanadi. Masalan, 20 masala bo’lsa, 21-o’rindagi talaba 1-masalani, 22-o’rindagi talaba 2-masalani yechadi. Butun musbat sonlardan iborat a,b,c qiymatlar berilgan bo’lsa, shu sonlar uchburchak tomonlari bo’la olishini aniqlash algoritmi va dasturini tuzing. Bu vazifa uchun dastur Quyidagicha bo'lishi mumkin: import math # Berilgan butun sonlarni o'qib olamiz # a, b va c tomoni uchun a = int(input("a=")) b = int(input("b=")) c = int(input("c=")) # Uchburchak yuzasini hisoblaymiz p = (a + b + c) / 2 S = math.sqrt(p * (p - a) * (p - b) * (p - c)) # Uchburchak tomonlarini hisoblaymiz # a tomoni hisoblanadi A = 2 * S / c # b tomoni hisoblanadi B = 2 * S / a # c tomoni hisoblanadi C = 2 * S / b # Natijalarni konsolga chiqaramiz print("a tomoni:", round(A, 2)) print("b tomoni:", round(B, 2)) print("c tomoni:", round(C, 2)) Copy code Bu dasturda, `math` kutubxonasini ishlatdik, chunki `sqrt` funksiyasini uchburchak yuzasini hisoblash uchun ishlatishimiz kerak. `a`,`b` va `c` ni foydalanuvchidan olib, unga tomonlarni aniqlash uchun yuqoridagi formulalarni qo'llab-quvvatlash orqali dasturimizga yozamiz. Natijalarini konsolga chop etamiz. 2-topshiriq Quyidagi masalalar uchun algoritm va dastur kodini yozing. Har bir talaba o’zining jurnaldagi raqami bo’yicha bittadan masalani yechadi. Masalalar kam bo’lganda sanoq tartib boshidan boshlanadi. Masalan, 20 masala bo’lsa, 21-o’rindagi talaba 1-masalani, 22-o’rindagi talaba 2-masalani yechadi. Butun sonlardan iborat bir o’lchovli massivni tezkor saralash(Quick sort) usulidan foydalanib, o’sish tartibida saralang. Quicksort algoritmini Python dasturlash tilida amalga oshirish uchun quyidagi kod yordamida butun sonlardan iborat massivni o'sish tartibida saralay olasiz: def quickSort(arr): less = [] equal = [] greater = [] if len(arr) > 1: pivot = arr[0] for x in arr: if x < pivot: less.append(x) elif x == pivot: equal.append(x) else: greater.append(x) return quickSort(less)+equal+quickSort(greater) else: return arr Copy code Bu funksiyada, `arr` parametri sifatida olinadigan massivni o'sish tartibida saralaydi. `less`, `equal` va `greater` yordamida massivni taqqoslash, tenglash va katta/buyuk elementlarini belgilash uchun bo'sh ro'yxatlar yaratilgan. Keyin, massivdagi birinchi element pivot sifatida tanlandi va har bir element pivot bilan solishtiriladi. Solishtirilgan elementlar mos ro'yxatlarga qo'shiladi va rekursiv tarzda `less` va `greater` ning quyidagi ko'rinishda o'sishi yoki kamayishi hisoblanadi: `return quickSort(less)+equal+quickSort(greater)`. Shaklga o'tganda, funksiya mavjud ro'yxatda o'zgartirish kiritadi va o'sish tartibida saralangan massivni qaytaradi. Download 63.82 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling