4. Masalalarni dasturlash
Berilgan ikkita katet uchun to'g'ri burchakli uchburchakning maydoni va perimetrini toping. To'g'ri burchakli uchburchakning maydoni to'rtburchaklar maydonining yarmiga teng, uning tomonlari katet uzunliklariga teng.
Perimetri uchburchakning barcha tomonlarining uzunliklarini qo'shish orqali topiladi. Faqat oyoqlari ma'lum bo'lganligi sababli, gipotenuza Pifagor teoremasi yordamida hisoblanadi:
c2 = a2 + b2
Python-da kvadrat ildizni chiqarish uchun matematik moduldan sqrt () funktsiyasidan foydalanishingiz mumkin.
import math
AB = input("Birinchi katet uzunligi:")
AC = input("Ikkinchi katet uzunligi: ")
AB = float(AB)
AC = float(AC)
BC = math.sqrt(AB**2 + AC**2)
S = (AB * AC) / 2
P = AB + AC + BC
print("Uchburchak yuzasi: %.2f" % S)
print("Uchburchak perimetri: %.2f" % P)
|
Natija:
Birinchi katet uzunligi: 5.4
Ikkinchi katet uzunligi: 2.1
Uchburchakning maydoni: 5.67
Uchburchakning perimetri: 13.29
Ro'yxatdagi bir xil elementlarning sonini hisoblang
Butun sonlarning ro'yxati berilgan. Unda har bir raqam necha marta paydo bo'lishini hisoblang. Masalan, [1, 1, 3, 2, 1, 3, 4] ro'yxati berilgan bo'lsa, unda 1 raqami uch marta, 3 raqami - ikki marta, 2 va 4 raqamlari bir marta paydo bo'ladi.
Ro'yxatdagi har bir qiymatning sonini saqlash uchun lug'at yarataylik. Unda kalitlar ro'yxatda paydo bo'ladigan raqamlar, qiymatlar esa ushbu raqamlarning ro'yxatdagi raqamlari bo'ladi. Yuqoridagi misol uchun yakuniy natija quyidagi lug'at bo'ladi: {1: 3, 3: 2, 2: 1, 4: 1}.
Dasturda foydalanuvchi tomonidan belgilangan oraliq va miqdordagi tasodifiy raqamlar bilan ro'yxatni to'ldiradigan funktsiya mavjud bo'lsin.
Boshqa funktsiya har bir qiymat sonini hisoblaydi va ma'lumotlarni lug'atga kiritadi. Hisoblash algoritmi quyidagicha. Agar ro'yxatning keyingi elementi lug'at kaliti sifatida allaqachon mavjud bo'lsa, unda ushbu kalit qiymati bittaga ko'paytirilishi kerak. Agar ro'yxatdagi keyingi element lug'atda kalit sifatida mavjud bo'lmasa, unda bunday kalit qo'shilishi va unga teng qiymat berilishi kerak.
Lug'at tarkibini tugmalar bo'yicha tartiblangan o'sish tartibida ko'rsatish uchun sorted() funktsiyasi ishlatiladi. U lug'atning kalitlarini saralaydi va ularni ro'yxatga kiritadi.
def fill_list(m1, m2, amount, l):
from random import randint
for i in range(amount):
l.append(randint(m1, m2))
def analysis(your_list, your_dict):
for i in your_list:
if i in your_dict:
your_dict[i] += 1
else:
your_dict[i] = 1
lst = []
dct = {}
mn = int(input('Минимум: '))
mx = int(input('Максимум: '))
qty = int(input('Количество элементов: '))
fill_list(mn, mx, qty, lst)
analysis(lst, dct)
for item in sorted(dct):
print("'%d':%d" % (item, dct[item]))
|
Minimum: 100
Maksimum: 104
Elementlar soni: 20
'100':4
'101':7
'102':2
'103':4
'104':3
Do'stlaringiz bilan baham: |