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

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
0>0>
|