• Nazariy qism
  • 2.Geron formulasi yordamida uchburchak yuzini aniqlash
  • Laboratoriya topshiriqlari
  • 1-topshiriq. Mavzu: Algoritmlarni loyihalash. Algoritm korrekt va samaradorligini baholash. Kvadrat tenglama ildizlarini aniqlash algoritmi. Uchburchak yuzasi uchun Geron formulasi Ishdan maqsad




    Download 120,84 Kb.
    Sana14.05.2024
    Hajmi120,84 Kb.
    #232153
    Bog'liq
    1-topshiriq. Mavzu Algoritmlarni loyihalash. Algoritm korrekt v


    1-TOPSHIRIQ.
    Mavzu: Algoritmlarni loyihalash. Algoritm korrekt va samaradorligini baholash. Kvadrat tenglama ildizlarini aniqlash algoritmi. Uchburchak yuzasi uchun Geron formulasi..
    Ishdan maqsad: Algoritmlarni samaradorligini baholash. Kvadrart tenglama ildizlarini hisoblash hamda uchburchak yuzini hisoblashda Geron formulasidan foydalanish algoritmini ishlab chiqish.
    Nazariy qism
    Kvadrat tenglamaning ildizlarini topish vazifasi, boshqa ko'plab vazifalar singari, oson vazifadir. Uni qog’oz va qalam yordamida juda oson echish mumkin, ammo algoritmni to’gri tanlab dasturini tuzish va undan foydalanish orqali yechimni avtomatlashtirish mumkin. Ushbu laboratoriyada biz shunday dastur algoritmini ko’rib chiqamiz.
    Bilamizki, ko’rinishidagi tenglama kvadrat tenglama deyiladi. Ushbu tenglamani yechishning bir necha usullari mavjud. Ammo biz, Diskriminantlar usulidan foydalanamiz. Chunki bu usul dasturlash uchun eng optimal usul hisoblanadi.
    Diskriminant D harfi bilan belgilanadi. D= b2-4ac ekanligini esa, maktab kursidan bilamiz.
    Diskriminant uchun bir nechta shartlar mavjud:

    • Agar D> 0 bo'lsa, unda tenglama 2 xil haqiqiy ildizga ega.

    • Agar D = 0 bo'lsa, unda yagona ildizga ega yoki, ikkala haqiqiy ildiz teng bo'ladi.

    • Agar D <0 bo'lsa, unda yechimga ega emas yoki, ikkala ildiz ham kompleks sonlardir.

    Yechish algoritmi juda oddiy. Diskriminant hisoblanadi, agar u 0 dan katta yoki unga teng bo'lsa, u holda ildizlar quyidagi formula yordamida hisoblanadi:

    yoki

    Kvadrat tenglama ildizlarini topish algoritmining bloksxemasini quyida ko’rishimiz mumkin.

    Yakunlash

    Chiqarish: x1, x1

    Chiqarish: “Tenglama ildizga ega emas”




    D<0

    D=b2-4ac

    Kiritish: a,b,c

    Boshlash


    Yo’q ha


    2.Geron formulasi yordamida uchburchak yuzini aniqlash
    Uchburchak yuzini aniqlash uchun Geron formulasidan foydalanish eng optimal usuldir chunki Geron formulasi yordamida har qanday turdagi (to’g’ri burchakli, o’tmas burchakli o’tkir burchakli, teng yonli teng tomonli va h.k.z) uchburchakning yuzini aniqlash mumkin. Buning uchun uchberchakning 3 ta tomonlari uzunliklari berilishi zaruruiy va yetarli shartdir.

    Geron formulasi ham bizga maktab dasturi geometriya kursida ma’lum:

    Bu yerda p yarim perimeter ya’ni
    Bu yerda ahamiyat qaratadigan yana bir jihat bor ya’ni dastur tuzish mobaynida berilgan yomonlar uchburchakni tashkil etishi yoki etmasligini aniqlash lozim. Uchburchak qoidalariga ko’ra berilgan shakl ucburchak bo’lishi uchun ixtiyoriy ikki tomon yig’indisi 3-tomondan kata bo’lishi kerak. dastur tuzish jarayonida shu shartni ham kiritib ketish kerak.

    Boshlash
    Uchburchak yuzini Geron formulasi yordamida aniqlash algoritmining bloksxemasi quyidagicha:

    Kiritish: a, b, c

    Yakunlash

    Chiqarish: uchburchak yuzi S ga teng



    Chiqarish:Berilgan shakl uchburchak emas



    a+b>c&&b+c>a&&a+c>b

    Laboratoriya ishi hisobotini tayyorlashda talalabalarga ikkala masala bo’yicha topshiriqlar beriladi. Har bir talaba topshiriq variantiga mos ravishda topshiriqlar yechimini yoki yechimga ega emasligini dastur yordamida aniqlasi keerak. Topshiriq hisobotiga dastur kodi va natijasi ilova qilinadi.


    Laboratoriya topshiriqlari:
    Koeffitsiyentlari a=2, b= -5, c=2 bo’lgan kvadrat tenglama ildizlari topilsin; Tomonlari a=6, b=8, c=9 bo’lgan uchburchak yuzi topilsin.
    #python
    #kvadrat tenglama
    import math

    a,b,c=map(int,input().split())

    d=b**2-4*a*c

    if d>0:
    print((-b+math.sqrt(d)/2*a))


    print((-b-math.sqrt(d)/2*a))
    elif d==0:
    print((-b+math.sqrt(d)/2*a))
    elif d<0:
    print('Tenglama ildizga ega emas')

    Boshlash

    Kiritish: a, b, c

    Yakunlash

    Chiqarish: uchburchak yuzi S ga teng



    Chiqarish:Berilgan shakl uchburchak emas



    a+b>c&&b+c>a&&a+c>b

    #Uchburchak yuzi

    a,b,c=map(int,input().split())

    p=(a+b+c)/2

    S=math.sqrt(p*(p-b)*(p-b)*(p-c))

    print(S)



    Boshlash



    Kiritish: a, b, c

    Yakunlash

    Chiqarish: uchburchak yuzi S ga teng



    Chiqarish:Berilgan shakl uchburchak emas



    a+b>c&&b+c>a&&a+c>b

    Download 120,84 Kb.




    Download 120,84 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    1-topshiriq. Mavzu: Algoritmlarni loyihalash. Algoritm korrekt va samaradorligini baholash. Kvadrat tenglama ildizlarini aniqlash algoritmi. Uchburchak yuzasi uchun Geron formulasi Ishdan maqsad

    Download 120,84 Kb.