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




    Download 368.13 Kb.
    Sana17.05.2022
    Hajmi368.13 Kb.
    #21222
    Bog'liq
    1-Topshiriq (2)
    Mustaqil ish .

    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.

    Boshlash

    Kiritish: a,b,c

    D=b2-4ac

    D<0




    Chiqarish: “Tenglama ildizga ega emas”

    Chiqarish: x1, x1

    Yakunlash


    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

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





    Chiqarish:Berilgan shakl uchburchak emas

    Chiqarish: uchburchak yuzi S ga teng

    Yakunlash

    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.


    11-Variant .
    1.Koeffitsiyentlari a=3, b= 10, c=3 bo’lgan kvadrat tenglama ildizlari topilsin; Tomonlari a=5, b=11, c=9 bo’lgan uchburchak yuzi topilsin.

    #include


    #include
    int main(){
    std::cout << "Kiriting A, B, C:\n";
    double A = 0.0, B = 0.0, C = 0.0;
    std::cin >> A >> B >> C;
    double x1 = 0.0, x2 = 0.0;
    if ((B*B - 4*A*C)>=0 && A != 0){
    x1 = (-B + sqrt(B*B - 4*A*C))/(2*A);
    std::cout << "x1 = " << x1 << std::endl;
    x2 = (-B - sqrt(B*B - 4*A*C)/(2*A));
    std::cout << "x2 = " << x2 << std::endl;
    }
    else if (!A)
    std::cout << (-1)*(C/B) << std::endl;
    else
    std::cout << "Ildiz yo'q\n";
    system("pause");
    return 0;}

    2. Tomonlari a=5, b=11, c=9 bo’lgan uchburchak yuzi topilsin.


    Dasturi :
    #include
    #include
    int main(){
    std::cout << "Uchburchakning tamonlarini kiriting A, B, C:\n";
    double A = 0.0, B = 0.0, C = 0.0;
    int P,S;
    std::cin >> A >> B >> C;
    P=A+B+C/2;
    S=sqrt(P*(P-A)*(P-B)*(P-C));
    std::cout<<"Perimetri :"<
    std::cout<<"Yuzasi :"<system("pause");
    return 0;}

    Download 368.13 Kb.




    Download 368.13 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 368.13 Kb.